Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e840b70ac9 | |||
| 03b8779862 | |||
| 580a2ccaba | |||
| 699dba5511 | |||
| aac552102a | |||
| 4762dc33ac | |||
| 0a030460e4 | |||
| ed2dc58680 |
Binary file not shown.
|
After Width: | Height: | Size: 380 KiB |
+201
@@ -0,0 +1,201 @@
|
|||||||
|
{
|
||||||
|
"Adresse": "Agility",
|
||||||
|
"Clairvoyance": "Clarity",
|
||||||
|
"MNBL.abilities": "Gifts/Pacts",
|
||||||
|
"MNBL.activatedrunes": "Activated Runes",
|
||||||
|
"MNBL.addpredilection": "Add a specialization",
|
||||||
|
"MNBL.aimingbonus": "Aiming Bonus",
|
||||||
|
"MNBL.alignement": "Alignment",
|
||||||
|
"MNBL.all": "All",
|
||||||
|
"MNBL.allegiance": "Allegiance",
|
||||||
|
"MNBL.applydamage": "Apply damage/bonus/penalty",
|
||||||
|
"MNBL.aspect": "Aspect",
|
||||||
|
"MNBL.Assaut": "Smite",
|
||||||
|
"MNBL.attack": "Attack",
|
||||||
|
"MNBL.attackcapacity": "Offensive Ability",
|
||||||
|
"MNBL.attackmountbonus": "Mounted attacker vs ground defender (+5)",
|
||||||
|
"MNBL.attacks": "Attacks",
|
||||||
|
"MNBL.attribut": "Attribute",
|
||||||
|
"MNBL.attributes": "Attributes",
|
||||||
|
"MNBL.automalus": "Auto Penalty",
|
||||||
|
"MNBL.base": "Base",
|
||||||
|
"MNBL.beastslords": "Beast Lords",
|
||||||
|
"MNBL.bio": "Bio & Notes",
|
||||||
|
"MNBL.bonus": "Bonus",
|
||||||
|
"MNBL.candoublebonusskill": "Bonuses can be doubled (cf. Profession)",
|
||||||
|
"MNBL.chaos": "Chaos",
|
||||||
|
"MNBL.chaotictraits": "Chaotic Traits",
|
||||||
|
"MNBL.charge": "Charge",
|
||||||
|
"MNBL.consumed": "Consumed",
|
||||||
|
"MNBL.contain": "Contain the opponent",
|
||||||
|
"MNBL.creatureresourcecost": "Resource Cost (creatures)",
|
||||||
|
"MNBL.current": "Current",
|
||||||
|
"MNBL.currentmax": "Current Max",
|
||||||
|
"MNBL.damage": "Damage",
|
||||||
|
"MNBL.damagebonus": "Damage Bonus",
|
||||||
|
"MNBL.defense": "Defense",
|
||||||
|
"MNBL.defensebonus": "Defense Bonus",
|
||||||
|
"MNBL.defensecapacity": "Defensive Ability",
|
||||||
|
"MNBL.dice": "Dice",
|
||||||
|
"MNBL.difficulty": "Difficulty",
|
||||||
|
"MNBL.dirtyattack": "Cheap Shot",
|
||||||
|
"MNBL.disadvantagepositions": "Disadvantageous positions (Max bonus +15)",
|
||||||
|
"MNBL.disarm": "Disarm",
|
||||||
|
"MNBL.doubleD20": "Double d20 (1 Shard Point)",
|
||||||
|
"MNBL.dramaticfailure": "Dramatic Failure",
|
||||||
|
"MNBL.duration": "Duration",
|
||||||
|
"MNBL.easy": "Easy (5)",
|
||||||
|
"MNBL.eclat": "Shard",
|
||||||
|
"MNBL.elementslords": "Elemental Lords",
|
||||||
|
"MNBL.equipmentactions": "Equipment/Actions",
|
||||||
|
"MNBL.equipments": "Equipments",
|
||||||
|
"MNBL.equipped": "Equipped",
|
||||||
|
"MNBL.exp": "Experience",
|
||||||
|
"MNBL.eyes": "Eyes",
|
||||||
|
"MNBL.failure": "Failure",
|
||||||
|
"MNBL.feint": "Feint",
|
||||||
|
"MNBL.flee": "Flee",
|
||||||
|
"MNBL.formula": "Formula",
|
||||||
|
"MNBL.genre": "Gender",
|
||||||
|
"MNBL.gifts": "Gifts",
|
||||||
|
"MNBL.goodadventure": "Good Adventure",
|
||||||
|
"MNBL.hair": "Hair",
|
||||||
|
"MNBL.hard": "Hard (15)",
|
||||||
|
"MNBL.hascover": "Cover",
|
||||||
|
"MNBL.hazardous": "Tricky (20)",
|
||||||
|
"MNBL.health": "Health",
|
||||||
|
"MNBL.healthmalus": "Health Penalty",
|
||||||
|
"MNBL.heavycover": "Almost complete (-10)",
|
||||||
|
"MNBL.heroicsuccess": "Heroic Success",
|
||||||
|
"MNBL.highlanguage": "High Melnibonéan",
|
||||||
|
"MNBL.ignorearmor": "Ignore Armor",
|
||||||
|
"MNBL.ignorehealthmalus": "Ignore Health Penalty",
|
||||||
|
"MNBL.ignoresoulmalus": "Ignore Soul Penalty",
|
||||||
|
"MNBL.immobilize": "Immobilize",
|
||||||
|
"MNBL.insane": "Ridiculous (25)",
|
||||||
|
"MNBL.isdefense": "Defensive",
|
||||||
|
"MNBL.knockout": "Knock Out",
|
||||||
|
"MNBL.law": "Law",
|
||||||
|
"MNBL.legacy": "Legacy",
|
||||||
|
"MNBL.lessthanshort": "Less than short (10)",
|
||||||
|
"MNBL.lethal": "Lethal",
|
||||||
|
"MNBL.level": "Level",
|
||||||
|
"MNBL.lightcover": "Buckler or light (-2)",
|
||||||
|
"MNBL.longmore": "Long and more (25)",
|
||||||
|
"MNBL.longrange": "Long Range",
|
||||||
|
"MNBL.malus": "Penalty",
|
||||||
|
"MNBL.margin": "Margin",
|
||||||
|
"MNBL.medium": "Average (10)",
|
||||||
|
"MNBL.mediumcover": "Pavise or half (-5)",
|
||||||
|
"MNBL.mediummore": "Medium and more (20)",
|
||||||
|
"MNBL.mediumrange": "Medium Range",
|
||||||
|
"MNBL.meleethrowweapon": "Melee and Throwing Weapon",
|
||||||
|
"MNBL.meleeweapon": "Melee Weapon",
|
||||||
|
"MNBL.mode": "Mode",
|
||||||
|
"MNBL.modifier": "Modifiers",
|
||||||
|
"MNBL.modifiertype": "Modifier Type",
|
||||||
|
"MNBL.mounted": "Mounted",
|
||||||
|
"MNBL.nextactionmalus": "Penalty for next action",
|
||||||
|
"MNBL.nextattackbonus": "Bonus for next attack",
|
||||||
|
"MNBL.none": "None",
|
||||||
|
"MNBL.noneunknwon": "None/Unknown",
|
||||||
|
"MNBL.nonlethal": "Non-Lethal",
|
||||||
|
"MNBL.nonlethaldamage": "Non-Lethal Damage",
|
||||||
|
"MNBL.notarget": "No designated target",
|
||||||
|
"MNBL.origin": "Origin",
|
||||||
|
"MNBL.pacts": "Pacts",
|
||||||
|
"MNBL.points": "Points",
|
||||||
|
"MNBL.preciseattack": "Precision Attack",
|
||||||
|
"MNBL.predilections": "Specializations",
|
||||||
|
"MNBL.preferredhand": "Preferred Hand",
|
||||||
|
"MNBL.prerequisites": "Prerequisites",
|
||||||
|
"MNBL.price": "Price",
|
||||||
|
"MNBL.profession": "Profession",
|
||||||
|
"MNBL.pronounced": "Spoken",
|
||||||
|
"MNBL.pronouncedrune": "Spoken Rune",
|
||||||
|
"MNBL.pronouncerune": "Speak the rune",
|
||||||
|
"MNBL.protections": "Protections",
|
||||||
|
"MNBL.puremadness": "Insane (30)",
|
||||||
|
"MNBL.quantity": "Quantity",
|
||||||
|
"MNBL.range": "Range",
|
||||||
|
"MNBL.rarity": "Rarity",
|
||||||
|
"MNBL.registeredmodifiers": "Registered Modifiers",
|
||||||
|
"MNBL.reloadduration": "Reload Time",
|
||||||
|
"MNBL.ressources": "Resources",
|
||||||
|
"MNBL.roll": "Roll",
|
||||||
|
"MNBL.runes": "Runes",
|
||||||
|
"MNBL.runningtarget": "Running target (-5/-10 depending on range)",
|
||||||
|
"MNBL.shootmodifier": "Shooting Modifiers",
|
||||||
|
"MNBL.shootweapon": "Shoot Weapon",
|
||||||
|
"MNBL.shortmore": "Short and more (10)",
|
||||||
|
"MNBL.shortrange": "Short Range",
|
||||||
|
"MNBL.size": "Size",
|
||||||
|
"MNBL.skill": "Skill",
|
||||||
|
"MNBL.skills": "Skills",
|
||||||
|
"MNBL.smallroomtarget": "Target in confined space (+5)",
|
||||||
|
"MNBL.soul": "Soul",
|
||||||
|
"MNBL.soulmalus": "Soul Penalty",
|
||||||
|
"MNBL.soulmultiplier": "Soul Multiplier",
|
||||||
|
"MNBL.soulpoints": "Soul Points",
|
||||||
|
"MNBL.specialactions": "Special Actions",
|
||||||
|
"MNBL.specialweapon": "Special (ability/gift)",
|
||||||
|
"MNBL.speciestrait": "Species Trait",
|
||||||
|
"MNBL.speed": "Speed",
|
||||||
|
"MNBL.success": "Success",
|
||||||
|
"MNBL.target": "Target",
|
||||||
|
"MNBL.targetbelow": "Target below (+5)",
|
||||||
|
"MNBL.targetcantmove": "Target immobilized (+5)",
|
||||||
|
"MNBL.targetdefense": "Opponent's Defense",
|
||||||
|
"MNBL.targetground": "Target on the ground (+5)",
|
||||||
|
"MNBL.targetseeshoot": "Target is aware of the shot",
|
||||||
|
"MNBL.tendancies": "Tendencies",
|
||||||
|
"MNBL.throwweapon": "Throwing Weapon",
|
||||||
|
"MNBL.totalprotection": "Total Protection",
|
||||||
|
"MNBL.traced": "Written",
|
||||||
|
"MNBL.tracedrune": "Written Rune",
|
||||||
|
"MNBL.tracerune": "Write the rune",
|
||||||
|
"MNBL.treasuremoney": "Treasures and Money",
|
||||||
|
"MNBL.twohands": "Two-handed",
|
||||||
|
"MNBL.type": "Type",
|
||||||
|
"MNBL.unarmedtarget": "Unarmed target (+5)",
|
||||||
|
"MNBL.unit": "Unit",
|
||||||
|
"MNBL.use": "Use",
|
||||||
|
"MNBL.usedpredilection": "Used Predilection",
|
||||||
|
"MNBL.value": "Value",
|
||||||
|
"MNBL.weapon": "Weapon",
|
||||||
|
"MNBL.weaponbonusattack": "Handling Bonus (offensive)",
|
||||||
|
"MNBL.weaponbonusdefense": "Handling Bonus (defensive)",
|
||||||
|
"MNBL.weapons": "Weapons",
|
||||||
|
"MNBL.weaponscapacities": "Weapons/Abilities",
|
||||||
|
"MNBL.weapontype": "Weapon Type",
|
||||||
|
"MNBL.weight": "Weight",
|
||||||
|
"Présence": "Presence",
|
||||||
|
"Puissance": "Might",
|
||||||
|
"Trempe": "Mettle",
|
||||||
|
"TYPES": {
|
||||||
|
"Actor": {
|
||||||
|
"creature": "Creature",
|
||||||
|
"personnage": "Character"
|
||||||
|
},
|
||||||
|
"Item": {
|
||||||
|
"arme": "Weapon",
|
||||||
|
"bouclier": "Shield",
|
||||||
|
"capacite": "Ability",
|
||||||
|
"competence": "Skill",
|
||||||
|
"don": "Gifts",
|
||||||
|
"equipement": "Equipment",
|
||||||
|
"heritage": "Background",
|
||||||
|
"metier": "Profession",
|
||||||
|
"modifier": "Modifier",
|
||||||
|
"monnaie": "Currency",
|
||||||
|
"origine": "Origin",
|
||||||
|
"pacte": "Pacts",
|
||||||
|
"protection": "Protections",
|
||||||
|
"rune": "Rune",
|
||||||
|
"runeeffect": "Rune Effect",
|
||||||
|
"tendance": "Signs of Chaos",
|
||||||
|
"traitchaotique": "Background",
|
||||||
|
"traitespece": "Species Trait"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+189
-3
@@ -2,7 +2,7 @@
|
|||||||
"TYPES": {
|
"TYPES": {
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"personnage": "Personnage",
|
"personnage": "Personnage",
|
||||||
"PNJ": "PNJ"
|
"creature": "Créature"
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"arme": "Arme",
|
"arme": "Arme",
|
||||||
@@ -21,7 +21,193 @@
|
|||||||
"metier": "Métier",
|
"metier": "Métier",
|
||||||
"runeeffect": "Effet de Rune",
|
"runeeffect": "Effet de Rune",
|
||||||
"bouclier": "Bouclier",
|
"bouclier": "Bouclier",
|
||||||
"modifier": "Modificateur"
|
"modifier": "Modificateur",
|
||||||
}
|
"traitespece": "Trait d'Espèce"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"Adresse": "Adresse",
|
||||||
|
"Puissance": "Puissance",
|
||||||
|
"Clairvoyance": "Clairvoyance",
|
||||||
|
"Présence": "Présence",
|
||||||
|
"Trempe": "Trempe",
|
||||||
|
|
||||||
|
"MNBL.assaut": "Assaut",
|
||||||
|
"MNBL.preciseattack": "Attaque Précise",
|
||||||
|
"MNBL.feint": "Feinte",
|
||||||
|
"MNBL.dirtyattack": "Coup Bas",
|
||||||
|
"MNBL.charge": "Charger",
|
||||||
|
"MNBL.contain": "Contenir l'adversaire",
|
||||||
|
"MNBL.disarm": "Désarmer",
|
||||||
|
|
||||||
|
"MNBL.none": "Aucun",
|
||||||
|
"MNBL.lightcover": "Rondache ou léger (-2)",
|
||||||
|
"MNBL.mediumcover": "Pavois ou à moitié (-5)",
|
||||||
|
"MNBL.heavycover": "Quasi complet (-10)",
|
||||||
|
"MNBL.roll": "Jet",
|
||||||
|
"MNBL.defensecapacity": "Capacité défensive",
|
||||||
|
"MNBL.attackcapacity": "Capacité offensive",
|
||||||
|
|
||||||
|
"MNBL.lessthanshort": "Moins que courte (10)",
|
||||||
|
"MNBL.shortmore": "Courte et + (10)",
|
||||||
|
"MNBL.mediummore": "Moyenne et + (20)",
|
||||||
|
"MNBL.longmore": "Longue et + (25)",
|
||||||
|
|
||||||
|
"MNBL.noneunknwon": "Aucune/Inconnue",
|
||||||
|
"MNBL.easy": "Facile (5)",
|
||||||
|
"MNBL.medium": "Moyenne (10)",
|
||||||
|
"MNBL.hard": "Ardue (15)",
|
||||||
|
"MNBL.hazardous": "Hasardeuse (20)",
|
||||||
|
"MNBL.insane": "Insensée (25)",
|
||||||
|
"MNBL.puremadness": "Pure Folie (30)",
|
||||||
|
|
||||||
|
"MNBL.pronouncerune": "Prononcer la rune",
|
||||||
|
"MNBL.tracerune": "Tracer la rune",
|
||||||
|
"MNBL.pronounced": "Prononcée",
|
||||||
|
"MNBL.traced": "Tracée",
|
||||||
|
|
||||||
|
"MNBL.meleeweapon": "Arme de contact",
|
||||||
|
"MNBL.meleethrowweapon": "Arme de contact et de Jet",
|
||||||
|
"MNBL.throwweapon": "Arme de Lancer",
|
||||||
|
"MNBL.shootweapon": "Arme de Tir",
|
||||||
|
"MNBL.specialweapon": "Spécial (capacité/don)",
|
||||||
|
|
||||||
|
"MNBL.all": "Tous",
|
||||||
|
"MNBL.beastslords": "Seigneurs des Bêtes",
|
||||||
|
"MNBL.elementslords": "Seigneurs Elementaires",
|
||||||
|
|
||||||
|
"MNBL.law": "Loi",
|
||||||
|
"MNBL.chaos": "Chaos",
|
||||||
|
"MNBL.level": "Niveau",
|
||||||
|
"MNBL.points": "Points",
|
||||||
|
"MNBL.aspect": "Aspect",
|
||||||
|
"MNBL.margin": "Marge",
|
||||||
|
"MNBL.goodadventure" : "Bonne Aventure",
|
||||||
|
"MNBL.base": "Base",
|
||||||
|
"MNBL.current": "Actuelle",
|
||||||
|
"MNBL.alignement" : "Alignement",
|
||||||
|
"MNBL.eclat": "Eclat",
|
||||||
|
"MNBL.exp": "Expérience",
|
||||||
|
"MNBL.attributes": "Attributs",
|
||||||
|
"MNBL.skills": "Compétences",
|
||||||
|
"MNBL.abilities": "Dons/Pactes",
|
||||||
|
"MNBL.equipmentactions": "Equipements/Actions",
|
||||||
|
"MNBL.bio": "Bio&Notes",
|
||||||
|
"MNBL.health": "Santé",
|
||||||
|
"MNBL.bonus": "Bonus",
|
||||||
|
"MNBL.malus": "Malus",
|
||||||
|
"MNBL.nonlethal": "Non Létaux",
|
||||||
|
"MNBL.lethal": "Létaux",
|
||||||
|
"MNBL.automalus" : "Malus Auto",
|
||||||
|
"MNBL.soul": "Ame",
|
||||||
|
"MNBL.currentmax": "Max Actuel",
|
||||||
|
"MNBL.consumed": "Consommé",
|
||||||
|
"MNBL.damagebonus": "B. Dégats",
|
||||||
|
"MNBL.speed": "Vitesse",
|
||||||
|
"MNBL.defense": "Défense",
|
||||||
|
"MNBL.totalprotection": "Protection Totale",
|
||||||
|
"MNBL.modifier": "Modificateurs",
|
||||||
|
"MNBL.type": "Type",
|
||||||
|
"MNBL.value": "Valeur",
|
||||||
|
"MNBL.gifts": "Dons",
|
||||||
|
"MNBL.allegiance": "Allégeance",
|
||||||
|
"MNBL.pacts": "Pactes",
|
||||||
|
"MNBL.runes": "Runes",
|
||||||
|
"MNBL.highlanguage": "Haut Parler",
|
||||||
|
"MNBL.difficulty": "Difficulté",
|
||||||
|
"MNBL.tendancies": "Tendances",
|
||||||
|
"MNBL.chaotictraits": "Traits Chaotique",
|
||||||
|
"MNBL.activatedrunes": "Runes actives",
|
||||||
|
"MNBL.mode": "Mode",
|
||||||
|
"MNBL.duration": "Durée",
|
||||||
|
"MNBL.treasuremoney": "Richesses et Argent",
|
||||||
|
"MNBL.quantity": "Quantité",
|
||||||
|
"MNBL.unit": "Unité",
|
||||||
|
"MNBL.specialactions": "Actions spéciales",
|
||||||
|
"MNBL.knockout": "Assomer",
|
||||||
|
"MNBL.flee": "Fuir",
|
||||||
|
"MNBL.immobilize": "Immobiliser",
|
||||||
|
"MNBL.mounted": "Monté",
|
||||||
|
"MNBL.weapons": "Armes",
|
||||||
|
"MNBL.attack": "Attaque",
|
||||||
|
"MNBL.damage": "Dégats",
|
||||||
|
"MNBL.protections": "Protections",
|
||||||
|
"MNBL.equipments": "Equipements",
|
||||||
|
"MNBL.origin": "Origine",
|
||||||
|
"MNBL.legacy": "Héritage",
|
||||||
|
"MNBL.profession": "Métier",
|
||||||
|
"MNBL.genre": "Genre",
|
||||||
|
"MNBL.size": "Taille",
|
||||||
|
"MNBL.hair": "Cheveux",
|
||||||
|
"MNBL.eyes": "Yeux",
|
||||||
|
"MNBL.preferredhand": "Main Préférée",
|
||||||
|
"MNBL.weight": "Weight",
|
||||||
|
"MNBL.soulmultiplier": "Multiplicateur d'âme",
|
||||||
|
"MNBL.ignorehealthmalus": "Ignore le malus de santé",
|
||||||
|
"MNBL.ignoresoulmalus": "Ignore le malus d'âme",
|
||||||
|
|
||||||
|
"MNBL.weapon": "Arme",
|
||||||
|
"MNBL.nextattackbonus": "Bonus pour prochaine attaque",
|
||||||
|
"MNBL.nextactionmalus": "Malus au défenseur pour prochaine action",
|
||||||
|
"MNBL.applydamage": "Appliquer les dégats/bonus/malus",
|
||||||
|
"MNBL.attribut": "Attribut",
|
||||||
|
"MNBL.skill": "Compétence",
|
||||||
|
"MNBL.target": "Cible",
|
||||||
|
"MNBL.usedpredilection": "Prédilection utilisée",
|
||||||
|
"MNBL.soulpoints": "Points d'âme",
|
||||||
|
"MNBL.formula": "Formule",
|
||||||
|
"MNBL.dice":"Dé",
|
||||||
|
"MNBL.success": "Succés",
|
||||||
|
"MNBL.failure": "Echec",
|
||||||
|
"MNBL.heroicsuccess": "Succés Héroïque",
|
||||||
|
"MNBL.dramaticfailure": "Echec Dramatique",
|
||||||
|
|
||||||
|
"MNBL.attackmountbonus": "Attaquant monté vs def. au sol (+5)",
|
||||||
|
"MNBL.targetdefense": "Défense adversaire",
|
||||||
|
"MNBL.shootmodifier": "Modificateurs de Tir",
|
||||||
|
"MNBL.aimingbonus": "Bonus de visée",
|
||||||
|
"MNBL.targetseeshoot": "La cible est consciente du tir",
|
||||||
|
"MNBL.notarget": "Pas de cible désignée",
|
||||||
|
"MNBL.runningtarget": "La cible court (-5/-10 selon portée)",
|
||||||
|
"MNBL.hascover": "Couvert",
|
||||||
|
"MNBL.range": "Portée",
|
||||||
|
"MNBL.disadvantagepositions": "Positions désavantageuses (Bonus max +15)",
|
||||||
|
"MNBL.targetground": "Cible au sol (+5)",
|
||||||
|
"MNBL.unarmedtarget": "Cible désarmée (+5)",
|
||||||
|
"MNBL.smallroomtarget": "Cible en espace restreint (+5)",
|
||||||
|
"MNBL.targetcantmove": "Cible immobilisée (+5)",
|
||||||
|
"MNBL.targetbelow": "Cible surplombée (+5)",
|
||||||
|
"MNBL.healthmalus": "Malus de santé",
|
||||||
|
"MNBL.soulmalus": "Malus d'âme",
|
||||||
|
"MNBL.registeredmodifiers": "Modificateurs enregistrés",
|
||||||
|
"MNBL.doubleD20": "Doubler le d20 (1 Point d'Eclat)",
|
||||||
|
|
||||||
|
"MNBL.pronouncedrune": "Rune prononcée",
|
||||||
|
"MNBL.tracedrune": "Rune tracée",
|
||||||
|
"MNBL.equipped": "Equipé",
|
||||||
|
"MNBL.rarity": "Rareté",
|
||||||
|
"MNBL.price": "Prix",
|
||||||
|
"MNBL.modifiertype": "Type de modificateur",
|
||||||
|
"MNBL.prerequisites": "Prérequis",
|
||||||
|
"MNBL.predilections": "Prédilections",
|
||||||
|
"MNBL.candoublebonusskill": "Les bonus de Bonne Aventure et d'Eclat peuvent être doublés (cf. Métier)",
|
||||||
|
"MNBL.addpredilection": "Ajouter une prédilection",
|
||||||
|
"MNBL.defensebonus": "Bonus de défense",
|
||||||
|
"MNBL.nonlethaldamage": "Dégâts non létaux",
|
||||||
|
"MNBL.weapontype": "Type d'arme",
|
||||||
|
"MNBL.weaponbonusattack": "Bonus de maniement (offensif)",
|
||||||
|
"MNBL.weaponbonusdefense": "Bonus de maniement (défensif)",
|
||||||
|
"MNBL.isdefense": "Défensive",
|
||||||
|
"MNBL.twohands": "A deux mains",
|
||||||
|
"MNBL.ignorearmor": "Ignore l'armure",
|
||||||
|
"MNBL.creatureresourcecost": "Cout en Ressources (créatures)",
|
||||||
|
"MNBL.shortrange": "Portée courte",
|
||||||
|
"MNBL.mediumrange":"Portée moyenne",
|
||||||
|
"MNBL.longrange":"Portée longue",
|
||||||
|
"MNBL.reloadduration": "Temps de rechargement",
|
||||||
|
"MNBL.attacks": "Attaques",
|
||||||
|
"MNBL.ressources": "Ressources",
|
||||||
|
"MNBL.weaponscapacities": "Armes/Capacités",
|
||||||
|
"MNBL.use": "Utiliser",
|
||||||
|
"MNBL.speciestrait": "Trait d'espèce"
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@ export class MournbladeActorSheet extends ActorSheet {
|
|||||||
/** @override */
|
/** @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,23 +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()),
|
||||||
origine: duplicate(this.actor.getOrigine() || {}),
|
traitsEspeces: foundry.utils.duplicate(this.actor.getTraitsEspeces()),
|
||||||
heritage: duplicate(this.actor.getHeritage() || {}),
|
origine: foundry.utils.duplicate(this.actor.getOrigine() || {}),
|
||||||
metier: duplicate(this.actor.getMetier() || {}),
|
heritage: foundry.utils.duplicate(this.actor.getHeritage() || {}),
|
||||||
|
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(),
|
||||||
@@ -134,6 +136,21 @@ 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) => {
|
||||||
|
const li = $(event.currentTarget).parents(".item")
|
||||||
|
let armeId = li.data("item-id")
|
||||||
|
this.actor.rollArmeSpecial(armeId)
|
||||||
|
})
|
||||||
|
|
||||||
html.find('.roll-arme-degats').click((event) => {
|
html.find('.roll-arme-degats').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")
|
||||||
|
|||||||
+127
-23
@@ -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;
|
||||||
@@ -41,9 +41,14 @@ export class MournbladeActor extends Actor {
|
|||||||
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
|
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills")
|
||||||
data.items = skills.map(i => i.toObject())
|
data.items = skills.map(i => i.toObject())
|
||||||
}
|
}
|
||||||
if (data.type == 'pnj') {
|
if (data.type == 'creature') {
|
||||||
|
const skills = await MournbladeUtility.loadCompendium("fvtt-mournblade.skills-creatures")
|
||||||
|
data.items = skills.map(i => i.toObject())
|
||||||
|
data.items.push({ name: "Arme naturelle 1", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
|
||||||
|
data.items.push({ name: "Arme naturelle 2", type: 'arme', img: "systems/fvtt-mournblade/assets/icons/arme.webp", system: { typearme: "contact", bonusmaniementoff: 0, seuildefense: 0, degats: "0" } })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return super.create(data, options);
|
return super.create(data, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,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
|
||||||
@@ -81,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
|
||||||
@@ -131,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"])
|
||||||
}
|
}
|
||||||
@@ -146,6 +154,9 @@ export class MournbladeActor extends Actor {
|
|||||||
getTraitsChaotiques() {
|
getTraitsChaotiques() {
|
||||||
return this.getItemSorted(["traitchaotique"])
|
return this.getItemSorted(["traitchaotique"])
|
||||||
}
|
}
|
||||||
|
getTraitsEspeces() {
|
||||||
|
return this.getItemSorted(["traitespece"])
|
||||||
|
}
|
||||||
getMonnaies() {
|
getMonnaies() {
|
||||||
return this.getItemSorted(["monnaie"])
|
return this.getItemSorted(["monnaie"])
|
||||||
}
|
}
|
||||||
@@ -168,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)
|
||||||
@@ -222,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(),
|
||||||
@@ -230,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
|
||||||
}
|
}
|
||||||
@@ -271,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;
|
||||||
}
|
}
|
||||||
@@ -346,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) {
|
||||||
@@ -367,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)
|
||||||
@@ -405,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 {
|
||||||
@@ -432,6 +450,9 @@ export class MournbladeActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getBonusDegats() {
|
getBonusDegats() {
|
||||||
|
if (this.type == "creature") {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
return __degatsBonus[this.system.attributs.pui.value]
|
return __degatsBonus[this.system.attributs.pui.value]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -448,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 });
|
||||||
}
|
}
|
||||||
@@ -485,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 }])
|
||||||
}
|
}
|
||||||
@@ -508,11 +529,32 @@ 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
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
depenseRessources(arme) {
|
||||||
|
if (arme.system.nbressources && Number(arme.system.nbressources) > 0) {
|
||||||
|
if (this.type == "creature") {
|
||||||
|
let ressources = foundry.utils.duplicate(this.system.ressources)
|
||||||
|
if (Number(ressources.value) >= Number(arme.system.nbressources)) {
|
||||||
|
ressources.value -= arme.system.nbressources
|
||||||
|
this.update({ 'system.ressources': ressources })
|
||||||
|
ChatMessage.create({
|
||||||
|
content: "L'utilisation de la capacité/arme a dépensé " + arme.system.nbressources + " ressources.",
|
||||||
|
whisper: game.user._id,
|
||||||
|
user: game.user._id
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Points de ressources insuffisants.")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn("Les ressources ne sont pas disponibles pour les personnages.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCommonRollData(attrKey = undefined, compId = undefined, compName = undefined) {
|
getCommonRollData(attrKey = undefined, compId = undefined, compName = undefined) {
|
||||||
@@ -529,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
|
||||||
@@ -571,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
|
||||||
@@ -593,18 +640,75 @@ 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)
|
||||||
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
let rollDialog = await MournbladeRollDialog.create(this, rollData)
|
||||||
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) {
|
||||||
|
let arme = this.items.get(armeId)
|
||||||
|
if (arme) {
|
||||||
|
MournbladeUtility.createChatWithRollMode("GM", {
|
||||||
|
content: await renderTemplate(`systems/fvtt-mournblade/templates/chat-display-description.html`, arme)
|
||||||
|
}, arme)
|
||||||
|
this.depenseRessources(arme)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollArmeDegats(armeId) {
|
async rollArmeDegats(armeId) {
|
||||||
let arme = this.items.get(armeId)
|
let arme = this.items.get(armeId)
|
||||||
|
|||||||
@@ -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"),
|
||||||
|
coupbas: game.i18n.localize("MNBL.dirtyattack"),
|
||||||
|
charger: game.i18n.localize("MNBL.charge"),
|
||||||
|
contenir: game.i18n.localize("MNBL.contain"),
|
||||||
|
desarmer: game.i18n.localize("MNBL.disarm")
|
||||||
},
|
},
|
||||||
couverts:{
|
couverts: {
|
||||||
aucun: {name: "Aucun", value: 0},
|
aucun: { name: game.i18n.localize("MNBL.none"), value: 0 },
|
||||||
rondache: {name: "Rondache ou léger (-2)", value: -2},
|
rondache: { name: game.i18n.localize("MNBL.lightcover"), value: -2 },
|
||||||
pavois: { name: "Pavois ou à moitié (-5)", value: -5},
|
pavois: { name: game.i18n.localize("MNBL.mediumcover"), value: -5 },
|
||||||
complet: {name:"Quasi complet (-10)", value: -10},
|
complet: { name: game.i18n.localize("MNBL.heavycover"), value: -10 },
|
||||||
},
|
},
|
||||||
modifierTypes: {
|
modifierTypes: {
|
||||||
aucun: {name: "Aucun", value: 0},
|
aucun: { name: game.i18n.localize("MNBL.none"), value: 0 },
|
||||||
roll: {name: "Jet", value: 0},
|
roll: { name: game.i18n.localize("MNBL.roll"), value: 0 },
|
||||||
degats: {name: "Dégats", value: 0},
|
degats: { name: game.i18n.localize("MNBL.damage"), value: 0 },
|
||||||
|
defense: { name: game.i18n.localize("MNBL.defensecapacity"), value: 0 },
|
||||||
|
attaque: { name: game.i18n.localize("MNBL.attackcapacity"), value: 0 },
|
||||||
|
},
|
||||||
|
listeNiveau: {
|
||||||
|
},
|
||||||
|
listeNiveauCreature: {
|
||||||
|
},
|
||||||
|
listePortees: {
|
||||||
|
"10": game.i18n.localize("MNBL.lessthanshort"),
|
||||||
|
"15": game.i18n.localize("MNBL.shortmore"),
|
||||||
|
"20": game.i18n.localize("MNBL.mediummore"),
|
||||||
|
"25": game.i18n.localize("MNBL.longmore")
|
||||||
|
},
|
||||||
|
modificateurOptions: {},
|
||||||
|
pointsAmeOptions: {},
|
||||||
|
difficulteOptions: {
|
||||||
|
"0": game.i18n.localize("MNBL.noneunknwon"),
|
||||||
|
"5": game.i18n.localize("MNBL.easy"),
|
||||||
|
"10": game.i18n.localize("MNBL.medium"),
|
||||||
|
"15": game.i18n.localize("MNBL.hard"),
|
||||||
|
"20": game.i18n.localize("MNBL.hazardous"),
|
||||||
|
"25": game.i18n.localize("MNBL.insane"),
|
||||||
|
"30": game.i18n.localize("MNBL.puremadness")
|
||||||
|
},
|
||||||
|
attributs: {
|
||||||
|
adr: game.i18n.localize("Adresse"), pui: game.i18n.localize("Puissance"),
|
||||||
|
cla: game.i18n.localize("Clairvoyance"), pre: game.i18n.localize("Présence"), tre: game.i18n.localize("Trempe")
|
||||||
|
},
|
||||||
|
lancementRuneOptions: {
|
||||||
|
prononcer: game.i18n.localize("MNBL.pronouncerune"),
|
||||||
|
inscrire: game.i18n.localize("MNBL.tracerune")
|
||||||
|
},
|
||||||
|
effetRuneOptions: {
|
||||||
|
prononcee: game.i18n.localize("MNBL.pronounced"),
|
||||||
|
inscrite: game.i18n.localize("MNBL.traced")
|
||||||
|
},
|
||||||
|
typeArmeOptions: {
|
||||||
|
contact: game.i18n.localize("MNBL.meleeweapon"),
|
||||||
|
contactjet: game.i18n.localize("MNBL.meleethrowweapon"),
|
||||||
|
jet: game.i18n.localize("MNBL.throwweapon"),
|
||||||
|
tir: game.i18n.localize("MNBL.shootweapon"),
|
||||||
|
special: game.i18n.localize("MNBL.specialweapon")
|
||||||
|
},
|
||||||
|
allegeanceOptions: {
|
||||||
|
tous: game.i18n.localize("MNBL.all"),
|
||||||
|
chaos: game.i18n.localize("MNBL.chaos"),
|
||||||
|
loi: game.i18n.localize("MNBL.law"),
|
||||||
|
betes: game.i18n.localize("MNBL.beastslords"),
|
||||||
|
elementaires: game.i18n.localize("MNBL.elementslords")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return MOURNBLADE_CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
|
* @extends {ActorSheet}
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
|
||||||
|
import { MournbladeUtility } from "./mournblade-utility.js";
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
export class MournbladeCreatureSheet extends MournbladeActorSheet {
|
||||||
|
|
||||||
|
/** @override */
|
||||||
|
static get defaultOptions() {
|
||||||
|
|
||||||
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
classes: ["fvtt-mournblade", "sheet", "actor"],
|
||||||
|
template: "systems/fvtt-mournblade/templates/creature-sheet.html",
|
||||||
|
width: 640,
|
||||||
|
height: 720,
|
||||||
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
|
editScore: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ export class MournbladeItemSheet extends ItemSheet {
|
|||||||
/** @override */
|
/** @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 })
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const defaultItemImg = {
|
|||||||
runeeffect: "systems/fvtt-mournblade/assets/icons/rune.webp",
|
runeeffect: "systems/fvtt-mournblade/assets/icons/rune.webp",
|
||||||
tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp",
|
tendance: "systems/fvtt-mournblade/assets/icons/tendance.webp",
|
||||||
traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp",
|
traitchaotique: "systems/fvtt-mournblade/assets/icons/traitchaotique.webp",
|
||||||
|
traitespece: "systems/fvtt-mournblade/assets/icons/capacite.webp"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+30
-27
@@ -11,11 +11,11 @@
|
|||||||
import { MournbladeActor } from "./mournblade-actor.js";
|
import { MournbladeActor } from "./mournblade-actor.js";
|
||||||
import { MournbladeItemSheet } from "./mournblade-item-sheet.js";
|
import { MournbladeItemSheet } from "./mournblade-item-sheet.js";
|
||||||
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
|
import { MournbladeActorSheet } from "./mournblade-actor-sheet.js";
|
||||||
//import { MournbladeNPCSheet } from "./mournblade-npc-sheet.js";
|
import { MournbladeCreatureSheet } from "./mournblade-creature-sheet.js";
|
||||||
import { MournbladeUtility } from "./mournblade-utility.js";
|
import { 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,14 +47,14 @@ 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(),
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register sheet application classes
|
// Register sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
Actors.unregisterSheet("core", ActorSheet);
|
||||||
Actors.registerSheet("fvtt-mournblade", MournbladeActorSheet, { types: ["personnage"], makeDefault: true })
|
Actors.registerSheet("fvtt-mournblade", MournbladeActorSheet, { types: ["personnage"], makeDefault: true })
|
||||||
//Actors.registerSheet("fvtt-mournblade", MournbladeNPCSheet, { types: ["npc"], makeDefault: false });
|
Actors.registerSheet("fvtt-mournblade", MournbladeCreatureSheet, { types: ["creature"], makeDefault: true })
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
Items.unregisterSheet("core", ItemSheet);
|
||||||
Items.registerSheet("fvtt-mournblade", MournbladeItemSheet, { makeDefault: true })
|
Items.registerSheet("fvtt-mournblade", MournbladeItemSheet, { makeDefault: true })
|
||||||
@@ -77,28 +77,13 @@ function welcomeMessage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register world usage statistics
|
async function importDefaultScene() {
|
||||||
function registerUsageCount( registerKey ) {
|
let exists = game.scenes.find(j => j.name == "Accueil");
|
||||||
if ( game.user.isGM ) {
|
if (!exists) {
|
||||||
game.settings.register(registerKey, "world-key", {
|
const scenes = await MournbladeUtility.loadCompendium("fvtt-mournblade.scenes")
|
||||||
name: "Unique world key",
|
let newDocuments = scenes.filter(i => i.name == "Accueil");
|
||||||
scope: "world",
|
await game.scenes.documentClass.create(newDocuments);
|
||||||
config: false,
|
game.scenes.find(i => i.name == "Accueil").activate();
|
||||||
default: "",
|
|
||||||
type: String
|
|
||||||
});
|
|
||||||
|
|
||||||
let worldKey = game.settings.get(registerKey, "world-key")
|
|
||||||
if ( worldKey == undefined || worldKey == "" ) {
|
|
||||||
worldKey = randomID(32)
|
|
||||||
game.settings.set(registerKey, "world-key", worldKey )
|
|
||||||
}
|
|
||||||
// Simple API counter
|
|
||||||
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
|
|
||||||
//$.ajaxSetup({
|
|
||||||
//headers: { 'Access-Control-Allow-Origin': '*' }
|
|
||||||
//})
|
|
||||||
$.ajax(regURL)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,6 +92,10 @@ function registerUsageCount( registerKey ) {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
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) {
|
||||||
@@ -116,8 +105,22 @@ Hooks.once("ready", function () {
|
|||||||
user: game.user._id
|
user: game.user._id
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
|
||||||
|
ui.notifications.info("Le token de du joueur n'est pas connecté à l'acteur !");
|
||||||
|
ChatMessage.create({
|
||||||
|
content: "<b>ATTENTION</b> Le token du joueur " + game.user.name + " n'est pas connecté à l'acteur !",
|
||||||
|
user: game.user._id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
registerUsageCount('fvtt-mournblade')
|
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
|
||||||
|
console.log("ClassCounter loaded", moduleCounter)
|
||||||
|
moduleCounter.ClassCounter.registerUsageCount()
|
||||||
|
}).catch(err=>
|
||||||
|
console.log("No stats available, giving up.")
|
||||||
|
)
|
||||||
|
|
||||||
|
importDefaultScene();
|
||||||
welcomeMessage();
|
welcomeMessage();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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,8 +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'
|
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
@@ -223,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;
|
||||||
}
|
}
|
||||||
@@ -323,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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -335,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
|
||||||
@@ -347,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 {
|
||||||
@@ -365,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) {
|
||||||
@@ -382,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}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,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) {
|
||||||
@@ -412,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)
|
||||||
@@ -425,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
|
||||||
rollData.degatsFormula += " + " + rollData.arme.system.totalDegats
|
|
||||||
degatsMessage = "Dégats doublés"
|
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"
|
||||||
@@ -456,16 +470,16 @@ 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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -479,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
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,11 +543,14 @@ 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
|
||||||
|
|
||||||
let type = (rollData.arme.system.nonletaux) ? "nonletaux" : "letaux"
|
let type = (rollData.arme.system.nonletaux) ? "nonletaux" : "letaux"
|
||||||
|
if (rollData.arme.system.ignorearmure) {
|
||||||
|
rollData.ignoreDefenseArmor = true
|
||||||
|
}
|
||||||
defender.incDecSante(type, +degats, rollData.ignoreDefenseArmor)
|
defender.incDecSante(type, +degats, rollData.ignoreDefenseArmor)
|
||||||
ui.notifications.info(defender.name + "a subi " + degats + " points de santé " + type + ".")
|
ui.notifications.info(defender.name + "a subi " + degats + " points de santé " + type + ".")
|
||||||
}
|
}
|
||||||
@@ -541,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
|
||||||
|
|
||||||
@@ -577,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);
|
||||||
@@ -640,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
|
||||||
@@ -658,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
@@ -1 +1 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000217
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.895542 7ff8897fa6c0 Recovering log #80
|
2024/09/10-07:14:44.885743 7f7ed4e006c0 Recovering log #215
|
||||||
2023/12/29-18:08:02.906834 7ff8897fa6c0 Delete type=3 #78
|
2024/09/10-07:14:44.956966 7f7ed4e006c0 Delete type=3 #213
|
||||||
2023/12/29-18:08:02.906922 7ff8897fa6c0 Delete type=0 #80
|
2024/09/10-07:14:44.957144 7f7ed4e006c0 Delete type=0 #215
|
||||||
2023/12/29-18:35:10.992944 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.463210 7f7ecd6006c0 Level-0 table #220: started
|
||||||
2023/12/29-18:35:10.992987 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.463253 7f7ecd6006c0 Level-0 table #220: 0 bytes OK
|
||||||
2023/12/29-18:35:11.000315 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.501220 7f7ecd6006c0 Delete type=0 #218
|
||||||
2023/12/29-18:35:11.000621 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.000680 7ff888ff96c0 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
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.193477 7ff88affd6c0 Recovering log #76
|
2024/09/09-21:51:17.138004 7f7ecf4006c0 Recovering log #210
|
||||||
2023/12/29-18:01:15.204268 7ff88affd6c0 Delete type=3 #74
|
2024/09/09-21:51:17.149501 7f7ecf4006c0 Delete type=3 #208
|
||||||
2023/12/29-18:01:15.204515 7ff88affd6c0 Delete type=0 #76
|
2024/09/09-21:51:17.149609 7f7ecf4006c0 Delete type=0 #210
|
||||||
2023/12/29-18:06:09.125188 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.597265 7f7ecd6006c0 Level-0 table #216: started
|
||||||
2023/12/29-18:06:09.125260 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.597313 7f7ecd6006c0 Level-0 table #216: 0 bytes OK
|
||||||
2023/12/29-18:06:09.131577 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.604438 7f7ecd6006c0 Delete type=0 #214
|
||||||
2023/12/29-18:06:09.138438 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.138539 7ff888ff96c0 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
@@ -1 +1 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.938259 7ff88a7fc6c0 Recovering log #80
|
2024/09/10-07:14:45.086238 7f7ecf4006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.948723 7ff88a7fc6c0 Delete type=3 #78
|
2024/09/10-07:14:45.144857 7f7ecf4006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.948819 7ff88a7fc6c0 Delete type=0 #80
|
2024/09/10-07:14:45.145056 7f7ecf4006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.014647 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.607105 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.014703 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.607143 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.021128 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.638955 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.027714 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.027775 7ff888ff96c0 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
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.233956 7ff8897fa6c0 Recovering log #76
|
2024/09/09-21:51:17.180244 7f7ecea006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.244628 7ff8897fa6c0 Delete type=3 #74
|
2024/09/09-21:51:17.191008 7f7ecea006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.244714 7ff8897fa6c0 Delete type=0 #76
|
2024/09/09-21:51:17.191115 7f7ecea006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.152915 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.625325 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.152950 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.625386 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.160381 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.631864 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.166827 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.166900 7ff888ff96c0 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 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.922917 7ff889ffb6c0 Recovering log #80
|
2024/09/10-07:14:45.020069 7f7ecfe006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.933943 7ff889ffb6c0 Delete type=3 #78
|
2024/09/10-07:14:45.082360 7f7ecfe006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.934135 7ff889ffb6c0 Delete type=0 #80
|
2024/09/10-07:14:45.082521 7f7ecfe006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.021264 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.576805 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.021301 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.576855 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.027524 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.606927 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.027727 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.027763 7ff888ff96c0 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)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.220038 7ff88a7fc6c0 Recovering log #76
|
2024/09/09-21:51:17.166142 7f7ecfe006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.230568 7ff88a7fc6c0 Delete type=3 #74
|
2024/09/09-21:51:17.176865 7f7ecfe006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.230651 7ff88a7fc6c0 Delete type=0 #76
|
2024/09/09-21:51:17.176960 7f7ecfe006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.146122 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.618041 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.146158 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.618105 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.152621 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.625105 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.166813 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.166865 7ff888ff96c0 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 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.964468 7ff88affd6c0 Recovering log #80
|
2024/09/10-07:14:45.210943 7f7ecea006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.975075 7ff88affd6c0 Delete type=3 #78
|
2024/09/10-07:14:45.265940 7f7ecea006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.975188 7ff88affd6c0 Delete type=0 #80
|
2024/09/10-07:14:45.266060 7f7ecea006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.027877 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.678752 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.027953 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.678827 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.035219 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.713480 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.056301 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.056344 7ff888ff96c0 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)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.261055 7ff889ffb6c0 Recovering log #76
|
2024/09/09-21:51:17.208104 7f7ed4e006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.271352 7ff889ffb6c0 Delete type=3 #74
|
2024/09/09-21:51:17.219088 7f7ed4e006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.271443 7ff889ffb6c0 Delete type=0 #76
|
2024/09/09-21:51:17.219197 7f7ed4e006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.166972 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.639145 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.167006 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.639185 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.173926 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.646533 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.195524 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.195617 7ff888ff96c0 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 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.977894 7ff889ffb6c0 Recovering log #80
|
2024/09/10-07:14:45.269926 7f7ecfe006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.988351 7ff889ffb6c0 Delete type=3 #78
|
2024/09/10-07:14:45.328808 7f7ecfe006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.988521 7ff889ffb6c0 Delete type=0 #80
|
2024/09/10-07:14:45.328977 7f7ecfe006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.035373 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.783195 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.035409 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.783241 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.041608 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.816523 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.056318 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.056381 7ff888ff96c0 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)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.274179 7ff88a7fc6c0 Recovering log #76
|
2024/09/09-21:51:17.222186 7f7ecfe006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.285532 7ff88a7fc6c0 Delete type=3 #74
|
2024/09/09-21:51:17.233209 7f7ecfe006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.285634 7ff88a7fc6c0 Delete type=0 #76
|
2024/09/09-21:51:17.233359 7f7ecfe006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.174140 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.646768 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.174200 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.646827 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.181044 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.653236 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.195551 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.195637 7ff888ff96c0 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 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.951461 7ff8897fa6c0 Recovering log #80
|
2024/09/10-07:14:45.148885 7f7ed4e006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.961670 7ff8897fa6c0 Delete type=3 #78
|
2024/09/10-07:14:45.204991 7f7ed4e006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.961810 7ff8897fa6c0 Delete type=0 #80
|
2024/09/10-07:14:45.205146 7f7ed4e006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.007596 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.639140 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.007633 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.639178 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.014447 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.677964 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.027700 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.027751 7ff888ff96c0 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)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.247529 7ff88affd6c0 Recovering log #76
|
2024/09/09-21:51:17.194403 7f7ecf4006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.257831 7ff88affd6c0 Delete type=3 #74
|
2024/09/09-21:51:17.204990 7f7ecf4006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.257933 7ff88affd6c0 Delete type=0 #76
|
2024/09/09-21:51:17.205104 7f7ecf4006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.160510 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.632133 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.160545 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.632191 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.166661 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.638748 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.166853 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.166887 7ff888ff96c0 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.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000112
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/10-07:14:44.657561 7f7ecf4006c0 Recovering log #110
|
||||||
|
2024/09/10-07:14:44.756808 7f7ecf4006c0 Delete type=3 #108
|
||||||
|
2024/09/10-07:14:44.756963 7f7ecf4006c0 Delete type=0 #110
|
||||||
|
2024/09/10-07:20:33.399722 7f7ecd6006c0 Level-0 table #115: started
|
||||||
|
2024/09/10-07:20:33.399823 7f7ecd6006c0 Level-0 table #115: 0 bytes OK
|
||||||
|
2024/09/10-07:20:33.426020 7f7ecd6006c0 Delete type=0 #113
|
||||||
|
2024/09/10-07:20:33.538803 7f7ecd6006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/10-07:20:33.538898 7f7ecd6006c0 Manual compaction at level-1 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/09-21:51:17.088284 7f7ecea006c0 Recovering log #105
|
||||||
|
2024/09/09-21:51:17.099095 7f7ecea006c0 Delete type=3 #103
|
||||||
|
2024/09/09-21:51:17.099204 7f7ecea006c0 Delete type=0 #105
|
||||||
|
2024/09/09-21:52:48.582588 7f7ecd6006c0 Level-0 table #111: started
|
||||||
|
2024/09/09-21:52:48.582673 7f7ecd6006c0 Level-0 table #111: 0 bytes OK
|
||||||
|
2024/09/09-21:52:48.589717 7f7ecd6006c0 Delete type=0 #109
|
||||||
|
2024/09/09-21:52:48.611309 7f7ecd6006c0 Manual compaction at level-0 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/09-21:52:48.611384 7f7ecd6006c0 Manual compaction at level-1 from '!actors!00CKDCqVh5fLZbYo' @ 72057594037927935 : 1 .. '!folders!dwT9WnH0ZnpuZh92' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:02.909881 7ff88affd6c0 Recovering log #80
|
2024/09/10-07:14:44.961549 7f7ecea006c0 Recovering log #214
|
||||||
2023/12/29-18:08:02.919868 7ff88affd6c0 Delete type=3 #78
|
2024/09/10-07:14:45.016222 7f7ecea006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:02.919957 7ff88affd6c0 Delete type=0 #80
|
2024/09/10-07:14:45.016606 7f7ecea006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.000815 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.539100 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.000912 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.539159 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.007463 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.576585 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.027682 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.027739 7ff888ff96c0 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)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.207121 7ff889ffb6c0 Recovering log #76
|
2024/09/09-21:51:17.152829 7f7ed4e006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.217340 7ff889ffb6c0 Delete type=3 #74
|
2024/09/09-21:51:17.163037 7f7ed4e006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.217456 7ff889ffb6c0 Delete type=0 #76
|
2024/09/09-21:51:17.163143 7f7ed4e006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.138617 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.611545 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.138720 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.611586 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.145987 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.617883 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.166796 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.166840 7ff888ff96c0 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
@@ -1 +1 @@
|
|||||||
MANIFEST-000082
|
MANIFEST-000216
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:08:03.021158 7ff88affd6c0 Recovering log #80
|
2024/09/10-07:14:45.464393 7f7ecea006c0 Recovering log #214
|
||||||
2023/12/29-18:08:03.031240 7ff88affd6c0 Delete type=3 #78
|
2024/09/10-07:14:45.568041 7f7ecea006c0 Delete type=3 #212
|
||||||
2023/12/29-18:08:03.031366 7ff88affd6c0 Delete type=0 #80
|
2024/09/10-07:14:45.568192 7f7ecea006c0 Delete type=0 #214
|
||||||
2023/12/29-18:35:11.056532 7ff888ff96c0 Level-0 table #85: started
|
2024/09/10-07:20:33.817119 7f7ecd6006c0 Level-0 table #219: started
|
||||||
2023/12/29-18:35:11.056576 7ff888ff96c0 Level-0 table #85: 0 bytes OK
|
2024/09/10-07:20:33.817259 7f7ecd6006c0 Level-0 table #219: 0 bytes OK
|
||||||
2023/12/29-18:35:11.062843 7ff888ff96c0 Delete type=0 #83
|
2024/09/10-07:20:33.853842 7f7ecd6006c0 Delete type=0 #217
|
||||||
2023/12/29-18:35:11.070764 7ff888ff96c0 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)
|
||||||
2023/12/29-18:35:11.070812 7ff888ff96c0 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
@@ -1,8 +1,8 @@
|
|||||||
2023/12/29-18:01:15.317438 7ff889ffb6c0 Recovering log #76
|
2024/09/09-21:51:17.266111 7f7ed4e006c0 Recovering log #209
|
||||||
2023/12/29-18:01:15.328160 7ff889ffb6c0 Delete type=3 #74
|
2024/09/09-21:51:17.276764 7f7ed4e006c0 Delete type=3 #207
|
||||||
2023/12/29-18:01:15.328266 7ff889ffb6c0 Delete type=0 #76
|
2024/09/09-21:51:17.276860 7f7ed4e006c0 Delete type=0 #209
|
||||||
2023/12/29-18:06:09.202476 7ff888ff96c0 Level-0 table #81: started
|
2024/09/09-21:52:48.668305 7f7ecd6006c0 Level-0 table #215: started
|
||||||
2023/12/29-18:06:09.202514 7ff888ff96c0 Level-0 table #81: 0 bytes OK
|
2024/09/09-21:52:48.668347 7f7ecd6006c0 Level-0 table #215: 0 bytes OK
|
||||||
2023/12/29-18:06:09.208966 7ff888ff96c0 Delete type=0 #79
|
2024/09/09-21:52:48.674748 7f7ecd6006c0 Delete type=0 #213
|
||||||
2023/12/29-18:06:09.209130 7ff888ff96c0 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)
|
||||||
2023/12/29-18:06:09.209157 7ff888ff96c0 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.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000132
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/10-07:14:45.696006 7f7ecf4006c0 Recovering log #130
|
||||||
|
2024/09/10-07:14:45.752701 7f7ecf4006c0 Delete type=3 #128
|
||||||
|
2024/09/10-07:14:45.752833 7f7ecf4006c0 Delete type=0 #130
|
||||||
|
2024/09/10-07:20:33.897005 7f7ecd6006c0 Level-0 table #135: started
|
||||||
|
2024/09/10-07:20:33.897068 7f7ecd6006c0 Level-0 table #135: 0 bytes OK
|
||||||
|
2024/09/10-07:20:33.928636 7f7ecd6006c0 Delete type=0 #133
|
||||||
|
2024/09/10-07:20:33.990553 7f7ecd6006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/10-07:20:33.990640 7f7ecd6006c0 Manual compaction at level-1 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/09-21:51:17.296296 7f7ecea006c0 Recovering log #125
|
||||||
|
2024/09/09-21:51:17.307966 7f7ecea006c0 Delete type=3 #123
|
||||||
|
2024/09/09-21:51:17.308176 7f7ecea006c0 Delete type=0 #125
|
||||||
|
2024/09/09-21:52:48.682640 7f7ecd6006c0 Level-0 table #131: started
|
||||||
|
2024/09/09-21:52:48.682688 7f7ecd6006c0 Level-0 table #131: 0 bytes OK
|
||||||
|
2024/09/09-21:52:48.689372 7f7ecd6006c0 Delete type=0 #129
|
||||||
|
2024/09/09-21:52:48.696686 7f7ecd6006c0 Manual compaction at level-0 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/09-21:52:48.696741 7f7ecd6006c0 Manual compaction at level-1 from '!scenes!ZDV2IwduhOXTxy72' @ 72057594037927935 : 1 .. '!scenes!ZDV2IwduhOXTxy72' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000124
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/10-07:14:44.824622 7f7ecf4006c0 Recovering log #122
|
||||||
|
2024/09/10-07:14:44.881625 7f7ecf4006c0 Delete type=3 #120
|
||||||
|
2024/09/10-07:14:44.881742 7f7ecf4006c0 Delete type=0 #122
|
||||||
|
2024/09/10-07:20:33.426241 7f7ecd6006c0 Level-0 table #127: started
|
||||||
|
2024/09/10-07:20:33.426287 7f7ecd6006c0 Level-0 table #127: 0 bytes OK
|
||||||
|
2024/09/10-07:20:33.462927 7f7ecd6006c0 Delete type=0 #125
|
||||||
|
2024/09/10-07:20:33.538838 7f7ecd6006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/10-07:20:33.538919 7f7ecd6006c0 Manual compaction at level-1 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
2024/09/09-21:51:17.124273 7f7ecea006c0 Recovering log #117
|
||||||
|
2024/09/09-21:51:17.134938 7f7ecea006c0 Delete type=3 #115
|
||||||
|
2024/09/09-21:51:17.135076 7f7ecea006c0 Delete type=0 #117
|
||||||
|
2024/09/09-21:52:48.604710 7f7ecd6006c0 Level-0 table #123: started
|
||||||
|
2024/09/09-21:52:48.604782 7f7ecd6006c0 Level-0 table #123: 0 bytes OK
|
||||||
|
2024/09/09-21:52:48.611122 7f7ecd6006c0 Delete type=0 #121
|
||||||
|
2024/09/09-21:52:48.611368 7f7ecd6006c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||||
|
2024/09/09-21:52:48.611434 7f7ecd6006c0 Manual compaction at level-1 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user