Compare commits

...

6 Commits

192 changed files with 2055 additions and 815 deletions

View File

@ -1,5 +1,12 @@
Changes :
# v12.1.0
- Gestion des Hordes
- Ajout de la traduction Espagnole
- Nouvelles clés de traduction
- Petites amélioration diverses
# v11.1.2
- Ajout des traductions manquantes en anglais

View File

@ -803,6 +803,18 @@ body.system-bol img#logo {
max-width: calc(250px - 10px);
margin-right: 10px;
}
.sheet-profile-img {
cursor: pointer;
border: none;
background-color: #EEE;
height: auto;
width: 96px;
height: 96px;
min-width: 96px;
min-height: 96px;
max-width: 96px;
margin-right: 10px;
}
.bol.sheet.actor .window-content form .main .sheet-body {
overflow: hidden;
}
@ -937,6 +949,7 @@ body.system-bol img#logo {
min-height: 400px;
}
.bol.sheet.item h1 input.itemname {
margin-top: 32px;
font-family: "Wolfsbane2Expanded", cursive;
}
.bol.sheet.item .item-properties {
@ -1037,7 +1050,7 @@ body.system-bol img#logo {
flex-direction: column;
position: absolute;
top: 2.75rem;
right: 4rem;
right: 16rem;
}
.tokenhudext.right {
justify-content: flex-start;
@ -1051,9 +1064,10 @@ body.system-bol img#logo {
.tokenhudext.right2 {
justify-content: flex-start;
flex-direction: column;
/*transform: translate(0, -30%);*/
position: absolute;
top: -4rem;
left: 12rem;
left: 11rem;
}
.control-icon.tokenhudicon {
width: fit-content;
@ -1083,3 +1097,6 @@ body.system-bol img#logo {
.character-summary-rollable {
text-decoration: underline;
}
.activated-green {
color: darkgreen;
}

View File

@ -1,10 +1,19 @@
{
"ACTOR.TypeCharacter": "Character",
"ACTOR.TypeEncounter": "Encounter",
"ITEM.TypeItem": "Item",
"ITEM.TypeFeature": "Feature",
"ITEM.TypeWeapon": "Weapon",
"ITEM.TypeArmor": "Armor",
"TYPES": {
"Actor": {
"character": "PC",
"encounter": "NPC",
"npc": "NPC",
"vehicle": "Vehicle",
"horde": "Horde"
},
"Item": {
"item": "Object",
"feature": "Trait",
"weapon": "Weapon",
"armure": "Armor"
}
},
"BOL.attributes.vigor": "Strength",
"BOL.attributes.halfvigor" : "Half-Strength",
@ -46,6 +55,9 @@
"BOL.ui.horoscopesMalus": "Horoscopes (Malus)",
"BOL.ui.groupHoroscope": "Horoscrope de Groupe de ",
"BOL.ui.rabble": "Rabble",
"BOL.ui.tough": "Tough",
"BOL.ui.villain": "Villain",
"BOL.ui.properties": "Properties",
"BOL.ui.description": "Description",
"BOL.ui.actions": "Actions",
@ -164,13 +176,57 @@
"BOL.ui.armorAgiMalus": "Armor+Shield Modifier (Agi)",
"BOL.ui.armorInitMalus": "Armor Modifier (Init)",
"BOL.ui.attackValue": "Attack Value",
"BOL.ui.attackModifier": "Attack Modifier",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.ui.initMalus": "Init malus",
"BOL.ui.isspecial": "Spécial ?",
"BOL.ui.createEquipment": "Create Equipment",
"BOL.ui.creature": "Creature",
"BOL.ui.undead": "Undead",
"BOL.ui.daemon": "Daemon",
"BOL.ui.attributaptitude": "Attribut ou Aptitude",
"BOL.ui.always": "Tout les jets (ie toujours)",
"BOL.ui.effectbonusmalus": "Bonus ou Malus à appliquer",
"BOL.ui.boleffects": "Effects (automatic)",
"BOL.ui.modifier": "Modifier",
"BOL.ui.effects": "Ongoing effects",
"BOL.ui.pcname": "PCs",
"BOL.ui.npcname": "NPCs",
"BOL.ui.pclistbutton": "Compact view",
"BOL.ui.noactorfound": "Unknown NPC. The NPC must be known in the world to be displayed here.",
"BOL.ui.deletetitle": "Delete",
"BOL.ui.confirmdelete": "Are you sure to delete this item ?",
"BOL.ui.nomorealchemypoints": "No more Creation Point !",
"BOL.ui.armornoformula": "The Armor {protect.name} has no protection formula !",
"BOL.ui.selectactor": "Select the actors to apply the macro",
"BOL.ui.itemnotfound": "Impossible to find the object of this macro",
"BOL.ui.noinit": "No initiative recorded. Roll initiative from the actor's sheet.",
"BOL.ui.warninitiative": "No available initiative. Roll Initiative for this combat.",
"BOL.ui.isspecial": "Special ?",
"BOL.ui.createEquipment": "Create an equipment",
"BOL.ui.astrology": "Astrology and Horoscope",
"BOL.ui.astrologyMinor": "Build a Minor Horoscope",
"BOL.ui.astrologyMajor": "Build a Major Horoscope",
"BOL.ui.astrologyMajorGroup": "Build a Major Group Horoscope",
"BOL.ui.makeHoroscope": "Build a Horoscope",
"BOL.ui.astrologerRank": "Astrologer Rank",
"BOL.ui.horoscopeCost": "Astrology Points cost",
"BOL.ui.minor": "Minor",
"BOL.ui.major": "Major",
"BOL.ui.majorgroup": "Group Major",
"BOL.ui.horoscopeGroup": "Group Horoscope",
"BOL.ui.horoscopeDiceRemaining": "Remaining Dice",
"BOL.ui.horoscopeDiceMax": "Max Dice",
"BOL.ui.astrologyNoPoints": "You do not have enough Astrology Points!",
"BOL.ui.newEquipment": "New equipment",
"BOL.ui.newNaturalWeapon": "Natural weapon",
"BOL.ui.newNaturalProtection": "Natural protection",
"BOL.ui.createNaturalWeapon": "Create a natural weapon",
"BOL.ui.createNaturalProtection": "Create a natural protection",
"BOL.ui.hordeSize": "Horde size",
"BOL.ui.hordeAttack": "Horde attack",
"BOL.ui.hordeName": "Name of the Horde",
"BOL.ui.criticallegend": "Legendary Success",
"BOL.ui.hordeHP": "Horde Vitality (1 member)",
"BOL.ui.hordehp": "Horde Vitality (total)",
"BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races",
@ -188,6 +244,11 @@
"BOL.featureSubtypes.language": "Language",
"BOL.featureSubtypes.gods": "Faith & Gods",
"BOL.featureSubtypes.fightOption": "Combat Option",
"BOL.featureSubtypes.effect": "Effect",
"BOL.featureSubtypes.effects": "Effects",
"BOL.featureSubtypes.boleffect": "Effect",
"BOL.featureSubtypes.horoscope": "Horoscope",
"BOL.featureSubtypes.xplog": "XP Journal",
"BOL.bougette.nomoney": "Nothing",
"BOL.bougette.tolive": "To live",
@ -212,6 +273,7 @@
"BOL.itemCategory.other": "Other",
"BOL.itemCategory.capacity" : "Capacity",
"BOL.itemCategory.alchemy": "Alchemy",
"BOL.itemCategory.vehicleweapon": "Vehicle weapon",
"BOL.combatCategory.protections": "Protections",
"BOL.combatCategory.shields": "Shields",
@ -411,11 +473,14 @@
"BOL.chat.rolldamage": "Roll for damages",
"BOL.chat.rolldamage6": "Roll for damages +6",
"BOL.chat.rolldamage12": "Roll for damages +12 (1 HP)",
"BOL.chat.rolldamage12Legend": "Roll for damages +12",
"BOL.chat.damageresult": "Damages of {name} : {total}",
"BOL.chat.damagetarget": "Target : {target}",
"BOL.chat.applydamagetotarget": "Apply damages to the target",
"BOL.chat.fightoption": "Combat options",
"BOL.chat.reroll": "Reroll (1 HP)",
"BOL.chat.heroicreminder": "In addition of the actions below, you can : <ul><li>Carnage : Do a second free attack on the same opponent</li><li>Precise : 1 Malus Die on your opponent on a chosen location</li><li>Disarm</li><li>Rabble Massacre</li><li>Prone : Push your opponent on the ground (max +1 size)</li></ul>If you spent 1 Hero Point in addition, all these effects can be doubled.",
"BOL.chat.legendaryreminder": "In addition of the actions below, you can twice the following actions: <ul><li>Carnage : Do a second free attack on the same opponent</li><li>Precise : 1 Malus Die on your opponent on a chosen location</li><li>Disarm</li><li>Rabble Massacre</li><li>Prone : Push your opponent on the ground (max +1 size)</li></ul>",
"BOL.chat.toheroic": "Convert to Mighty success (1 HP)",
"BOL.chat.tolegend": "Convert to Legendary succes (1 HP)",
"BOL.chat.hurttitle": "{name} is going to receive {damageTotal} damages !",
@ -433,6 +498,51 @@
"BOL.chat.spell": "Spell",
"BOL.chat.spellcost": "Power Points cost",
"BOL.chat.spellremaining": "Remaining Power Points",
"BOL.chat.nodamagesummary": "No damage ....",
"BOL.chat.damageresume": "{name} as taken wounds ...",
"BOL.chat.fumblemessage": "If you accept the consequences of a fumble (GM choice), you can get 1 additionnal Hero Point.",
"BOL.chat.rangeinfo": "Range/Throw of {attackerName} to {defenderName}",
"BOL.chat.rangeweaponinfo": "Weapon : {weaponName} - Base range {weaponRange}",
"BOL.chat.rangeout": "Modifier : Out of range",
"BOL.chat.range0": "Modifier : Point blank (+1)",
"BOL.chat.range1": "Modifier : Short Range (0)",
"BOL.chat.range2": "Modifier : Middle Range (-1)",
"BOL.chat.range3": "Modifier : Long Range (-2)",
"BOL.chat.range4": "Modifier : Very Long Range (-4)",
"BOL.chat.range5": "Modifier : Extrem Range (-6)",
"BOL.chat.range6": "Modifier : Max Range (-8)",
"BOL.chat.rangeprefix": "Evaluated distance : ",
"BOL.chat.rangevisible": "Line of sight is cleared between tokens.",
"BOL.chat.rangenotvisible": "Line of sight is blocked between tokens.",
"BOL.chat.rangetitle": "GM Information",
"BOL.chat.weaponreroll1": "As a reminder, this weapon re-roll 1 whend rolling for damage.",
"BOL.chat.rollbougette": "Budget roll",
"BOL.chat.bougettesuccess": "Your budget remains unchanged !",
"BOL.chat.bougettefailure": "You spent too much money, your budget is going down by one level...",
"BOL.chat.initiative": "Initiative rank (10 to 1)",
"BOL.chat.horoscope": "Horoscope",
"BOL.chat.horoscopepoints": "Cost : {points} Astrology Points",
"BOL.chat.horoscopeminorsuccess": "Your minor horoscope is a success : change the horoscope name in your sheet. You will benefit of 1 Bonus Die for the given situation.",
"BOL.chat.horoscopeminorfailure": "Your minor horoscope mineur isa failure : change the horoscope name in your sheet. Vous will suffer 1 Malus Die for the given situation.",
"BOL.chat.horoscopemajorsuccess": "Your major horoscope is a success : {horoscopeName} gets 1 new Hero Point for this adventure. This point has been automatically added.",
"BOL.chat.horoscopemajorfailure": "Your major horoscope is a failure : {horoscopeName} looses 1 Hero Point for this adventure. This point has been automatically substracted.",
"BOL.chat.horoscopemajorgroupsuccess": "Your major group horoscope majeur is a success. Your and your party gets {careerBonus} Bonus Dice during this adventure.",
"BOL.chat.horoscopemajorgroupfailure": "Your major group horoscope is a failure. You and your party suffers {careerBonus} Malus Dice durig this adventure.",
"BOL.chat.usedhoroscope": "Horoscope has been used",
"BOL.chat.horoscopedeleted": "The Horoscopes used are deleted automatically.",
"BOL.chat.criticaloptions": "Critical success !! You can (select 1 option) :",
"BOL.chat.criticalcarnage": "Dual attack : you gain 1 free attack. This second attack can't benefit from a Hero/Villain Point.",
"BOL.chat.criticalplus6": "Devastating : damage +6 aux dommages (cf button below).",
"BOL.chat.criticalprecise": "Precise : You hit to harm your opponent. Describe what your are doing, and if the GM agree, your opponent will suffer 1 Malus Die for the relevant actions.",
"BOL.chat.criticalunarm": "Disarm : Si your opponnent has a weapon in hand, you disarm him.",
"BOL.chat.criticalrabble": "Rabble Massacre : If you fight against rabble, damages results indicate the amount of rabble you kill.",
"BOL.chat.criticalpush": "Prone : If the size allow it, you push your opponent on the ground. He suffer 1 Malus Die for all his actions during the next round.",
"BOL.chat.criticalup": "Transform to Legendary : If you spent 1 Hero Point/Villain, you can transform this Heroic success into a Legendary success.You can the choose 2 options in this list above.",
"BOL.chat.criticalinfo": "This is an Heroic success ! Choose your options and effects !",
"BOL.chat.criticallegendaryinfo": "This is a Legendary succes ! Choisissez vos options et effets !",
"BOL.chat.criticalbuttonjournal": "Legendary/Heroic Success",
"BOL.chat.nodamage": "Do not apply damages",
"BOL.chat.armorRoll": "Armor roll",
"BOL.dialog.soeasy": "So easy (+4)",
"BOL.dialog.veryeasy": "Very easy (+2)",

596
lang/es.json Normal file
View File

@ -0,0 +1,596 @@
{
"TYPES": {
"Actor": {
"character": "PJ",
"encounter": "PNJ",
"npc": "PNJ",
"vehicle": "Vehículo"
},
"Item": {
"item": "Objeto",
"feature": "Rasgo",
"weapon": "Arma",
"armure": "Armadura"
}
},
"BOL.attributes.vigor": "Fuerza",
"BOL.attributes.halfvigor" : "Media-Fuerza",
"BOL.attributes.agility": "Agilidad",
"BOL.attributes.mind": "Mente",
"BOL.attributes.appeal": "Atractivo",
"BOL.aptitudes.init": "Iniciativa",
"BOL.aptitudes.melee": "Melé",
"BOL.aptitudes.ranged": "Distancia",
"BOL.aptitudes.def": "Defensa",
"BOL.aptitudes.prot": "Protección",
"BOL.resources.hp": "Vitalidad",
"BOL.resources.hero": "Héroe",
"BOL.resources.faith": "Fe",
"BOL.resources.creation": "Creación",
"BOL.resources.power": "Poder",
"BOL.resources.villainy": "Villano",
"BOL.resources.alchemypoints": "Puntos Alquimia",
"BOL.traits.xp": "Experiencia",
"BOL.ui.tab.stats": "Atributos",
"BOL.ui.tab.combat": "Combate",
"BOL.ui.tab.actions": "Acciones",
"BOL.ui.tab.features": "Rasgos",
"BOL.ui.tab.equipment": "Equipo",
"BOL.ui.tab.description": "Descripción",
"BOL.ui.tab.details": "Detalles",
"BOL.ui.tab.spellalchemy": "Alquimia",
"BOL.ui.tab.astrologer": "Astrólogo",
"BOL.ui.astrologerPoints": "Puntos Astrología",
"BOL.ui.astrologerPointsLabel": "Puntos Astrología actuales",
"BOL.ui.ishoroscopemajor": "¿Horóscopo Mayor (ej del grupo)?",
"BOL.ui.answer": "Respuesta",
"BOL.ui.horoscopefavorable": "Favorable (1dB)",
"BOL.ui.horoscopeunfavorable": "Desfavorable (1dM)",
"BOL.ui.horoscopes": "Horóscopos",
"BOL.ui.horoscopesBonus": "Horóscopos (Ventaja)",
"BOL.ui.horoscopesMalus": "Horóscopos (Desventaja)",
"BOL.ui.groupHoroscope": "Horóscropo de Grupo de ",
"BOL.ui.rabble": "Chusma",
"BOL.ui.tough": "Matones",
"BOL.ui.villain": "Villanos",
"BOL.ui.properties": "Propiedades",
"BOL.ui.description": "Descripción",
"BOL.ui.actions": "Acciones",
"BOL.ui.capacities": "Capacidad",
"BOL.ui.damages": "Daño",
"BOL.ui.details": "Detalles",
"BOL.ui.category": "Categoría",
"BOL.ui.subcategory": "Sub-Categoría",
"BOL.ui.type": "Tipo",
"BOL.ui.subtype": "Subtipo",
"BOL.ui.attribute" : "Atributo",
"BOL.ui.aptitude" : "Habilidad",
"BOL.ui.advantages" : "Ventaja/Desventaja",
"BOL.ui.modifiers": "Modificador",
"BOL.ui.item": "Objeto",
"BOL.ui.edit": "Editar",
"BOL.ui.unequip": "Quitar",
"BOL.ui.equip": "Equipar",
"BOL.ui.delete": "Borrar",
"BOL.ui.roll" : "Tirar",
"BOL.ui.equipment" : "Equipo",
"BOL.ui.equipmentProperties" : "Propiedades Equipo",
"BOL.ui.weaponAttack" : "Ataque Arma",
"BOL.ui.weaponProperties" : "Propiedades Arma",
"BOL.ui.protectionProperties" : "Propiedades Protección",
"BOL.ui.magicalProperties" : "Propiedades Mágicas",
"BOL.ui.alchemyProperties": "Propiedades Alquimia",
"BOL.ui.armor" : "Armadura",
"BOL.ui.reach" : "Alcance",
"BOL.ui.weapon" : "Arma",
"BOL.ui.melee" : "Melé",
"BOL.ui.ranged" : "Distancia",
"BOL.ui.protection" : "Protección",
"BOL.ui.shield" : "Escudo",
"BOL.ui.blocking" : "Bloqueo",
"BOL.ui.range" : "Alcance",
"BOL.ui.quantity" : "Cantidad",
"BOL.ui.qty" : "Cant.",
"BOL.ui.slot" : "Hueco",
"BOL.ui.weight" : "Peso",
"BOL.ui.price": "Precio",
"BOL.ui.cancel": "Cancelar",
"BOL.ui.submit": "OK",
"BOL.ui.attributeCheck" : "Tirada Atributo",
"BOL.ui.aptitudeCheck" : "Tirada Habilidad",
"BOL.ui.weaponCheck" : "Tirada Arma",
"BOL.ui.spellCheck" : "Tirada Conjuro",
"BOL.ui.careers" : "Oficios",
"BOL.ui.boons" : "Ventaja",
"BOL.ui.flaws" : "Desventaja",
"BOL.ui.rank" : "Rango",
"BOL.ui.success" : "Éxito",
"BOL.ui.failure" : "Fallo",
"BOL.ui.fumble" : "Pifia",
"BOL.ui.critical" : "Éxito Asombroso",
"BOL.ui.criticallegend" : "Éxito Legendario",
"BOL.ui.maneuvers" : "Maniobras",
"BOL.ui.stacksize" : "Tamaño Pila (máx)",
"BOL.ui.weapons" : "Armas",
"BOL.ui.protections" : "Protección",
"BOL.ui.ammos" : "Munición",
"BOL.ui.containers" : "Contenedor",
"BOL.ui.treasure" : "Tesoro",
"BOL.ui.vehicles" : "Vehículo/Montura",
"BOL.ui.misc" : "Varios",
"BOL.ui.vehicleProperties" : "Propiedades Vehículo",
"BOL.ui.speed" : "Velocidad",
"BOL.ui.noWeaponName" : "Nombre Arma",
"BOL.ui.targetDefence": "Defensa",
"BOL.ui.applyShieldMalus": "Aplicar Mod. Escudo",
"BOL.ui.shieldMalus": "Mod. Escudo",
"BOL.ui.defenseScore": "Valor Defensa",
"BOL.ui.defender": "Defensor",
"BOL.ui.difficulty": "Dificultad",
"BOL.ui.spellProperties": "Propiedades Conjuro",
"BOL.ui.duration": "Duración",
"BOL.ui.spellkeep": "Mantenimiento",
"BOL.ui.concentrate": "Concentración",
"BOL.ui.registerInit": "Registrar Inic.",
"BOL.ui.isSorcerer": "¿Es Hechicero?",
"BOL.ui.isAlchemist": "¿Es Alquimista?",
"BOL.ui.isPriest": "¿Es Clérigo/Druida?",
"BOL.ui.isAstrologer": "¿Es Astrólogo?",
"BOL.ui.circle": "Círculo",
"BOL.ui.spells": "Conjuros",
"BOL.ui.focusSpell": "Lanzar conjuro",
"BOL.ui.sorcererRank" : "Rango Hechicero",
"BOL.ui.alchemistRank": "Rango Alquimista",
"BOL.ui.mandatoryconditions": "Condiciones obligatorias",
"BOL.ui.optionnalconditions": "Condiciones opcionales",
"BOL.ui.ppcost": "Coste Puntos Poder",
"BOL.ui.ppAvailable": "Puntos Poder Disponibles",
"BOL.ui.pccost": "Coste Puntos Creación",
"BOL.ui.pcnow": "Puntos Creación Actuales",
"BOL.ui.alchemyType": "Tipo",
"BOL.ui.alchemy": "Alquimia",
"BOL.ui.makeAlchemy": "Realizar Alquimia",
"BOL.ui.alchemyCostTotal": "Coste Total Puntos Alquimia",
"BOL.ui.alchemyInvest": "Invertir Puntos Alquimia",
"BOL.ui.alchemyCurrent": "Puntos Alquimia actuales en Objeto",
"BOL.ui.advance": "Estado",
"BOL.ui.isadvantage": "¿Da un dado ventaja?",
"BOL.ui.bonusmalus": "Ventaja/desventaja adicional",
"BOL.ui.nbdices": "Número Dados",
"BOL.ui.totalmod": "Mod. Total",
"BOL.ui.rangeModifiers": "Mod. distancia",
"BOL.ui.money": "Dinero",
"BOL.ui.moneyTitle": "Tesoro",
"BOL.ui.fightOption": "Opciones Combate",
"BOL.ui.none": "Ninguno",
"BOL.ui.fightOptionType": "Tipo Opción Combate",
"BOL.ui.activated": "Activado",
"BOL.ui.deactivated": "Desactivado",
"BOL.ui.status": "Estado",
"BOL.ui.toactivated": "Activo",
"BOL.ui.todeactivated": "Inactivo",
"BOL.ui.armorAgiMalus": "Mod. Armadura+Escudo (Agi)",
"BOL.ui.armorInitMalus": "Mod. Armadura (Inic)",
"BOL.ui.attackValue": "Valor Ataque",
"BOL.ui.attackModifier": "Mod. Ataque",
"BOL.ui.weaponbonus": "Esta arma se beneficia de un Dado de ventaja (ej Arma Personal)",
"BOL.ui.initMalus": "Desventaja Inic.",
"BOL.ui.creature": "Criatura",
"BOL.ui.undead": "No-muerto",
"BOL.ui.daemon": "Demonio",
"BOL.ui.attributaptitude": "Atributo o Habilidad",
"BOL.ui.always": "Todos (ej siempre)",
"BOL.ui.effectbonusmalus": "Ventaja o Desventaja a aplicar",
"BOL.ui.boleffects": "Efectos (automático)",
"BOL.ui.modifier": "Modificador",
"BOL.ui.effects": "Efectos Activos",
"BOL.ui.pcname": "PCs",
"BOL.ui.npcname": "NPCs",
"BOL.ui.pclistbutton": "Vista compacta",
"BOL.ui.noactorfound": "PNJ Desconocido. El PNJ debe ser conocido en el mundo de juego para poder mostrase.",
"BOL.ui.deletetitle": "Borrar",
"BOL.ui.confirmdelete": "¿Seguro que quieres borrar este objeto?",
"BOL.ui.nomorealchemypoints": "¡Sin Puntos de Creación!",
"BOL.ui.armornoformula": "La Armadura {protect.name} no dispone de fórmula de protección!",
"BOL.ui.selectactor": "Selecciona un actora para aplicar la macro",
"BOL.ui.itemnotfound": "Imposible encontrar el objeto de esta macro",
"BOL.ui.noinit": "Sin iniciativa. Tira por iniciativa desde la hoja del actor.",
"BOL.ui.warninitiative": "Iniciativa no disponible. Tira Iniciativa para este combate.",
"BOL.ui.isspecial": "¿Especial?",
"BOL.ui.createEquipment": "Crear equipo",
"BOL.ui.astrology": "Astrología",
"BOL.ui.astrologyMinor": "Crear Horóscopo Menor",
"BOL.ui.astrologyMajor": "Crear Horóscopo Mayor",
"BOL.ui.astrologyMajorGroup": "Crear Grupo Horóscopo Mayor",
"BOL.ui.makeHoroscope": "Crear Horóscopo",
"BOL.ui.astrologerRank": "Rango Astrólogo",
"BOL.ui.horoscopeCost": "Coste Puntos Astrología",
"BOL.ui.minor": "Menor",
"BOL.ui.major": "Mayor",
"BOL.ui.majorgroup": "Grupo Mayor",
"BOL.ui.horoscopeGroup": "Grupo Horóscopo",
"BOL.ui.horoscopeDiceRemaining": "Dados Restantes",
"BOL.ui.horoscopeDiceMax": "Dado Máx",
"BOL.ui.astrologyNoPoints": "¡No dispones de suficientes Puntos Astrología!",
"BOL.ui.newEquipment": "Nuevo equipo",
"BOL.ui.newNaturalWeapon": "Arma natural",
"BOL.ui.newNaturalProtection": "Protección natural",
"BOL.ui.createNaturalWeapon": "Crear un arma natural",
"BOL.ui.createNaturalProtection": "Crear una protección natural",
"BOL.featureCategory.origins": "Origen",
"BOL.featureCategory.races": "Raza",
"BOL.featureCategory.careers": "Oficios",
"BOL.featureCategory.boons": "Ventajas",
"BOL.featureCategory.flaws": "Desventajas",
"BOL.featureCategory.languages": "Idiomas",
"BOL.featureCategory.fightoptions": "Opciones Combate",
"BOL.featureSubtypes.origin": "Origen",
"BOL.featureSubtypes.race": "Raza",
"BOL.featureSubtypes.career": "Oficio",
"BOL.featureSubtypes.boon": "Ventaja",
"BOL.featureSubtypes.flaw": "Desventaja",
"BOL.featureSubtypes.language": "Idioma",
"BOL.featureSubtypes.gods": "Dioses",
"BOL.featureSubtypes.fightOption": "Opción Combate",
"BOL.featureSubtypes.effect": "Efecto",
"BOL.featureSubtypes.effects": "Efectos",
"BOL.featureSubtypes.boleffect": "Efecto",
"BOL.featureSubtypes.horoscope": "Horóscopo",
"BOL.featureSubtypes.xplog": "Diario PX",
"BOL.bougette.nomoney": "Nada",
"BOL.bougette.tolive": "Vivir justo",
"BOL.bougette.easylife": "Vida simple",
"BOL.bougette.luxury" : "Vida lujosa",
"BOL.bougette.rich": "¡Rico!",
"BOL.fightOptionTypes.armor": "Ataque Armadura",
"BOL.fightOptionTypes.intrepid": "Ataque Total",
"BOL.fightOptionTypes.twoweaponsdef": "Dos Armas (Defensa)",
"BOL.fightOptionTypes.twoweaponsatt": "Dos Armas (Ataque)",
"BOL.fightOptionTypes.fulldefense": "Defensa Total",
"BOL.fightOptionTypes.defense": "Posición Defensiva",
"BOL.fightOptionTypes.attack": "Posición Ofensiva",
"BOL.fightOptionTypes.other": "Otro",
"BOL.itemCategory.object": "Objeto",
"BOL.itemCategory.equipment": "Equipo",
"BOL.itemCategory.consumable": "Consumible",
"BOL.itemCategory.spell": "Conjuro",
"BOL.itemCategory.vehicle": "Montura/Vehículo",
"BOL.itemCategory.other": "Otro",
"BOL.itemCategory.capacity" : "Capacidad",
"BOL.itemCategory.alchemy": "Alquimia",
"BOL.itemCategory.vehicleweapon": "Arma Vehicular",
"BOL.combatCategory.protections": "Protecciones",
"BOL.combatCategory.shields": "Escudos",
"BOL.combatCategory.melee": "Melé",
"BOL.combatCategory.ranged": "Distancia",
"BOL.combatCategory.fightOptions": "Opciones combate",
"BOL.combatCategory.natural": "Armas Naturales",
"BOL.equipmentCategory.weapon": "Arma",
"BOL.equipmentCategory.armor": "Armadura",
"BOL.equipmentCategory.protection": "Protección",
"BOL.equipmentCategory.shield": "Escudo",
"BOL.equipmentCategory.helm": "Casco",
"BOL.equipmentCategory.jewel": "Joya",
"BOL.equipmentCategory.scroll": "Pergamino",
"BOL.equipmentCategory.ammunition": "Munición",
"BOL.equipmentCategory.container": "Contenedor",
"BOL.equipmentCategory.currency": "Moneda",
"BOL.equipmentCategory.other": "Otro",
"BOL.protectionCategory.armor": "Armadura",
"BOL.protectionCategory.shield": "Escudo",
"BOL.protectionCategory.helm": "Casco",
"BOL.protectionCategory.other": "Otro",
"BOL.spellItem.charm": "Truco",
"BOL.spellItem.circle1": "Primer Círculo",
"BOL.spellItem.circle2": "Segundo Círculo",
"BOL.spellItem.circle3": "Tercer Círculo",
"BOL.alchemyItem.common": "Común",
"BOL.alchemyItem.scarce": "Escaso",
"BOL.alchemyItem.legend": "Legendario",
"BOL.alchemyItem.mythic": "Mítico",
"BOL.weaponCategory.melee": "Melé",
"BOL.weaponCategory.ranged": "Distancia",
"BOL.weaponCategory.other": "Otro",
"BOL.itemProperty.damageMultiplier": "Multiplicador Daño",
"BOL.itemProperty.attackBonusDice": "Dado Ventaja Ataque",
"BOL.itemProperty.equipable": "Equipable",
"BOL.itemProperty.protection": "Protección",
"BOL.itemProperty.blocking": "Bloqueo",
"BOL.itemProperty.magical": "Mágico",
"BOL.itemProperty.concealable": "Ocultable",
"BOL.itemProperty.2H": "Arma 2M",
"BOL.itemProperty.helm": "Casco",
"BOL.itemProperty.improvised": "Improvisada",
"BOL.itemProperty.shield": "Escudo",
"BOL.itemProperty.melee": "Melé",
"BOL.itemProperty.throwable": "Arrojadiza",
"BOL.itemProperty.ignoreshield": "Ignora Escudo",
"BOL.itemProperty.bashing": "Golpea",
"BOL.itemProperty.stackable": "Apilable",
"BOL.itemProperty.ranged": "Distancia",
"BOL.itemProperty.weapon": "Arma",
"BOL.itemProperty.reloadable": "Recargable",
"BOL.itemProperty.worn": "Equipada",
"BOL.itemProperty.spell" : "Conjuro",
"BOL.itemProperty.armor" : "Armadura",
"BOL.itemProperty.consumable" : "Consumible",
"BOL.itemProperty.bow" : "Arco",
"BOL.itemProperty.crossbow" : "Ballesta",
"BOL.itemProperty.throwing" : "Arrojadiza",
"BOL.itemProperty.activable" : "Activable",
"BOL.itemProperty.powder" : "Polvo",
"BOL.itemProperty.attackAttribute" : "Ataque (Atributo)",
"BOL.itemProperty.attackAptitude" : "Ataque (Habilidad)",
"BOL.itemProperty.attackModifiers" : "Ataque (Modificadores)",
"BOL.itemProperty.attackReroll1" : "Ataque (Relanzar 1s)",
"BOL.itemProperty.damage" : "Daño",
"BOL.itemProperty.damageModifiers" : "Daño (Modificador)",
"BOL.itemProperty.damageAttribute" : "Daño (Atributo)",
"BOL.itemProperty.damageSpecial" : "Damage (Especial)",
"BOL.itemProperty.damageReroll1" : "Relanzar 1s",
"BOL.itemProperty.range" : "Alcance (en m)",
"BOL.itemProperty.soakFormula": "Absorver (Fórmula)",
"BOL.itemProperty.soakModifiers": "Absorver (Modificador)",
"BOL.itemProperty.soakValue": "Absorver (Valor Defecto)",
"BOL.itemProperty.armorQuality": "Calidad Armadura",
"BOL.itemProperty.blockingMalus" : "Mod. Bloqueo",
"BOL.itemProperty.blockingAttacksBlocked" : "Ataques bloqueados",
"BOL.itemProperty.blocking1Attack" : "Bloquea 1 ataque",
"BOL.itemProperty.blockingAllAttacks" : "Bloquea todos ataques",
"BOL.itemProperty.slot" : "Hueco",
"BOL.itemProperty.reload": "Recarga (Acción)",
"BOL.itemProperty.weaponSize" : "Tamaño Arma",
"BOL.itemProperty.difficulty": "Dificultad",
"BOL.itemProperty.natural": "Arma natural",
"BOL.itemProperty.onlymodifier": "Sólo modificador (ej criatura)",
"BOL.itemStat.quantity": "Cantidad",
"BOL.itemStat.weight": "Peso",
"BOL.itemStat.price": "Precio",
"BOL.itemStat.range": "Alcance",
"BOL.itemStat.damage": "Daño",
"BOL.itemStat.reload": "Recargar (Acción)",
"BOL.itemStat.soak": "Absorver",
"BOL.itemStat.blocking": "Bloqueo",
"BOL.itemStat.modifiers": "Modificadores",
"BOL.weaponSize.unarmed" : "Desarmado",
"BOL.weaponSize.improvised" : "Improvisada",
"BOL.weaponSize.light" : "Ligera",
"BOL.weaponSize.medium" : "Mediana",
"BOL.weaponSize.heavy" : "Pesada",
"BOL.itemModifiers.init": "Mod. (Iniciativa)",
"BOL.itemModifiers.social": "Mod. (Social)",
"BOL.itemModifiers.agility": "Mod. (Agilidad)",
"BOL.itemModifiers.powercost": "Mod. (Coste adicional en PP)",
"BOL.itemBlocking.malus": "Modificador",
"BOL.itemBlocking.nbAttacksPerRound": "Agilidad",
"BOL.soakFormula.none" : "-",
"BOL.soakFormula.light" : "Ligero (Cancela d6-3 daño)",
"BOL.soakFormula.medium" : "Mediano (Cancela d6-2 daño)",
"BOL.soakFormula.heavy" : "Pesado (Cancela d6-1 daño)",
"BOL.armorQuality.none" : "-",
"BOL.armorQuality.light" : "Ligera",
"BOL.armorQuality.lightQ" : "Ligera Calidad",
"BOL.armorQuality.lightSup" : "Ligera Superior",
"BOL.armorQuality.lightLeg" : "Ligera Legendaria",
"BOL.armorQuality.medium" : "Mediana",
"BOL.armorQuality.mediumQ" : "Mediana Calidad",
"BOL.armorQuality.mediumSup" : "Mediana Superior",
"BOL.armorQuality.mediumLeg" : "Mediana Legendaria",
"BOL.armorQuality.heavy" : "Pesada",
"BOL.armorQuality.heavyQ" : "Pesada Calidad",
"BOL.armorQuality.heavySup" : "Pesada Superior",
"BOL.armorQuality.heavyLeg" : "Pesada Legendaria",
"BOL.equipmentSlots.none" : "-",
"BOL.equipmentSlots.head" : "Cabeza",
"BOL.equipmentSlots.neck" : "Cuello",
"BOL.equipmentSlots.shoulders" : "Ombros",
"BOL.equipmentSlots.body" : "Cuerpo",
"BOL.equipmentSlots.rhand" : "Mano derecha",
"BOL.equipmentSlots.lhand" : "Mano izquierda",
"BOL.equipmentSlots.2hands" : "2 manos",
"BOL.equipmentSlots.rarm" : "Brazo derecho",
"BOL.equipmentSlots.larm" : "Brazo izquierdo",
"BOL.equipmentSlots.chest" : "Pecho",
"BOL.equipmentSlots.belt" : "Cintura",
"BOL.equipmentSlots.legs" : "Piernas",
"BOL.equipmentSlots.feet" : "Pies",
"BOL.equipmentSlots.finder" : "Dedo",
"BOL.equipmentSlots.ear" : "Oreja",
"BOL.vehicleCategory.mount" : "Montura terrestre",
"BOL.vehicleCategory.flying" : "Montura voladora",
"BOL.vehicleCategory.boat" : "Bote",
"BOL.vehicleCategory.other" : "Otro",
"BOL.range.PointBlank": "Quemarropa",
"BOL.range.Short": "Corta",
"BOL.range.Medium": "Media",
"BOL.range.Long": "Larga",
"BOL.range.VeryLong": "Distante",
"BOL.range.Extreme": "Extrema",
"BOL.range.Maximum": "Límite",
"BOL.notification.MacroMultipleTokensSelected": "¡Has seleccionado varios tokens!",
"BOL.notification.MacroNoActorAvailable": "¡No se pudo marcar el actor como objetivo!",
"BOL.notification.MacroNoTokenSelected": "¡Debes seleccionar un token!",
"BOL.size.tiny": "Minúsculo",
"BOL.size.verysmall": "Muy pequeño",
"BOL.size.small" : "Pequeño",
"BOL.size.medium" : "Mediano",
"BOL.size.large" : "Grande",
"BOL.size.verylarge": "Muy Grande",
"BOL.size.huge" : "Monstruoso",
"BOL.size.massive" : "Monumental",
"BOL.size.enormous": "Enorme",
"BOL.size.gigantic": "Gigante",
"BOL.size.immense": "Inmenso",
"BOL.size.colossal": "Colosal",
"BOL.chat.fightactive": "¡Activa la opción de combate {foName} este asalto!",
"BOL.chat.fightunactive": "¡Desactiva la opción de combate {foName} este asalto!",
"BOL.chat.isdead": "¡{name} esta muerto!",
"BOL.chat.epitaph": "¡Guardar el honor de su nombre y su memoria!",
"BOL.chat.vitalityzero": "Vitalidad de {name} es {hp}: ¡va a caer inconsciente!",
"BOL.chat.vitalityheroism": "Puedes gastar 1 Punto Héroe para levantarte en 1 asalto.",
"BOL.chat.vitalityheroismhint": "En este caso, tu vitalidad se incrementa a su máximo dividido por 2.",
"BOL.chat.vitalitydying": "Vitalidad de {name} es {hp}! Se esta muriendo...",
"BOL.chat.vitalitydyingheroism": "Puedes gastar 1 Punto Héroe para Desafiar la Muerte.",
"BOL.chat.alchemytitle": "Receta alquímica: {name}",
"BOL.chat.alchemypoints": "Coste Puntos Creación: {pcCostCurrent}",
"BOL.chat.alchemysuccess": "¡La receta alquímica es un éxito!<br>Crea el objeto/efecto relevante en el inventario.<br>El estadio se reinicia.",
"BOL.chat.alchemyfailure": "¡La receta alquímica ha fallado!<br>El estadio se reinicia.",
"BOL.chat.rolldamage": "Tirada de daño",
"BOL.chat.rolldamage6": "Tirada de daño +6",
"BOL.chat.rolldamage12": "Tirada de daño +12 (1 PH)",
"BOL.chat.damageresult": "Daño {name}: {total}",
"BOL.chat.damagetarget": "Objetivo: {target}",
"BOL.chat.applydamagetotarget": "Aplicar daño al objetivo",
"BOL.chat.fightoption": "Opciones de combate",
"BOL.chat.reroll": "Relanzar (1 PH)",
"BOL.chat.heroicreminder": "Adicionalmente a las acciones abajo puedes: <ul><li>Carnicería: 1 ataque adicional al mismo oponente</li><li>Golpe Preciso: 1 Dado desventaja para oponente en localización</li><li>Desarme</li><li>Asesino de Chusma</li><li>Derribado: empujas oponente al suelo (máx +1 tamaño)</li></ul>Si gastas 1 Punto Heroe adicional, todos estos efectos pueden doblarse.",
"BOL.chat.toheroic": "Convertir en éxito Asombroso (1 PH)",
"BOL.chat.tolegend": "Convertir en éxito Legendario (1 PH)",
"BOL.chat.hurttitle": "¡{name} va a recibir {damageTotal} daño!",
"BOL.chat.armordefault": "Este ataque atraviesa armadura: la armadura no se utiliza para reducir daño.",
"BOL.chat.witharmor": "Impacto con armadura",
"BOL.chat.withoutarmor": "Impacto sin armadura",
"BOL.chat.shakeoff": "Sacudirse las Heridas (1 PH)",
"BOL.chat.splinteredshield": "Sacrificar Escudo/Arma {name} (1 PH)",
"BOL.chat.nodamage": "Sin daño",
"BOL.chat.damagesummary": "{name} recibe daño",
"BOL.chat.protectvalue": "Protección armadura",
"BOL.chat.noprotectvalue": "¡Sin armadura!",
"BOL.chat.heroreducedamage": "Un Punto de Héroe se ha gastado, para reducir el daño en {total}.",
"BOL.chat.herosplintered": "No recibes daño gracias a sacrificar el escudo/arma {weaponHero.name}. ¡El escudo/arma se ha destruido! y un PH se ha gastado.",
"BOL.chat.finaldamage": "Daño Final: ¡{finalDamage} de daño!",
"BOL.chat.spell": "Conjuro",
"BOL.chat.spellcost": "Coste Puntos Poder",
"BOL.chat.spellremaining": "Puntos Poder restantes",
"BOL.chat.nodamagesummary": "Sin daño ....",
"BOL.chat.damageresume": "{name} recibe heridas ...",
"BOL.chat.fumblemessage": "Si aceptas un fallo calamitoso (DJ escoje consecuencia), puedes ganar 1 Punto Héroe adicional.",
"BOL.chat.rangeinfo": "Disparo de {attackerName} a {defenderName}",
"BOL.chat.rangeweaponinfo": "Arma: {weaponName} - Alcance base {weaponRange}",
"BOL.chat.rangeout": "Mod: Fuera de alcance",
"BOL.chat.range0": "Mod: Quemarropa (+1)",
"BOL.chat.range1": "Mod: Alcance Corto (0)",
"BOL.chat.range2": "Mod: Alcance Medio (-1)",
"BOL.chat.range3": "Mod: Alcance Largo (-2)",
"BOL.chat.range4": "Mod: Alcance Distante (-4)",
"BOL.chat.range5": "Mod: Alcance Extremo (-6)",
"BOL.chat.range6": "Mod: Alcance Límite (-8)",
"BOL.chat.rangeprefix": "Distancia calculada: ",
"BOL.chat.rangevisible": "Linea de visión limpia entre tokens.",
"BOL.chat.rangenotvisible": "Linea de visión bloqueada entre tokens.",
"BOL.chat.rangetitle": "Información DJ",
"BOL.chat.weaponreroll1": "Recordatorio, este arma vuelve a tirar los 1s en daño.",
"BOL.chat.rollbougette": "Tirada moneda",
"BOL.chat.bougettesuccess": "¡Tus fondos monetarios no varían!",
"BOL.chat.bougettefailure": "Has gastado demasiado dinero, tu balance se decrementa un nivel...",
"BOL.chat.initiative": "Rango iniciativa (10 a 1)",
"BOL.chat.horoscope": "Horóscopo",
"BOL.chat.horoscopepoints": "Coste: {points} Puntos Astrología",
"BOL.chat.horoscopeminorsuccess": "Éxito horóscopo menor: cambia el nombre del horóscopo en la hoja. Te beneficias de 1 Dado Ventaja en la situación.",
"BOL.chat.horoscopeminorfailure": "Fallo horóscopo menor: cambia el nombre del horóscopo en la hoja. Sufres 1 Dado Desventaja en la situación.",
"BOL.chat.horoscopemajorsuccess": "Éxito horóscopo mayor: {horoscopeName} consigue 1 Punto Héroe en esta aventura. El punto ha sido añadido automáticamente.",
"BOL.chat.horoscopemajorfailure": "Fallo horóscopo mayor: {horoscopeName} pierde 1 Punto Héroe en esta aventura. El punto ha sido reducido automáticamente.",
"BOL.chat.horoscopemajorgroupsuccess": "Éxito en tu grupo de horóscopo mayor. Tu y tus compañeros ganáis {careerBonus} Dado Ventaja durante esta aventura.",
"BOL.chat.horoscopemajorgroupfailure": "Fallo en tu grupo de horóscopo mayor. Tu y tus compañeros sufrís {careerBonus} Dado Desventaja durante esta aventura.",
"BOL.chat.usedhoroscope": "Se ha utilizado Horóscopo",
"BOL.chat.horoscopedeleted": "Los horóscopos utilizados son borrados automáticamente.",
"BOL.chat.criticaloptions": "¡Éxito Asombroso! Selecciona 1 opción:",
"BOL.chat.criticalcarnage": "Carnicería: ganas 1 ataque adicional. Este segundo ataque no se puede beneficiar de Puntos Héroe/Villano.",
"BOL.chat.criticalplus6": "Golpe Devastador: añade +6 al daño causado (botón abajo).",
"BOL.chat.criticalprecise": "Golpe Preciso: impactas y dañas a tu oponente. Describe lo que haces (DJ de acuerdo), tu oponente sufre 1 Dado Desventaja en acciones relevantes.",
"BOL.chat.criticalunarm": "Desarme: si su oponente lleva algún arma, puede decidir desarmarlo en lugar de hacerle daño.",
"BOL.chat.criticalrabble": "Asesino de Chusma: si luchas contra Chusma, el daño resultante se convierte en el número de enemigos que derrotas.",
"BOL.chat.criticalpush": "Derribado: si el tamaño lo permite, empujas oponente al suelo. Sufre un 1 Dado Desventaja en todas sus acciones el siguiente asalto.",
"BOL.chat.criticalup": "Transforma en Legendario: si gastas 1 Punto Héroe/Villano transformas el éxito Asombroso en Legendario. Selecciona 2 opciones de la lista.",
"BOL.chat.criticalinfo": "¡Esto es un éxito Asombroso o Legendario! Escoge tus opciones y efectos",
"BOL.chat.criticalbuttonjournal": "Éxito Asombroso/Legendario",
"BOL.chat.armorRoll": "Tirada de Armadura",
"BOL.dialog.soeasy": "Demasiado fácil (+4)",
"BOL.dialog.veryeasy": "Muy fácil (+2)",
"BOL.dialog.easy": "Fácil (+1)",
"BOL.dialog.moderate": "Moderado (0)",
"BOL.dialog.hard": "Difícil (-1)",
"BOL.dialog.tough": "Duro (-2)",
"BOL.dialog.demanding": "Exigente (-4)",
"BOL.dialog.formidable": "Formidable (-6)",
"BOL.dialog.heroic": "Heroica (-8)",
"BOL.dialog.mythic": "Mítica (-10)",
"BOL.dialog.divine": "Divina (-12)",
"BOL.dialog.pointblank": "Quemarropa (+1)",
"BOL.dialog.close": "Corta (0)",
"BOL.dialog.medium": "Media (-1))",
"BOL.dialog.long": "Larga (-2)",
"BOL.dialog.distant": "Distante (-4)",
"BOL.dialog.extreme": "Extrema (-6)",
"BOL.dialog.utmost": "Límite (-8)",
"BOL.ui.name": "Nombre",
"BOL.ui.xp": "Experiencia",
"BOL.ui.xpspent": "Consumida",
"BOL.ui.xptotal": "Total",
"BOL.ui.biosize": "Tamaño",
"BOL.ui.bioweight": "Peso",
"BOL.ui.bioage": "Edad",
"BOL.ui.biohair": "Pelo",
"BOL.ui.bioeyes": "Ojos",
"BOL.ui.biosigns": "Marcas",
"BOL.ui.biodescription": "Descripción",
"BOL.ui.bionotes": "Notas",
"BOL.chat.welcome1": "Bienvenidos a Bárbaros de Lemuria (Ludospherik)",
"BOL.chat.welcome2": "Para jugar es necesario usar el manual, que lo podéis conseguir aquí: https://www.ludospherik-editions.com/en_gb/",
"BOL.chat.welcome3": "Los mapas incluidos tienen autorización de Guillaume Tavernier y Ludospherik. ¡Nuestro agradecimiento!",
"BOL.chat.welcome4": "Todo el soporte para el sistema es a través del servidor Discord: https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "¡Buena partida en Lemuria!",
"BOL.chat.welcome6": "",
"BOL.settings.rollArmor": "Tiradas de armadura",
"BOL.settings.rollArmorTooltip": "Tiradas de armadura, si no esta activo usará el valor fijo",
"BOL.settings.useBougette": "Utilizar Bougette (regla casera francesa)",
"BOL.settings.useBougetteTooltip": "Utilizar valor Bougette (Monedero), descrito en Annales Lemurienne de LeRatierBretonnien (https://www.lahiette.com/leratierbretonnien/)",
"BOL.settings.removeDead": "Automáticamente eliminar PNJs muertos al final del asalto",
"BOL.settings.removeDeadTooltip": "Automáticamente eliminar PNJs, cuando la Vitalidad es menor de 0 al final de cada asalto",
"BOL.settings.diceFormula": "Fórmula de Dados",
"BOL.settings.diceFormulaTooltip": "Fórmula general de dados (2d6 por defecto)",
"BOL.settings.diceSuccessValue" : "Valor éxito",
"BOL.settings.diceSuccessValueTooltip": "Valor del umbral para el éxito (9 por defecto en 2d6)",
"BOL.settings.diceCriticalValue" : "Valor éxito crítico",
"BOL.settings.diceCriticalValueTooltip": "Valor del umbral mínimo para el éxito crítico (12 por defecto en 2d6)",
"BOL.settings.diceCriticalFailure" : "Valor fallo crítico",
"BOL.settings.diceCriticalFailureTooltip": "Valor del umbral máximo para el fallo crítico (2 por defecto en 2d6)",
"BOL.settings.defaultLogoActorSheetPath" : "Logo para la Hoja",
"BOL.settings.defaultLogoPathActorSheetTooltip": "Hubicación del logo para la hoja del Actor (346x200, por defecto: /systems/bol/ui/logo.webp)",
"BOL.settings.defaultLogoTopLeftPath" : "Logo esquina superior izquierda",
"BOL.settings.defaultLogoTopLeftPathTooltip": "Hubicación logo ventana principal superior izquierda (718x416, por defecto: /systems/bol/ui/logo2.webp)"
}

View File

@ -4,7 +4,8 @@
"character": "Personnage",
"encounter": "PNJ",
"npc": "PNJ",
"vehicle": "Véhicule"
"vehicle": "Véhicule",
"horde": "Horde"
},
"Item": {
"item": "Objet",
@ -203,6 +204,7 @@
"BOL.ui.armorAgiMalus": "Malus d'Armure+Bouclier (Agi)",
"BOL.ui.armorInitMalus": "Malus d'Armure (Init)",
"BOL.ui.attackValue": "Valeur d'attaque",
"BOL.ui.attackModifier": "Attaque",
"BOL.ui.vehicleWeapons": "Armes de véhicules",
"BOL.ui.hullDamage": "D.coque",
"BOL.ui.crewDamage": "D.équipage",
@ -234,7 +236,17 @@
"BOL.ui.warninitiative": "Votre initiative n'est pas disponible. Effectuez un jet d'Initiative pour ce combat.",
"BOL.ui.isspecial": "Spéciale ?",
"BOL.ui.createEquipment": "Créer un Equipement",
"BOL.ui.newEquipment": "Nouvel équipement",
"BOL.ui.newNaturalWeapon": "Arme naturelle",
"BOL.ui.newNaturalProtection": "Protection naturelle",
"BOL.ui.createNaturalWeapon": "Créer une arme naturelle",
"BOL.ui.createNaturalProtection": "Créer une protection naturelle",
"BOL.ui.hordeSize": "Taille de la horde",
"BOL.ui.hordeAttack": "Attaque de Horde",
"BOL.ui.hordeName": "Nom de la Horde",
"BOL.ui.hordeHP": "Vitalité (1 membre)",
"BOL.ui.hordehp": "Vitalité (total)",
"BOL.featureCategory.origins": "Origines",
"BOL.featureCategory.races": "Races",
"BOL.featureCategory.careers": "Carrières",
@ -489,12 +501,14 @@
"BOL.chat.rolldamage": "Lancer les dommages",
"BOL.chat.rolldamage6": "Lancer les dommages +6",
"BOL.chat.rolldamage12": "Dommages +12 (1 Pt. d'Heroisme)",
"BOL.chat.rolldamage12Legend": "Dommages +12",
"BOL.chat.damageresult": "Dommages de {name} : {total}",
"BOL.chat.damagetarget": "Cible : {target}",
"BOL.chat.applydamagetotarget": "Appliquer les dommages à la cible",
"BOL.chat.fightoption": "Option de combat",
"BOL.chat.reroll": "Relancer (1 P. Heroisme)",
"BOL.chat.heroicreminder": "En plus des actions indiquées sur les boutons ci-dessous, vous pouvez : <ul><li>Carnage : Attaquer une seconde fois le même adversaire</li><li>Coup précis : Un dé de malus à votre adversaire sur une localisation choisie</li><li>Désarmement</li><li>Massacrer la piétaille</li><li>Renversement : Renversez votre adversaire (1 taille de plus max)</li></ul>Si vous dépensez un Point d'Héroisme en plus, tout ces effets peuvent être doublés",
"BOL.chat.legendaryreminder": "En plus des actions indiquées sur les boutons ci-dessous, vous pouvez effectuer 2 actions parmis: <ul><li>Carnage : Attaquer une seconde fois le même adversaire</li><li>Coup précis : Un dé de malus à votre adversaire sur une localisation choisie</li><li>Désarmement</li><li>Massacrer la piétaille</li><li>Renversement : Renversez votre adversaire (1 taille de plus max)</li></ul>",
"BOL.chat.toheroic": "Transformer en succés Héroïque (1 P. Héroisme/Vilainie)",
"BOL.chat.tolegend": "Transformer en succes Légendaire (1 P. Heroisme/Vilainie)",
"BOL.chat.hurttitle": "{name} va encaisser {damageTotal} dégats !",
@ -552,9 +566,10 @@
"BOL.chat.criticalrabble": "Massacrer la piétaille : Si vous combattez de la Piétaille, les résultats des dommages indiquent le nombre d'adversaires mis hors de combat.",
"BOL.chat.criticalpush": "Renversement : Si la taille le permet, vous poussez votre adversaire au sol, il souffrira d'1 Dé de Malus pour toutes ses actions au round suivant.",
"BOL.chat.criticalup": "Transformer en Légendaire : En dépensant 1 point d'Héroisme/Vilainie, vous pouvez transformer ce Succès Héroïque en Légendaire, qui vous permet de prendre 2 options dans la liste ci-dessus (cf. bouton pour un +12 aux dommages par exemple).",
"BOL.chat.criticalinfo": "C'est un succès Héroïque ou Légendaire ! Choisissez vos options et effets !",
"BOL.chat.criticalinfo": "C'est un succès Héroïque ! Choisissez vos options et effets !",
"BOL.chat.criticallegendaryinfo": "C'est un succès Légendaire ! Choisissez vos options et effets !",
"BOL.chat.criticalbuttonjournal": "Succès Héroïque/Légendaire",
"BOL.chat.losshp": "{name} a perdu {lossHP} points de Vitalité. Si il se repose quelques minutes, il peut récupérer {recupHP} points de Vitalité.",
"BOL.chat.applyrecup": "Récupérer pendant quelques minutes (+{recupHP} Vitalité)",
"BOL.chat.inforecup": "{name} vient de récupérer {recupHP} points de Vitalité après quelques minutes de repos.",
@ -605,6 +620,7 @@
"BOL.chat.pcwarningmsg": "<b>ATTENTION</b> Le joueur n'est relié à aucun personnage !",
"BOL.chat.pcnotlinked": "Le token du personnage joueur n'est pas relié à l'acteur",
"BOL.chat.pcnotlinkedmsg": "<b>ATTENTION</b> Le token du personnage joueur n'est pas relié à l'acteur !",
"BOL.chat.armorRoll": "Jet d'armure",
"BOL.settings.rollArmor": "Effectuer des jets pour les armures",
"BOL.settings.rollArmorTooltip": "Effectue un jet de dés pour les armures (valeur fixe si désactivé)",

View File

@ -47,10 +47,19 @@ export class BoLActorSheet extends ActorSheet {
// Equip/Unequip item
html.find('.item-equip').click(this._onToggleEquip.bind(this));
html.find('.create_item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvel Equipement", type: "item" }], { renderSheet: true });
html.find('.create-item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newEquipment"), type: "item" }], { renderSheet: true });
});
html.find('.create-natural-weapon').click(ev => {
let system = foundry.utils.duplicate(game.bol.config.defaultNaturalWeapon)
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newNaturalWeapon"), type: "item", system }], { renderSheet: true });
});
html.find('.create-natural-protection').click(ev => {
let system = foundry.utils.duplicate(game.bol.config.defaultNaturalProtection)
this.actor.createEmbeddedDocuments('Item', [{ name: game.i18n.localize("BOL.ui.newNaturalProtection"), type: "item", system }], { renderSheet: true });
});
html.find(".toggle-fight-option").click((ev) => {
const li = $(ev.currentTarget).parents(".item")
this.actor.toggleFightOption(li.data("itemId"))

View File

@ -7,6 +7,35 @@ import { BoLUtility } from "../system/bol-utility.js";
*/
export class BoLActor extends Actor {
static async create(data, options) {
// Case of compendium global import
if (data instanceof Array) {
return super.create(data, options);
}
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic
if (data.items) {
let actor = super.create(data, options);
return actor;
}
if (data.type == 'horde') {
let weapon = {
name: game.i18n.localize("BOL.ui.hordeAttack"), type: "item",
img: "ui/icons/attaque_melee.webp",
system: foundry.utils.duplicate(game.bol.config.defaultNaturalWeapon)
}
weapon.system.properties.attackModifiers = 1
weapon.system.properties.damage = "1d6M"
data.items = [weapon]
data.img = "systems/bol/ui/icons/icon-horde-token.webp"
data.prototypeToken = { texture: "systems/bol/ui/icons/icon-horde-token.webp" }
}
return super.create(data, options);
}
/** @override */
prepareData() {
@ -18,19 +47,44 @@ export class BoLActor extends Actor {
this.chartype = 'tough'
this.villainy = true
}
if (this.type == "horde") {
let weapon = this.items.find(i => i.type === "item" && i.system.subtype === "weapon")
// Check if the horde attack is inline with the hordesize
if (weapon?.system?.properties?.attackModifiers != this.system.hordesize) {
this.updateEmbeddedDocuments('Item', [{ _id: weapon.id, 'system.properties.attackModifiers': this.system.hordesize }])
}
}
super.prepareData()
}
/* -------------------------------------------- */
async _onCreateOperation(documents, operation, user) {
await super._onCreateOperation(documents, operation, user);
}
/* -------------------------------------------- */
getTokenSizeFromHordeSize(hordeSize) {
hordeSize = hordeSize || this.system.hordesize
// If size > 50 then max is 50
let size = Math.min(hordeSize, 20)
// Compute the size of the token from 1 to 5
let tokenSize = Math.max((size / 4), 1) // Never below 1
return tokenSize
}
/* -------------------------------------------- */
async _preCreate(data, options, user) {
await super._preCreate(data, options, user);
// Configure prototype token settings
const prototypeToken = {};
if (this.type === "character") Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
if (this.type === "character") {
Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
}
}
/* -------------------------------------------- */
@ -38,7 +92,7 @@ export class BoLActor extends Actor {
if (this.type === 'character') {
return true
}
return (this.type === 'encounter' && this.chartype == "adversary")
return (this.type === 'encounter' && this.chartype == "adversary")
}
/* -------------------------------------------- */
@ -204,7 +258,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */
addXPLog(type, name, cost, value) {
let xplog = {
name: "XP : "+game.i18n.localize(type), type: "feature",
name: "XP : " + game.i18n.localize(type), type: "feature",
img: "icons/magic/symbols/chevron-elipse-circle-blue.webp",
system: {
subtype: "xplog", properties: {
@ -263,7 +317,7 @@ export class BoLActor extends Actor {
xp.spent += nextXP
this.update({ [`system.xp`]: xp })
this.updateEmbeddedDocuments('Item', [{ _id: career._id, 'system.rank': career.system.rank + 1 }])
this.addXPLog("career", career.name, nextXP, career.system.rank+1)
this.addXPLog("career", career.name, nextXP, career.system.rank + 1)
} else {
ui.notifications.warn("Pas assez de points d'expérience !")
}
@ -418,7 +472,7 @@ export class BoLActor extends Actor {
}
isSorcerer() {
return (this.careers.find(item => item.system.properties.sorcerer ))
return (this.careers.find(item => item.system.properties.sorcerer))
}
isAlchemist() {
return (this.careers.find(item => item.system.properties.alchemist))
@ -611,7 +665,7 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
getSorcererBonus() {
let sorcerer = this.careers.find(item => item.system.properties.sorcerer )
let sorcerer = this.careers.find(item => item.system.properties.sorcerer)
if (sorcerer) {
return sorcerer.system.rank
}
@ -798,7 +852,7 @@ export class BoLActor extends Actor {
}
if (this.system.resources.hp.value < -5 && !dead) {
await this.createEmbeddedDocuments("ActiveEffect", [
{ name: game.i18n.localize('EFFECT.StatusDead'), icon: 'icons/svg/skull.svg', statuses: 'dead' }
{ name: game.i18n.localize('EFFECT.StatusDead'), icon: 'icons/svg/skull.svg', statuses: 'dead' }
])
}
ChatMessage.create({
@ -895,6 +949,34 @@ export class BoLActor extends Actor {
if (data.system?.resources) {
this.checkNumeric(data.system.resources)
}
// Apply changes in Horde size to Token width/height
if (this.type == "horde") {
if (data?.system?.hordesize) { // If horde size is changed}
let newHP = data.system.hordesize * this.system.hordebasehp
if (newHP != this.system.resources.hp.value) {
data.system.resources = { hp: { value: newHP, max: newHP } } // Update HP
}
let tokenSize = this.getTokenSizeFromHordeSize(data?.system?.hordesize)
if (this.isToken && (tokenSize !== this.token.width)) {
this.token.update({ width: tokenSize, height: tokenSize })
} else {
if (tokenSize && (tokenSize !== this.prototypeToken.width)) {
if (!foundry.utils.hasProperty(data, "prototypeToken.width")) {
data.prototypeToken ||= {};
data.prototypeToken.height = tokenSize;
data.prototypeToken.width = tokenSize;
}
}
}
}
if (data?.system?.hordebasehp) {
let newHP = this.system.hordesize * data.system.hordebasehp
if (newHP != this.system.resources.hp.value) {
data.system.resources = { hp: { value: newHP, max: newHP } }
}
}
}
super._preUpdate(data, options, userId)
}
@ -965,8 +1047,15 @@ export class BoLActor extends Actor {
}
/*-------------------------------------------- */
async sufferDamage(damage) {
let updates = {}
let newHP = this.system.resources.hp.value - damage
await this.update({ 'system.resources.hp.value': newHP })
updates['system.resources.hp.value'] = newHP
if (this.type == "horde") {
let newSize = Math.ceil(newHP / this.system.hordebasehp)
updates['system.hordesize'] = newSize
}
await this.update(updates)
}
/* -------------------------------------------- */
@ -997,12 +1086,13 @@ export class BoLActor extends Actor {
}
/* -------------------------------------------- */
rollProtection(itemId) {
async rollProtection(itemId) {
let armor = foundry.utils.duplicate(this.items.get(itemId))
if (armor) {
let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)"
let rollArmor = new Roll(armorFormula)
rollArmor.roll({ async: false }).toMessage()
await rollArmor.roll()
rollArmor.toMessage()
}
}

217
module/actor/horde-sheet.js Normal file
View File

@ -0,0 +1,217 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js";
export class BoLHordeSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/horde-sheet.hbs",
width: 860,
height: 600,
dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }],
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }]
});
}
/* -------------------------------------------- */
/** @override */
activateListeners(html) {
super.activateListeners(html);
function onLoad() {
let logoSheet = BoLUtility.getLogoActorSheet()
$(".bol-actor-form").css("backgroundImage",`url(${logoSheet})`)
}
// Setup everything onload
$(function () { onLoad(); });
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
// Add Inventory Item
html.find('.item-create').click(this._onItemCreate.bind(this));
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.items.get(li.data("itemId"));
item.sheet.render(true);
})
// Equip/Unequip item
html.find('.item-equip').click(this._onToggleEquip.bind(this));
html.find('.create_item').click(ev => {
this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvel Equipement", type: "item" }], { renderSheet: true });
});
// Incr./Decr. career ranks
html.find(".inc-dec-btns").click((ev) => {
const li = $(ev.currentTarget).parents(".item");
if (li) {
const item = this.actor.items.get(li.data("itemId"));
if (item) {
const dataset = ev.currentTarget.dataset;
const operator = dataset.operator;
const target = dataset.target;
const incr = parseInt(dataset.incr)
const min = parseInt(dataset.min)
const max = parseInt(dataset.max) || 10000
let value = eval("item." + target)
value = value || 0
//console.log("IncDec", item, target, value, operator, min, max)
if (operator === "minus") {
if (value >= min + incr) value -= incr;
else value = min;
}
if (operator === "plus") {
if (value <= max - incr) value += incr;
else value = max;
}
let update = { [`${target}`]: value };
item.update(update);
}
}
});
// Delete Inventory Item
html.find('.item-delete').click(ev => {
Dialog.confirm({
title: "Suppression",
content: `Vous êtes sûr de vouloir supprimer cet item ?`,
yes: () => {
const li = $(ev.currentTarget).parents(".item");
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")])
li.slideUp(200, () => this.render(false));
},
no: () => { },
defaultYes: false,
});
});
// Rollable abilities.
html.find('.rollable').click(this._onRoll.bind(this));
}
/* -------------------------------------------- */
/** @override */
async getData(options) {
const data = super.getData(options)
let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config
formData.name = this.actor.name
formData.img = this.actor.img
formData.system = foundry.utils.duplicate(this.actor.system)
formData.isGM = game.user.isGM
formData.options = this.options
formData.owner = this.document.isOwner
formData.editScore = this.options.editScore
formData.description = await TextEditor.enrichHTML(this.actor.system.description, {async: true})
formData.isGM = game.user.isGM
console.log("HORDE", formData)
return formData;
}
/* -------------------------------------------- */
/**
* Handle creating a new Owned Item for the actor using initial data defined in the HTML dataset
* @param {Event} event The originating click event
* @private
*/
_onItemCreate(event) {
event.preventDefault();
const header = event.currentTarget;
// Get the type of item to create.
const type = header.dataset.type;
// Grab any data associated with this control.
const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// Prepare the item object.
const itemData = {
name: name,
type: type,
data: data
};
// Remove the type from the dataset since it's in the itemData.type prop.
delete itemData.data["type"];
// Finally, create the item!
return this.actor.createEmbeddedDocuments("Item", [itemData]);
}
_onToggleEquip(event) {
event.preventDefault();
const li = $(event.currentTarget).closest(".item");
const item = this.actor.items.get(li.data("itemId"));
return this.actor.toggleEquipItem(item);
}
/**
* Handle clickable rolls.
* @param {Event} event The originating click event
* @private
*/
_onRoll(event) {
event.preventDefault();
const element = event.currentTarget
const dataset = element.dataset
const rollType = dataset.rollType
const li = $(event.currentTarget).closest(".item")
switch (rollType) {
case "attribute":
BoLRoll.attributeCheck(this.actor, dataset.key, event)
break;
case "aptitude":
BoLRoll.aptitudeCheck(this.actor, dataset.key, event)
break;
case "weapon":
BoLRoll.weaponCheck(this.actor, event)
break;
case "spell":
BoLRoll.spellCheck(this.actor, event)
break;
case "alchemy":
BoLRoll.alchemyCheck(this.actor, event)
break;
case "protection":
this.actor.rollProtection(li.data("item-id"))
break;
case "damage":
this.actor.rollWeaponDamage(li.data("item-id"))
break;
case "aptitudexp":
this.actor.incAptitudeXP(dataset.key)
break;
case "attributexp":
this.actor.incAttributeXP(dataset.key)
break;
case "careerxp":
this.actor.incCareerXP( li.data("item-id"))
break;
default: break;
}
}
/** @override */
setPosition(options = {}) {
const position = super.setPosition(options);
const sheetBody = this.element.find(".sheet-body");
const bodyHeight = position.height - 192;
sheetBody.css("height", bodyHeight);
return position;
}
}

View File

@ -3,6 +3,7 @@
import { BoLActor } from "./actor/actor.js"
import { BoLActorSheet } from "./actor/actor-sheet.js"
import { BoLVehicleSheet } from "./actor/vehicle-sheet.js"
import { BoLHordeSheet } from "./actor/horde-sheet.js"
import { BoLItem } from "./item/item.js"
import { BoLItemSheet } from "./item/item-sheet.js"
import { System, BOL } from "./system/config.js"
@ -54,6 +55,7 @@ Hooks.once('init', async function () {
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("bol", BoLActorSheet, { types: ["character", "encounter"], makeDefault: true })
Actors.registerSheet("bol", BoLVehicleSheet, { types: ["vehicle"], makeDefault: true })
Actors.registerSheet("bol", BoLHordeSheet, { types: ["horde"], makeDefault: true })
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("bol", BoLItemSheet, { makeDefault: true });
@ -81,7 +83,7 @@ function welcomeMessage() {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-pegasus"><span class="rdd-roll-part">
content: `<div id="welcome-message-bol"><span class="rdd-roll-part">
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" +

View File

@ -568,6 +568,7 @@ export class BoLRoll {
icon: '<i class="fas fa-check"></i>',
label: game.i18n.localize("BOL.ui.submit"),
callback: (html) => {
console.log("Submit Roll!!!!");
if (rollData.mode == 'spell' && rollData.ppCurrent < rollData.ppCost) { // Check PP available
ui.notifications.warn("Pas assez de Points de Pouvoir !")
return
@ -632,13 +633,25 @@ export class BoLDefaultRoll {
const activeDice = r.terms[0].results.filter(r => r.active)
const diceTotal = activeDice.map(r => r.result).reduce((a, b) => a + b)
this.rollData.roll = r
this.rollData.isSuccess = (r.total >= diceData.successValue)
this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isRealCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isHeroic = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isLegendary = false
this.rollData.isFumble = (diceTotal <= diceData.criticalFailureValue)
this.rollData.isFailure = !this.rollData.isSuccess
if ( this.rollData.isFumble ) {
this.rollData.isSuccess = false
this.rollData.isCritical = false
this.rollData.isRealCritical = false
this.rollData.isHeroic = false
this.rollData.isFailure = true
} else {
this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue)
if ( this.rollData.isCritical) {
this.rollData.isSuccess = true
} else {
this.rollData.isSuccess = (r.total >= diceData.successValue)
}
this.rollData.isRealCritical = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isHeroic = (diceTotal >= diceData.criticalSuccessValue)
this.rollData.isFailure = !this.rollData.isSuccess
}
this.rollData.isLegendary = false
let actor = BoLUtility.getActorFromRollData(this.rollData)
if (this.rollData.reroll == undefined) {
@ -649,7 +662,7 @@ export class BoLDefaultRoll {
this.rollData.initiativeRank = actor.getInitiativeRank(this.rollData)
if (this.rollData.combatData) { // If combatData present
let combat = game.combats.get(this.rollData.combatData.combatId)
console.log("SET INIT!!!!!", this.rollData.initiativeRank)
//console.log("SET INIT!!!!!", this.rollData.initiativeRank)
combat.setInitiative(this.rollData.combatData.combatantId, this.rollData.initiativeRank)
}
}
@ -765,8 +778,12 @@ export class BoLDefaultRoll {
if (this.rollData.damageMode == 'damage-plus-6') {
bonusDmg = 6
}
if (this.rollData.damageMode == 'damage-plus-12') {
if (this.rollData.damageMode == 'damage-plus-12' || this.rollData.damageMode == 'damage-plus-12-legend') {
bonusDmg = 12
if (this.rollData.damageMode == 'damage-plus-12') { // In this case, the hero point is used (ie shortcut)
let actor = BoLUtility.getActorFromRollData(this.rollData)
actor.subHeroPoints(1)
}
}
let attrDamageValue = this.getDamageAttributeValue(this.rollData.weapon.system.properties.damageAttribute)
let weaponFormula = BoLUtility.getDamageFormula(this.rollData.weapon.system, this.rollData.fightOption)
@ -776,7 +793,7 @@ export class BoLDefaultRoll {
//console.log("Formula", weaponFormula, damageFormula, this.rollData.weapon.data.data.properties.damage)
this.rollData.damageFormula = damageFormula
this.rollData.damageRoll = new Roll(damageFormula)
await this.rollData.damageRoll.roll({ "async": false })
await this.rollData.damageRoll.roll()
this.rollData.damageTotal = this.rollData.damageRoll.total
console.log("DAMAGE !!!", damageFormula, attrDamageValue, this.rollData)
}

View File

@ -21,12 +21,12 @@ export class BoLCombatManager extends Combat {
// Structure input data
ids = typeof ids === "string" ? [ids] : ids;
// Get initiative malus from tough/adversary
let malusInit = 0
let malusInit = 0
for (let combatant of this.combatants) {
malusInit = Math.max(malusInit, combatant.actor.getInitiativeMalus())
}
// calculate initiative
for (let cId = 0; cId < ids.length; cId++) {
for (let cId = 0; cId < ids.length; cId++) {
const combatant = this.combatants.get(ids[cId])
let fvttInit = combatant.actor.getInitiativeRank(false, true, { combatId: this.id, combatantId: combatant.id, malusInit })
fvttInit += (cId / 100)
@ -39,17 +39,25 @@ export class BoLCombatManager extends Combat {
if (game.user.isGM) {
let combatants = this.combatants.contents
let autoRemoveDead = game.settings.get("bol", "auto-remove-dead") // Optionnal auto-removal of dead char.
let updates = []
for (let c of combatants) {
//let actor = game.actors.get(c.actorId)
if (c.actor.type == "horde") {
let actor = game.actors.get(c.actorId)
updates.push({ _id: c.id, name: actor.name + " (" + actor.system.hordesize + ")" })
}
c.actor.clearRoundModifiers()
let toRemove = []
if (autoRemoveDead && c.actor.type == "encounter" && (c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
if (autoRemoveDead && c.actor.type == "encounter" &&
(c.actor.system.chartype == "tough" || c.actor.system.chartype == "creature" || c.actor.system.chartype == "base") && c.actor.system.resources.hp.value <= 0) {
toRemove.push(c.id || c._id)
}
//console.log("REM", autoRemoveDead, toRemove, c.actor)
if (toRemove.length > 0) {
this.deleteEmbeddedDocuments('Combatant', toRemove)
}
if (updates.length > 0) {
this.updateEmbeddedDocuments('Combatant', updates)
}
}
}
super.nextRound()
@ -58,11 +66,19 @@ export class BoLCombatManager extends Combat {
/************************************************************************************/
startCombat() {
if (game.user.isGM) {
let updates = []
let combatants = this.combatants.contents
for (let c of combatants) {
let actor = game.actors.get(c.actorId)
actor.storeVitaliteCombat()
if (c.actor.type == "horde") {
let actor = game.actors.get(c.actorId)
updates.push({ _id: c.id, name: actor.name + " (" + actor.system.hordesize + ")" })
}
}
if (updates.length > 0) {
this.updateEmbeddedDocuments('Combatant', updates)
}
}
return super.startCombat()
}

View File

@ -238,7 +238,7 @@ export class BoLUtility {
renderTemplate('systems/bol/templates/item/post-item.hbs', chatData).then(html => {
let chatOptions = BoLUtility.chatDataSetup(html);
ChatMessage.create(chatOptions, "selfroll")
ChatMessage.create(chatOptions)
});
}
/* -------------------------------------------- */
@ -473,11 +473,15 @@ export class BoLUtility {
if (defenseMode == 'damage-with-armor') {
let armorFormula = defender.getArmorFormula()
rollData.rollArmor = new Roll(armorFormula)
rollData.rollArmor.roll({ async: false })
await rollData.rollArmor.roll()
let msg = await rollData.rollArmor.toMessage({ flavor: "BOL.chat.armorRoll : " + armorFormula });
if ( game.dice3d) { // wait animation end when DsN is there
await game.dice3d.waitFor3DAnimationByMessageID(msg.id);
}
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
rollData.finalDamage = rollData.damageTotal - rollData.armorProtect
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
defender.sufferDamage(rollData.finalDamage)
await defender.sufferDamage(rollData.finalDamage)
console.log("Armor roll -> result ", rollData)
}
if (defenseMode == 'damage-without-armor') {
@ -487,19 +491,19 @@ export class BoLUtility {
if (defenseMode == 'hero-reduce-damage') {
let armorFormula = defender.getArmorFormula()
rollData.rollArmor = new Roll(armorFormula)
rollData.rollArmor.roll({ async: false })
await rollData.rollArmor.roll()
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
rollData.rollHero = new Roll("1d6")
rollData.rollHero.roll({ async: false })
await rollData.rollHero.roll()
rollData.finalDamage = rollData.damageTotal - rollData.rollHero.total - rollData.armorProtect
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
defender.sufferDamage(rollData.finalDamage)
await defender.sufferDamage(rollData.finalDamage)
defender.subHeroPoints(1)
}
if (defenseMode == 'hero-in-extremis') {
rollData.finalDamage = 0;
rollData.weaponHero = defender.weapons.find(item => item._id == weaponId);
defender.deleteEmbeddedDocuments("Item", [weaponId]);
await defender.deleteEmbeddedDocuments("Item", [weaponId]);
}
let defenderUser

View File

@ -10,14 +10,15 @@ System.debugMode = true;
export const BOL = {};
BOL.damageValues = {
"1": "1",
"2": "2",
"3": "3",
"d3" : "d3",
"d6M" : "d6M (Malus)",
"d6" : "d6",
"d6B" : "d6B (Bonus)",
"d6BB" : "d6B + dé bonus",
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"d3": "d3",
"d6M": "d6M (Malus)",
"d6": "d6",
"d6B": "d6B (Bonus)",
"d6BB": "d6B + dé bonus",
}
BOL.damageMultiplier = {
@ -55,125 +56,125 @@ BOL.alchemyType = {
}
BOL.equipmentSlots = {
"none" : "BOL.equipmentSlots.none",
"head" : "BOL.equipmentSlots.head",
"neck" : "BOL.equipmentSlots.neck",
"shoulders" : "BOL.equipmentSlots.shoulders",
"body" : "BOL.equipmentSlots.body",
"rhand" : "BOL.equipmentSlots.rhand",
"lhand" : "BOL.equipmentSlots.lhand",
"2hands" : "BOL.equipmentSlots.2hands",
"rarm" : "BOL.equipmentSlots.rarm",
"larm" : "BOL.equipmentSlots.larm",
"chest" : "BOL.equipmentSlots.chest",
"belt" : "BOL.equipmentSlots.belt",
"legs" : "BOL.equipmentSlots.legs",
"feet" : "BOL.equipmentSlots.feet",
"finder" : "BOL.equipmentSlots.finder",
"ear" : "BOL.equipmentSlots.ear"
"none": "BOL.equipmentSlots.none",
"head": "BOL.equipmentSlots.head",
"neck": "BOL.equipmentSlots.neck",
"shoulders": "BOL.equipmentSlots.shoulders",
"body": "BOL.equipmentSlots.body",
"rhand": "BOL.equipmentSlots.rhand",
"lhand": "BOL.equipmentSlots.lhand",
"2hands": "BOL.equipmentSlots.2hands",
"rarm": "BOL.equipmentSlots.rarm",
"larm": "BOL.equipmentSlots.larm",
"chest": "BOL.equipmentSlots.chest",
"belt": "BOL.equipmentSlots.belt",
"legs": "BOL.equipmentSlots.legs",
"feet": "BOL.equipmentSlots.feet",
"finder": "BOL.equipmentSlots.finder",
"ear": "BOL.equipmentSlots.ear"
}
BOL.armorQualities = {
"none" : "BOL.armorQuality.none",
"light" : "BOL.armorQuality.light",
"lightQ" : "BOL.armorQuality.lightQ",
"lightSup" : "BOL.armorQuality.lightSup",
"lightLeg" : "BOL.armorQuality.lightLeg",
"medium" : "BOL.armorQuality.medium",
"mediumQ" : "BOL.armorQuality.mediumQ",
"mediumSup" : "BOL.armorQuality.mediumSup",
"mediumLeg" : "BOL.armorQuality.mediumLeg",
"heavy" : "BOL.armorQuality.heavy",
"heavyQ" : "BOL.armorQuality.heavyQ",
"heavySup" : "BOL.armorQuality.heavySup",
"heavyLeg" : "BOL.armorQuality.heavyLeg"
"none": "BOL.armorQuality.none",
"light": "BOL.armorQuality.light",
"lightQ": "BOL.armorQuality.lightQ",
"lightSup": "BOL.armorQuality.lightSup",
"lightLeg": "BOL.armorQuality.lightLeg",
"medium": "BOL.armorQuality.medium",
"mediumQ": "BOL.armorQuality.mediumQ",
"mediumSup": "BOL.armorQuality.mediumSup",
"mediumLeg": "BOL.armorQuality.mediumLeg",
"heavy": "BOL.armorQuality.heavy",
"heavyQ": "BOL.armorQuality.heavyQ",
"heavySup": "BOL.armorQuality.heavySup",
"heavyLeg": "BOL.armorQuality.heavyLeg"
}
BOL.soakFormulas = {
"none" : "0",
"light" : "1d6-3",
"lightQ" : "1d6r1-3",
"lightSup" : "1d6-2",
"lightLeg" : "2d6kh1-2",
"medium" : "1d6-2",
"mediumQ" : "1d6r1-2",
"mediumSup" : "1d6-1",
"mediumLeg" : "2d6kh1-1",
"heavy" : "1d6-1",
"heavyQ" : "1d6r1-1",
"heavySup" : "1d6",
"heavyLeg" : "2d6kh1"
"none": "0",
"light": "1d6-3",
"lightQ": "1d6r1-3",
"lightSup": "1d6-2",
"lightLeg": "2d6kh1-2",
"medium": "1d6-2",
"mediumQ": "1d6r1-2",
"mediumSup": "1d6-1",
"mediumLeg": "2d6kh1-1",
"heavy": "1d6-1",
"heavyQ": "1d6r1-1",
"heavySup": "1d6",
"heavyLeg": "2d6kh1"
}
BOL.attackAttributes = {
"vigor" : "BOL.attributes.vigor",
"agility" : "BOL.attributes.agility",
"mind" : "BOL.attributes.mind",
"appeal" : "BOL.attributes.appeal"
"vigor": "BOL.attributes.vigor",
"agility": "BOL.attributes.agility",
"mind": "BOL.attributes.mind",
"appeal": "BOL.attributes.appeal"
}
BOL.attackAptitudes = {
"melee" : "BOL.aptitudes.melee",
"ranged" : "BOL.aptitudes.ranged"
"melee": "BOL.aptitudes.melee",
"ranged": "BOL.aptitudes.ranged"
}
BOL.aptitudes = {
"melee" : "BOL.aptitudes.melee",
"ranged" : "BOL.aptitudes.ranged",
"init" : "BOL.aptitudes.init",
"def" : "BOL.aptitudes.def"
"melee": "BOL.aptitudes.melee",
"ranged": "BOL.aptitudes.ranged",
"init": "BOL.aptitudes.init",
"def": "BOL.aptitudes.def"
}
BOL.resources = {
"hp" : "BOL.resources.hp",
"hero" : "BOL.resources.hero",
"faith" : "BOL.resources.faith",
"power" : "BOL.resources.power",
"alchemypoints" : "BOL.resources.alchemypoints"
"hp": "BOL.resources.hp",
"hero": "BOL.resources.hero",
"faith": "BOL.resources.faith",
"power": "BOL.resources.power",
"alchemypoints": "BOL.resources.alchemypoints"
}
BOL.weaponSizes = {
"unarmed" : "BOL.weaponSize.unarmed",
"improvised" : "BOL.weaponSize.improvised",
"light" : "BOL.weaponSize.light",
"medium" : "BOL.weaponSize.medium",
"heavy" : "BOL.weaponSize.heavy"
"unarmed": "BOL.weaponSize.unarmed",
"improvised": "BOL.weaponSize.improvised",
"light": "BOL.weaponSize.light",
"medium": "BOL.weaponSize.medium",
"heavy": "BOL.weaponSize.heavy"
}
BOL.damageAttributes = {
"zero" : "0",
"vigor" : "BOL.attributes.vigor",
"half-vigor" : "BOL.attributes.halfvigor"
"zero": "0",
"vigor": "BOL.attributes.vigor",
"half-vigor": "BOL.attributes.halfvigor"
}
BOL.itemCategories = {
"equipment" : "BOL.itemCategory.equipment",
"capacity" : "BOL.itemCategory.capacity",
"spell" : "BOL.itemCategory.spell",
"alchemy" : "BOL.itemCategory.alchemy",
"vehicle" : "BOL.itemCategory.vehicle",
"vehicleweapon": "BOL.itemCategory.vehicleweapon",
"other" : "BOL.itemCategory.other"
"equipment": "BOL.itemCategory.equipment",
"capacity": "BOL.itemCategory.capacity",
"spell": "BOL.itemCategory.spell",
"alchemy": "BOL.itemCategory.alchemy",
"vehicle": "BOL.itemCategory.vehicle",
"vehicleweapon": "BOL.itemCategory.vehicleweapon",
"other": "BOL.itemCategory.other"
}
BOL.itemSubtypes = {
"armor" : "BOL.equipmentCategory.armor",
"weapon" : "BOL.equipmentCategory.weapon",
"shield" : "BOL.equipmentCategory.shield",
"helm" : "BOL.equipmentCategory.helm",
"jewel" : "BOL.equipmentCategory.jewel",
"scroll" : "BOL.equipmentCategory.scroll",
"container" : "BOL.equipmentCategory.container",
"ammunition" : "BOL.equipmentCategory.ammunition",
"currency" : "BOL.equipmentCategory.currency",
"other" : "BOL.equipmentCategory.other"
"armor": "BOL.equipmentCategory.armor",
"weapon": "BOL.equipmentCategory.weapon",
"shield": "BOL.equipmentCategory.shield",
"helm": "BOL.equipmentCategory.helm",
"jewel": "BOL.equipmentCategory.jewel",
"scroll": "BOL.equipmentCategory.scroll",
"container": "BOL.equipmentCategory.container",
"ammunition": "BOL.equipmentCategory.ammunition",
"currency": "BOL.equipmentCategory.currency",
"other": "BOL.equipmentCategory.other"
}
BOL.vehicleSubtypes = {
"mount" : "BOL.vehicleCategory.mount",
"flying" : "BOL.vehicleCategory.flying",
"boat" : "BOL.vehicleCategory.boat",
"other" : "BOL.vehicleCategory.other"
"mount": "BOL.vehicleCategory.mount",
"flying": "BOL.vehicleCategory.flying",
"boat": "BOL.vehicleCategory.boat",
"other": "BOL.vehicleCategory.other"
}
// BOL.equipmentCategories = {
@ -190,27 +191,27 @@ BOL.vehicleSubtypes = {
// }
BOL.rangeModifiers = {
"1": "BOL.dialog.pointblank",
"0": "BOL.dialog.close",
"-1": "BOL.dialog.medium",
"-2": "BOL.dialog.long",
"-4": "BOL.dialog.distant",
"-6": "BOL.dialog.extreme",
"-8": "BOL.dialog.utmost"
"1": "BOL.dialog.pointblank",
"0": "BOL.dialog.close",
"-1": "BOL.dialog.medium",
"-2": "BOL.dialog.long",
"-4": "BOL.dialog.distant",
"-6": "BOL.dialog.extreme",
"-8": "BOL.dialog.utmost"
}
BOL.difficultyModifiers = {
"4": "BOL.dialog.soeasy",
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
"-10": "BOL.dialog.mythic",
"-12": "BOL.dialog.divine"
"4": "BOL.dialog.soeasy",
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
"-10": "BOL.dialog.mythic",
"-12": "BOL.dialog.divine"
}
BOL.alchemyModifiers = {
@ -245,97 +246,97 @@ BOL.effectIdentifiers = {
"always": "BOL.ui.always",
}
BOL.protectionCategories = {
"armor" : "BOL.protectionCategory.armor",
"shield" : "BOL.protectionCategory.shield",
"helm" : "BOL.protectionCategory.helm",
"other" : "BOL.protectionCategory.other"
"armor": "BOL.protectionCategory.armor",
"shield": "BOL.protectionCategory.shield",
"helm": "BOL.protectionCategory.helm",
"other": "BOL.protectionCategory.other"
}
BOL.weaponCategories = {
"melee" : "BOL.weaponCategory.melee",
"ranged" : "BOL.weaponCategory.ranged",
"other" : "BOL.weaponCategory.other"
"melee": "BOL.weaponCategory.melee",
"ranged": "BOL.weaponCategory.ranged",
"other": "BOL.weaponCategory.other"
}
BOL.itemProperties1 = {
"equipable" : "BOL.itemProperty.equipable",
"protection" : "BOL.itemProperty.protection",
"magical" : "BOL.itemProperty.magical",
"worn" : "BOL.itemProperty.worn",
"equipable": "BOL.itemProperty.equipable",
"protection": "BOL.itemProperty.protection",
"magical": "BOL.itemProperty.magical",
"worn": "BOL.itemProperty.worn",
}
BOL.itemProperties2 = {
"equipable" : "BOL.itemProperty.equipable",
"protection" : "BOL.itemProperty.protection",
"blocking" : "BOL.itemProperty.blocking",
"magical" : "BOL.itemProperty.magical",
"concealable" : "BOL.itemProperty.concealable",
"2H" : "BOL.itemProperty.2H",
"helm" : "BOL.itemProperty.helm",
"improvised" : "BOL.itemProperty.improvised",
"shield" : "BOL.itemProperty.shield",
"melee" : "BOL.itemProperty.melee",
"throwable" : "BOL.itemProperty.throwable",
"ignoreshield" : "BOL.itemProperty.ignoreshield",
"bashing" : "BOL.itemProperty.bashing",
"stackable" : "BOL.itemProperty.stackable",
"ranged" : "BOL.itemProperty.ranged",
"weapon" : "BOL.itemProperty.weapon",
"reloadable" : "BOL.itemProperty.reloadable",
"worn" : "BOL.itemProperty.worn",
"spell" : "BOL.itemProperty.spell",
"armor" : "BOL.itemProperty.armor",
"consumable" : "BOL.itemProperty.consumable",
"bow" : "BOL.itemProperty.bow",
"crossbow" : "BOL.itemProperty.crossbow",
"throwing" : "BOL.itemProperty.throwing",
"activable" : "BOL.itemProperty.activable",
"powder" : "BOL.itemProperty.powder",
"damage" : "BOL.itemProperty.damage",
"difficulty": "BOL.itemProperty.difficulty"
"equipable": "BOL.itemProperty.equipable",
"protection": "BOL.itemProperty.protection",
"blocking": "BOL.itemProperty.blocking",
"magical": "BOL.itemProperty.magical",
"concealable": "BOL.itemProperty.concealable",
"2H": "BOL.itemProperty.2H",
"helm": "BOL.itemProperty.helm",
"improvised": "BOL.itemProperty.improvised",
"shield": "BOL.itemProperty.shield",
"melee": "BOL.itemProperty.melee",
"throwable": "BOL.itemProperty.throwable",
"ignoreshield": "BOL.itemProperty.ignoreshield",
"bashing": "BOL.itemProperty.bashing",
"stackable": "BOL.itemProperty.stackable",
"ranged": "BOL.itemProperty.ranged",
"weapon": "BOL.itemProperty.weapon",
"reloadable": "BOL.itemProperty.reloadable",
"worn": "BOL.itemProperty.worn",
"spell": "BOL.itemProperty.spell",
"armor": "BOL.itemProperty.armor",
"consumable": "BOL.itemProperty.consumable",
"bow": "BOL.itemProperty.bow",
"crossbow": "BOL.itemProperty.crossbow",
"throwing": "BOL.itemProperty.throwing",
"activable": "BOL.itemProperty.activable",
"powder": "BOL.itemProperty.powder",
"damage": "BOL.itemProperty.damage",
"difficulty": "BOL.itemProperty.difficulty"
}
BOL.itemStats = {
"quantity" : "BOL.itemStat.quantity",
"weight" : "BOL.itemStat.weight",
"price" : "BOL.itemStat.price",
"range" : "BOL.itemStat.range",
"damage" : "BOL.itemStat.damage",
"reload" : "BOL.itemStat.reload",
"soak" : "BOL.itemStat.soak",
"blocking" : "BOL.itemStat.blocking",
"modifiers" : "BOL.itemStat.modifiers"
"quantity": "BOL.itemStat.quantity",
"weight": "BOL.itemStat.weight",
"price": "BOL.itemStat.price",
"range": "BOL.itemStat.range",
"damage": "BOL.itemStat.damage",
"reload": "BOL.itemStat.reload",
"soak": "BOL.itemStat.soak",
"blocking": "BOL.itemStat.blocking",
"modifiers": "BOL.itemStat.modifiers"
}
BOL.itemModifiers = {
"init" : "BOL.itemModifiers.init",
"social" : "BOL.itemModifiers.social",
"agility" : "BOL.itemModifiers.agility",
"powercost" : "BOL.itemModifiers.powercost"
"init": "BOL.itemModifiers.init",
"social": "BOL.itemModifiers.social",
"agility": "BOL.itemModifiers.agility",
"powercost": "BOL.itemModifiers.powercost"
}
BOL.itemBlocking = {
"malus" : "BOL.itemBlocking.malus",
"nbAttacksPerRound" : "BOL.itemBlocking.nbAttacksPerRound"
"malus": "BOL.itemBlocking.malus",
"nbAttacksPerRound": "BOL.itemBlocking.nbAttacksPerRound"
}
BOL.itemSoak = {
"formula" : "BOL.itemSoak.formula",
"value" : "BOL.itemSoak.value"
"formula": "BOL.itemSoak.formula",
"value": "BOL.itemSoak.value"
}
BOL.featureSubtypes = {
"origin" : "BOL.featureSubtypes.origin",
"race" : "BOL.featureSubtypes.race",
"career" : "BOL.featureSubtypes.career",
"boon" : "BOL.featureSubtypes.boon",
"flaw" : "BOL.featureSubtypes.flaw",
"language" : "BOL.featureSubtypes.language",
"godsfaith" : "BOL.featureSubtypes.gods",
"fightoption" : "BOL.featureSubtypes.fightOption",
"boleffect": "BOL.featureSubtypes.effect",
"horoscope": "BOL.featureSubtypes.horoscope",
"xplog": "BOL.featureSubtypes.xplog",
"origin": "BOL.featureSubtypes.origin",
"race": "BOL.featureSubtypes.race",
"career": "BOL.featureSubtypes.career",
"boon": "BOL.featureSubtypes.boon",
"flaw": "BOL.featureSubtypes.flaw",
"language": "BOL.featureSubtypes.language",
"godsfaith": "BOL.featureSubtypes.gods",
"fightoption": "BOL.featureSubtypes.fightOption",
"boleffect": "BOL.featureSubtypes.effect",
"horoscope": "BOL.featureSubtypes.horoscope",
"xplog": "BOL.featureSubtypes.xplog",
}
BOL.fightOptionTypes = {
@ -350,17 +351,17 @@ BOL.fightOptionTypes = {
}
BOL.itemIcons = {
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
"feature": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
"species": "icons/environment/people/group.webp",
"profile": "icons/sundries/documents/blueprint-axe.webp",
"path": "icons/sundries/books/book-embossed-gold-red.webp"
"item": "icons/containers/chest/chest-worn-oak-tan.webp",
"feature": "icons/sundries/scrolls/scroll-plain-tan-red.webp",
"species": "icons/environment/people/group.webp",
"profile": "icons/sundries/documents/blueprint-axe.webp",
"path": "icons/sundries/books/book-embossed-gold-red.webp"
}
BOL.actorIcons = {
"npc": "icons/environment/people/commoner.webp",
"encounter": "icons/svg/mystery-man-black.svg",
"loot": "icons/containers/bags/sack-simple-leather-brown.webp"
"npc": "icons/environment/people/commoner.webp",
"encounter": "icons/svg/mystery-man-black.svg",
"loot": "icons/containers/bags/sack-simple-leather-brown.webp"
}
BOL.bougetteState = {
@ -379,18 +380,18 @@ BOL.bougetteDice = {
}
BOL.creatureSize = {
"tiny": {order: 1, label: "BOL.size.tiny"},
"verysmall": {order: 2, label: "BOL.size.verysmall"},
"small": {order: 3, label: "BOL.size.small"},
"medium": {order: 4, label: "BOL.size.medium"},
"large": {order: 5, label: "BOL.size.large"},
"verylarge": {order: 6, label: "BOL.size.verylarge"},
"huge": {order: 7, label: "BOL.size.huge"},
"massive": {order: 8, label: "BOL.size.massive"},
"enormous": {order: 9, label: "BOL.size.enormous"},
"gigantic": {order: 10, label: "BOL.size.gigantic"},
"immense": {order: 11, label: "BOL.size.immense"},
"colossal": {order: 12, label: "BOL.size.colossal"}
"tiny": { order: 1, label: "BOL.size.tiny" },
"verysmall": { order: 2, label: "BOL.size.verysmall" },
"small": { order: 3, label: "BOL.size.small" },
"medium": { order: 4, label: "BOL.size.medium" },
"large": { order: 5, label: "BOL.size.large" },
"verylarge": { order: 6, label: "BOL.size.verylarge" },
"huge": { order: 7, label: "BOL.size.huge" },
"massive": { order: 8, label: "BOL.size.massive" },
"enormous": { order: 9, label: "BOL.size.enormous" },
"gigantic": { order: 10, label: "BOL.size.gigantic" },
"immense": { order: 11, label: "BOL.size.immense" },
"colossal": { order: 12, label: "BOL.size.colossal" }
}
BOL.horoscopeAnswer = {
@ -417,110 +418,251 @@ BOL.bolEffectModifier = {
BOL.statusEffects = [
{
"id": "dead",
"label": "EFFECT.StatusDead",
"icon": "icons/svg/skull.svg"
"id": "dead",
"label": "EFFECT.StatusDead",
"icon": "icons/svg/skull.svg"
},
{
"id": "unconscious",
"label": "EFFECT.StatusUnconscious",
"icon": "icons/svg/unconscious.svg"
"id": "unconscious",
"label": "EFFECT.StatusUnconscious",
"icon": "icons/svg/unconscious.svg"
},
{
"id": "sleep",
"label": "EFFECT.StatusAsleep",
"icon": "icons/svg/sleep.svg"
"id": "sleep",
"label": "EFFECT.StatusAsleep",
"icon": "icons/svg/sleep.svg"
},
{
"id": "stun",
"label": "EFFECT.StatusStunned",
"icon": "icons/svg/daze.svg"
"id": "stun",
"label": "EFFECT.StatusStunned",
"icon": "icons/svg/daze.svg"
},
{
"id": "prone",
"label": "EFFECT.StatusProne",
"icon": "icons/svg/falling.svg"
"id": "prone",
"label": "EFFECT.StatusProne",
"icon": "icons/svg/falling.svg"
},
{
"id": "restrain",
"label": "EFFECT.StatusRestrained",
"icon": "icons/svg/net.svg"
"id": "restrain",
"label": "EFFECT.StatusRestrained",
"icon": "icons/svg/net.svg"
},
{
"id": "paralysis",
"label": "EFFECT.StatusParalysis",
"icon": "icons/svg/paralysis.svg"
"id": "paralysis",
"label": "EFFECT.StatusParalysis",
"icon": "icons/svg/paralysis.svg"
},
{
"id": "fly",
"label": "EFFECT.StatusFlying",
"icon": "icons/svg/wing.svg"
"id": "fly",
"label": "EFFECT.StatusFlying",
"icon": "icons/svg/wing.svg"
},
{
"id": "blind",
"label": "EFFECT.StatusBlind",
"icon": "icons/svg/blind.svg"
"id": "blind",
"label": "EFFECT.StatusBlind",
"icon": "icons/svg/blind.svg"
},
{
"id": "deaf",
"label": "EFFECT.StatusDeaf",
"icon": "icons/svg/deaf.svg"
"id": "deaf",
"label": "EFFECT.StatusDeaf",
"icon": "icons/svg/deaf.svg"
},
{
"id": "silence",
"label": "EFFECT.StatusSilenced",
"icon": "icons/svg/silenced.svg"
"id": "silence",
"label": "EFFECT.StatusSilenced",
"icon": "icons/svg/silenced.svg"
},
{
"id": "fear",
"label": "EFFECT.StatusFear",
"icon": "icons/svg/terror.svg"
"id": "fear",
"label": "EFFECT.StatusFear",
"icon": "icons/svg/terror.svg"
},
{
"id": "burning",
"label": "EFFECT.StatusBurning",
"icon": "icons/svg/fire.svg"
"id": "burning",
"label": "EFFECT.StatusBurning",
"icon": "icons/svg/fire.svg"
},
{
"id": "frozen",
"label": "EFFECT.StatusFrozen",
"icon": "icons/svg/frozen.svg"
"id": "frozen",
"label": "EFFECT.StatusFrozen",
"icon": "icons/svg/frozen.svg"
},
{
"id": "shock",
"label": "EFFECT.StatusShocked",
"icon": "icons/svg/lightning.svg"
"id": "shock",
"label": "EFFECT.StatusShocked",
"icon": "icons/svg/lightning.svg"
},
{
"id": "disease",
"label": "EFFECT.StatusDisease",
"icon": "icons/svg/biohazard.svg"
"id": "disease",
"label": "EFFECT.StatusDisease",
"icon": "icons/svg/biohazard.svg"
},
{
"id": "poison",
"label": "EFFECT.StatusPoison",
"icon": "icons/svg/poison.svg"
"id": "poison",
"label": "EFFECT.StatusPoison",
"icon": "icons/svg/poison.svg"
},
{
"id": "curse",
"label": "EFFECT.StatusCursed",
"icon": "icons/svg/sun.svg"
"id": "curse",
"label": "EFFECT.StatusCursed",
"icon": "icons/svg/sun.svg"
},
{
"id": "invisible",
"label": "EFFECT.StatusInvisible",
"icon": "icons/svg/invisible.svg"
"id": "invisible",
"label": "EFFECT.StatusInvisible",
"icon": "icons/svg/invisible.svg"
},
{
"id": "target",
"label": "EFFECT.StatusTarget",
"icon": "icons/svg/target.svg"
"id": "target",
"label": "EFFECT.StatusTarget",
"icon": "icons/svg/target.svg"
},
{
"id": "eye",
"label": "EFFECT.StatusMarked",
"icon": "icons/svg/eye.svg"
"id": "eye",
"label": "EFFECT.StatusMarked",
"icon": "icons/svg/eye.svg"
}
]
BOL.defaultNaturalWeapon = {
"category": "equipment",
"subtype": "weapon",
"description": "",
"properties": {
"ranged": false,
"melee": false,
"spell": false,
"protection": false,
"weapon": true,
"armor": false,
"helm": false,
"shield": false,
"equipable": false,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6B",
"damageAttribute": "",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": false
}
BOL.defaultHordeAttack = {
"category": "equipment",
"subtype": "weapon",
"description": "",
"properties": {
"ranged": false,
"melee": true,
"spell": false,
"protection": false,
"weapon": true,
"armor": false,
"helm": false,
"shield": false,
"equipable": false,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6M",
"damageAttribute": "",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": false
}
BOL.defaultNaturalProtection = {
"category": "equipment",
"subtype": "armor",
"description": "",
"properties": {
"ranged": false,
"melee": false,
"spell": false,
"protection": true,
"weapon": false,
"armor": true,
"helm": false,
"shield": false,
"equipable": true,
"consumable": false,
"magical": false,
"2H": false,
"reloadable": false,
"bow": false,
"crossbow": false,
"throwing": false,
"stackable": false,
"natural": true,
"concealable": false,
"ignoreshield": false,
"attackBonusDice": false,
"onlymodifier": true,
"attackAttribute": "vigor",
"attackAptitude": "melee",
"attackModifiers": 1,
"weaponSize": "unarmed",
"damage": "d6B",
"damageAttribute": "vigor",
"damageModifiers": null,
"damageMultiplier": "1",
"damageReroll1": false,
"modifiers": {
"init": null,
"agility": null,
"powercost": null,
"social": false
},
"armorQuality": "none",
"soak": {
"formula": "",
"value": 1
},
"slot": "none"
},
"quantity": 1,
"weight": 0,
"price": 0,
"worn": true
}
BOL.debug = false;

View File

@ -79,7 +79,7 @@ export const registerHandlebarsHelpers = function () {
Handlebars.registerHelper('countKeys', function (obj) {
return Object.keys(obj).length;
})
Handlebars.registerHelper('isEnabled', function (configKey) {
return game.settings.get("bol", configKey);
})
@ -108,10 +108,10 @@ export const registerHandlebarsHelpers = function () {
return parseInt(a) - parseInt(b);
})
Handlebars.registerHelper('abbrev2', function (a) {
return a.substring(0,2);
return a.substring(0, 2);
})
Handlebars.registerHelper('abbrev3', function (a) {
return a.substring(0,3);
return a.substring(0, 3);
})
Handlebars.registerHelper('valueAtIndex', function (arr, idx) {
return arr[idx];
@ -141,5 +141,12 @@ export const registerHandlebarsHelpers = function () {
return key == "creature" || key == "daemon";
})
// Handle v12 removal of this helper
Handlebars.registerHelper('select', function (selected, options) {
const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected));
const rgx = new RegExp(' value=[\"\']' + escapedValue + '[\"\']');
const html = options.fn(this);
return html.replace(rgx, "$& selected");
});
}

View File

@ -22,6 +22,7 @@ export const preloadHandlebarsTemplates = async function () {
"systems/bol/templates/actor/parts/tabs/vehicle-stats.hbs",
"systems/bol/templates/actor/parts/tabs/vehicle-description.hbs",
"systems/bol/templates/actor/parts/tabs/vehicle-weapons.hbs",
"systems/bol/templates/actor/parts/tabs/horde-description.hbs",
// ITEMS
"systems/bol/templates/item/parts/item-header.hbs",
"systems/bol/templates/item/parts/properties/feature-properties.hbs",

View File

@ -1 +1 @@
MANIFEST-000262
MANIFEST-000407

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.161260 7f78fa0006c0 Recovering log #259
2024/04/26-11:56:58.172348 7f78fa0006c0 Delete type=3 #257
2024/04/26-11:56:58.172412 7f78fa0006c0 Delete type=0 #259
2024/04/26-14:04:50.930192 7f78f90006c0 Level-0 table #265: started
2024/04/26-14:04:50.930219 7f78f90006c0 Level-0 table #265: 0 bytes OK
2024/04/26-14:04:50.936493 7f78f90006c0 Delete type=0 #263
2024/04/26-14:04:50.950259 7f78f90006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.950292 7f78f90006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.970077 7f25eea006c0 Recovering log #405
2024/09/12-22:38:53.982296 7f25eea006c0 Delete type=3 #403
2024/09/12-22:38:53.982396 7f25eea006c0 Delete type=0 #405
2024/09/12-22:42:42.719126 7f25eda006c0 Level-0 table #410: started
2024/09/12-22:42:42.719171 7f25eda006c0 Level-0 table #410: 0 bytes OK
2024/09/12-22:42:42.725570 7f25eda006c0 Delete type=0 #408
2024/09/12-22:42:42.725738 7f25eda006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.725784 7f25eda006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.083034 7f94642006c0 Recovering log #255
2024/04/19-08:19:44.095849 7f94642006c0 Delete type=3 #253
2024/04/19-08:19:44.095950 7f94642006c0 Delete type=0 #255
2024/04/19-08:30:00.016102 7f94632006c0 Level-0 table #260: started
2024/04/19-08:30:00.020232 7f94632006c0 Level-0 table #260: 27751 bytes OK
2024/04/19-08:30:00.027004 7f94632006c0 Delete type=0 #258
2024/04/19-08:30:00.027264 7f94632006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.049736 7f94632006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 159 : 1
2024/04/19-08:30:00.049751 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:30:00.054303 7f94632006c0 Generated table #261@1: 24 keys, 27751 bytes
2024/04/19-08:30:00.054348 7f94632006c0 Compacted 1@1 + 1@2 files => 27751 bytes
2024/04/19-08:30:00.060656 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:30:00.060882 7f94632006c0 Delete type=2 #204
2024/04/19-08:30:00.061163 7f94632006c0 Delete type=2 #260
2024/04/19-08:30:00.073152 7f94632006c0 Manual compaction at level-1 from '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 159 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.427852 7f25eea006c0 Recovering log #401
2024/09/12-09:45:32.437849 7f25eea006c0 Delete type=3 #399
2024/09/12-09:45:32.437908 7f25eea006c0 Delete type=0 #401
2024/09/12-09:50:36.103159 7f25eda006c0 Level-0 table #406: started
2024/09/12-09:50:36.103188 7f25eda006c0 Level-0 table #406: 0 bytes OK
2024/09/12-09:50:36.110495 7f25eda006c0 Delete type=0 #404
2024/09/12-09:50:36.110872 7f25eda006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.110976 7f25eda006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000168
MANIFEST-000313

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.134706 7f78fbe006c0 Recovering log #165
2024/04/26-11:56:58.144933 7f78fbe006c0 Delete type=3 #163
2024/04/26-11:56:58.145031 7f78fbe006c0 Delete type=0 #165
2024/04/26-14:04:50.923546 7f78f90006c0 Level-0 table #171: started
2024/04/26-14:04:50.923576 7f78f90006c0 Level-0 table #171: 0 bytes OK
2024/04/26-14:04:50.930043 7f78f90006c0 Delete type=0 #169
2024/04/26-14:04:50.950239 7f78f90006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.950346 7f78f90006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.934728 7f25f4c006c0 Recovering log #311
2024/09/12-22:38:53.947433 7f25f4c006c0 Delete type=3 #309
2024/09/12-22:38:53.947544 7f25f4c006c0 Delete type=0 #311
2024/09/12-22:42:42.699365 7f25eda006c0 Level-0 table #316: started
2024/09/12-22:42:42.699403 7f25eda006c0 Level-0 table #316: 0 bytes OK
2024/09/12-22:42:42.705522 7f25eda006c0 Delete type=0 #314
2024/09/12-22:42:42.725703 7f25eda006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.725745 7f25eda006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.050910 7f94656006c0 Recovering log #161
2024/04/19-08:19:44.062747 7f94656006c0 Delete type=3 #159
2024/04/19-08:19:44.062841 7f94656006c0 Delete type=0 #161
2024/04/19-08:29:59.998576 7f94632006c0 Level-0 table #166: started
2024/04/19-08:30:00.001989 7f94632006c0 Level-0 table #166: 5548 bytes OK
2024/04/19-08:30:00.008530 7f94632006c0 Delete type=0 #164
2024/04/19-08:30:00.027235 7f94632006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.038530 7f94632006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at '!items!xhEcsi3WHjbt2ro9' @ 18 : 1
2024/04/19-08:30:00.038547 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:30:00.042082 7f94632006c0 Generated table #167@1: 6 keys, 5548 bytes
2024/04/19-08:30:00.042108 7f94632006c0 Compacted 1@1 + 1@2 files => 5548 bytes
2024/04/19-08:30:00.048990 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:30:00.049179 7f94632006c0 Delete type=2 #110
2024/04/19-08:30:00.049479 7f94632006c0 Delete type=2 #166
2024/04/19-08:30:00.061357 7f94632006c0 Manual compaction at level-1 from '!items!xhEcsi3WHjbt2ro9' @ 18 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.401300 7f25efe006c0 Recovering log #307
2024/09/12-09:45:32.411529 7f25efe006c0 Delete type=3 #305
2024/09/12-09:45:32.411608 7f25efe006c0 Delete type=0 #307
2024/09/12-09:50:36.082865 7f25eda006c0 Level-0 table #312: started
2024/09/12-09:50:36.082893 7f25eda006c0 Level-0 table #312: 0 bytes OK
2024/09/12-09:50:36.090233 7f25eda006c0 Delete type=0 #310
2024/09/12-09:50:36.110780 7f25eda006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.110897 7f25eda006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/boons/000294.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000261
MANIFEST-000407

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.024961 7f78fbe006c0 Recovering log #258
2024/04/26-11:56:58.034823 7f78fbe006c0 Delete type=3 #256
2024/04/26-11:56:58.034882 7f78fbe006c0 Delete type=0 #258
2024/04/26-14:04:50.869646 7f78f90006c0 Level-0 table #264: started
2024/04/26-14:04:50.869694 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/04/26-14:04:50.876074 7f78f90006c0 Delete type=0 #262
2024/04/26-14:04:50.896825 7f78f90006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.896897 7f78f90006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.788249 7f25f4c006c0 Recovering log #405
2024/09/12-22:38:53.800311 7f25f4c006c0 Delete type=3 #403
2024/09/12-22:38:53.800582 7f25f4c006c0 Delete type=0 #405
2024/09/12-22:42:42.640434 7f25eda006c0 Level-0 table #410: started
2024/09/12-22:42:42.640516 7f25eda006c0 Level-0 table #410: 0 bytes OK
2024/09/12-22:42:42.647688 7f25eda006c0 Delete type=0 #408
2024/09/12-22:42:42.668731 7f25eda006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.668779 7f25eda006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:43.920264 7f94656006c0 Recovering log #254
2024/04/19-08:19:43.932138 7f94656006c0 Delete type=3 #252
2024/04/19-08:19:43.932303 7f94656006c0 Delete type=0 #254
2024/04/19-08:29:59.809068 7f94632006c0 Level-0 table #259: started
2024/04/19-08:29:59.813175 7f94632006c0 Level-0 table #259: 18151 bytes OK
2024/04/19-08:29:59.819452 7f94632006c0 Delete type=0 #257
2024/04/19-08:29:59.851866 7f94632006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/04/19-08:29:59.851973 7f94632006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at '!items!zgspy1QKaxdEetEw' @ 236 : 1
2024/04/19-08:29:59.851985 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:29:59.856258 7f94632006c0 Generated table #260@1: 59 keys, 18151 bytes
2024/04/19-08:29:59.856292 7f94632006c0 Compacted 1@1 + 1@2 files => 18151 bytes
2024/04/19-08:29:59.862772 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:29:59.862925 7f94632006c0 Delete type=2 #203
2024/04/19-08:29:59.863159 7f94632006c0 Delete type=2 #259
2024/04/19-08:29:59.896639 7f94632006c0 Manual compaction at level-1 from '!items!zgspy1QKaxdEetEw' @ 236 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.295259 7f25efe006c0 Recovering log #401
2024/09/12-09:45:32.306146 7f25efe006c0 Delete type=3 #399
2024/09/12-09:45:32.306221 7f25efe006c0 Delete type=0 #401
2024/09/12-09:50:36.045097 7f25eda006c0 Level-0 table #406: started
2024/09/12-09:50:36.045124 7f25eda006c0 Level-0 table #406: 0 bytes OK
2024/09/12-09:50:36.051371 7f25eda006c0 Delete type=0 #404
2024/09/12-09:50:36.057645 7f25eda006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.057725 7f25eda006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/boons/MANIFEST-000407 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000261
MANIFEST-000407

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.038384 7f78faa006c0 Recovering log #258
2024/04/26-11:56:58.049190 7f78faa006c0 Delete type=3 #256
2024/04/26-11:56:58.049324 7f78faa006c0 Delete type=0 #258
2024/04/26-14:04:50.890102 7f78f90006c0 Level-0 table #264: started
2024/04/26-14:04:50.890126 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/04/26-14:04:50.896657 7f78f90006c0 Delete type=0 #262
2024/04/26-14:04:50.896882 7f78f90006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.896947 7f78f90006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.805528 7f25ef4006c0 Recovering log #405
2024/09/12-22:38:53.816302 7f25ef4006c0 Delete type=3 #403
2024/09/12-22:38:53.816406 7f25ef4006c0 Delete type=0 #405
2024/09/12-22:42:42.654478 7f25eda006c0 Level-0 table #410: started
2024/09/12-22:42:42.654519 7f25eda006c0 Level-0 table #410: 0 bytes OK
2024/09/12-22:42:42.660807 7f25eda006c0 Delete type=0 #408
2024/09/12-22:42:42.668759 7f25eda006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.668796 7f25eda006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:43.937500 7f9464c006c0 Recovering log #254
2024/04/19-08:19:43.949011 7f9464c006c0 Delete type=3 #252
2024/04/19-08:19:43.949130 7f9464c006c0 Delete type=0 #254
2024/04/19-08:29:59.829996 7f94632006c0 Level-0 table #259: started
2024/04/19-08:29:59.833757 7f94632006c0 Level-0 table #259: 2399 bytes OK
2024/04/19-08:29:59.840517 7f94632006c0 Delete type=0 #257
2024/04/19-08:29:59.851922 7f94632006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/04/19-08:29:59.873788 7f94632006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at '!items!yofwG0YrsL902G77' @ 32 : 1
2024/04/19-08:29:59.873804 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:29:59.877246 7f94632006c0 Generated table #260@1: 8 keys, 2399 bytes
2024/04/19-08:29:59.877287 7f94632006c0 Compacted 1@1 + 1@2 files => 2399 bytes
2024/04/19-08:29:59.884259 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:29:59.884426 7f94632006c0 Delete type=2 #203
2024/04/19-08:29:59.884735 7f94632006c0 Delete type=2 #259
2024/04/19-08:29:59.896671 7f94632006c0 Manual compaction at level-1 from '!items!yofwG0YrsL902G77' @ 32 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.310129 7f25f4c006c0 Recovering log #401
2024/09/12-09:45:32.320731 7f25f4c006c0 Delete type=3 #399
2024/09/12-09:45:32.320830 7f25f4c006c0 Delete type=0 #401
2024/09/12-09:50:36.033550 7f25eda006c0 Level-0 table #406: started
2024/09/12-09:50:36.033588 7f25eda006c0 Level-0 table #406: 0 bytes OK
2024/09/12-09:50:36.039266 7f25eda006c0 Delete type=0 #404
2024/09/12-09:50:36.057599 7f25eda006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.057695 7f25eda006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/careers/000294.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000261
MANIFEST-000407

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.065626 7f78fb4006c0 Recovering log #258
2024/04/26-11:56:58.075327 7f78fb4006c0 Delete type=3 #256
2024/04/26-11:56:58.075454 7f78fb4006c0 Delete type=0 #258
2024/04/26-14:04:50.882862 7f78f90006c0 Level-0 table #264: started
2024/04/26-14:04:50.882919 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/04/26-14:04:50.889962 7f78f90006c0 Delete type=0 #262
2024/04/26-14:04:50.896865 7f78f90006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.896926 7f78f90006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.840310 7f25efe006c0 Recovering log #405
2024/09/12-22:38:53.852677 7f25efe006c0 Delete type=3 #403
2024/09/12-22:38:53.852769 7f25efe006c0 Delete type=0 #405
2024/09/12-22:42:42.660981 7f25eda006c0 Level-0 table #410: started
2024/09/12-22:42:42.661021 7f25eda006c0 Level-0 table #410: 0 bytes OK
2024/09/12-22:42:42.668582 7f25eda006c0 Delete type=0 #408
2024/09/12-22:42:42.668771 7f25eda006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.668804 7f25eda006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:43.969794 7f94660006c0 Recovering log #254
2024/04/19-08:19:43.980384 7f94660006c0 Delete type=3 #252
2024/04/19-08:19:43.980502 7f94660006c0 Delete type=0 #254
2024/04/19-08:29:59.840760 7f94632006c0 Level-0 table #259: started
2024/04/19-08:29:59.845225 7f94632006c0 Level-0 table #259: 41173 bytes OK
2024/04/19-08:29:59.851577 7f94632006c0 Delete type=0 #257
2024/04/19-08:29:59.851940 7f94632006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/04/19-08:29:59.884948 7f94632006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at '!items!zxY3sW0iCJBvwjOS' @ 107 : 1
2024/04/19-08:29:59.884972 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:29:59.889715 7f94632006c0 Generated table #260@1: 27 keys, 41173 bytes
2024/04/19-08:29:59.889752 7f94632006c0 Compacted 1@1 + 1@2 files => 41173 bytes
2024/04/19-08:29:59.896200 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:29:59.896338 7f94632006c0 Delete type=2 #203
2024/04/19-08:29:59.896535 7f94632006c0 Delete type=2 #259
2024/04/19-08:29:59.896685 7f94632006c0 Manual compaction at level-1 from '!items!zxY3sW0iCJBvwjOS' @ 107 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.336593 7f25ef4006c0 Recovering log #401
2024/09/12-09:45:32.347205 7f25ef4006c0 Delete type=3 #399
2024/09/12-09:45:32.347263 7f25ef4006c0 Delete type=0 #401
2024/09/12-09:50:36.039384 7f25eda006c0 Level-0 table #406: started
2024/09/12-09:50:36.039412 7f25eda006c0 Level-0 table #406: 0 bytes OK
2024/09/12-09:50:36.044990 7f25eda006c0 Delete type=0 #404
2024/09/12-09:50:36.057626 7f25eda006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.057710 7f25eda006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000259
MANIFEST-000283

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.176077 7f78fb4006c0 Recovering log #257
2024/04/26-11:56:58.186350 7f78fb4006c0 Delete type=3 #255
2024/04/26-11:56:58.186407 7f78fb4006c0 Delete type=0 #257
2024/04/26-14:04:50.943258 7f78f90006c0 Level-0 table #262: started
2024/04/26-14:04:50.943288 7f78f90006c0 Level-0 table #262: 0 bytes OK
2024/04/26-14:04:50.950031 7f78f90006c0 Delete type=0 #260
2024/04/26-14:04:50.950283 7f78f90006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.950309 7f78f90006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:33.833224 7fb8320006c0 Recovering log #281
2024/07/08-22:24:33.895807 7fb8320006c0 Delete type=3 #279
2024/07/08-22:24:33.895934 7fb8320006c0 Delete type=0 #281
2024/07/08-22:24:52.466387 7fb82be006c0 Level-0 table #286: started
2024/07/08-22:24:52.466440 7fb82be006c0 Level-0 table #286: 0 bytes OK
2024/07/08-22:24:52.472857 7fb82be006c0 Delete type=0 #284
2024/07/08-22:24:52.480332 7fb82be006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:52.480427 7fb82be006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/04/19-08:19:44.103925 7f94660006c0 Recovering log #253
2024/04/19-08:19:44.147003 7f94660006c0 Delete type=3 #251
2024/04/19-08:19:44.147169 7f94660006c0 Delete type=0 #253
2024/04/19-08:30:00.008693 7f94632006c0 Level-0 table #258: started
2024/04/19-08:30:00.008732 7f94632006c0 Level-0 table #258: 0 bytes OK
2024/04/19-08:30:00.015925 7f94632006c0 Delete type=0 #256
2024/04/19-08:30:00.027251 7f94632006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.049675 7f94632006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:22:58.298438 7fb832a006c0 Recovering log #277
2024/07/08-22:22:58.309146 7fb832a006c0 Delete type=3 #275
2024/07/08-22:22:58.309315 7fb832a006c0 Delete type=0 #277
2024/07/08-22:24:02.597516 7fb82be006c0 Level-0 table #282: started
2024/07/08-22:24:02.597563 7fb82be006c0 Level-0 table #282: 0 bytes OK
2024/07/08-22:24:02.685456 7fb82be006c0 Delete type=0 #280
2024/07/08-22:24:02.775806 7fb82be006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/07/08-22:24:02.775850 7fb82be006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000260
MANIFEST-000405

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.274057 7f78fbe006c0 Recovering log #257
2024/04/26-11:56:58.285249 7f78fbe006c0 Delete type=3 #255
2024/04/26-11:56:58.285383 7f78fbe006c0 Delete type=0 #257
2024/04/26-14:04:50.977171 7f78f90006c0 Level-0 table #263: started
2024/04/26-14:04:50.977197 7f78f90006c0 Level-0 table #263: 0 bytes OK
2024/04/26-14:04:50.984422 7f78f90006c0 Delete type=0 #261
2024/04/26-14:04:51.009734 7f78f90006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/04/26-14:04:51.009781 7f78f90006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/09/12-22:38:54.083170 7f25ef4006c0 Recovering log #403
2024/09/12-22:38:54.094709 7f25ef4006c0 Delete type=3 #401
2024/09/12-22:38:54.094800 7f25ef4006c0 Delete type=0 #403
2024/09/12-22:42:42.762852 7f25eda006c0 Level-0 table #408: started
2024/09/12-22:42:42.762884 7f25eda006c0 Level-0 table #408: 0 bytes OK
2024/09/12-22:42:42.770096 7f25eda006c0 Delete type=0 #406
2024/09/12-22:42:42.787677 7f25eda006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.787711 7f25eda006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.259456 7f94656006c0 Recovering log #253
2024/04/19-08:19:44.271045 7f94656006c0 Delete type=3 #251
2024/04/19-08:19:44.271171 7f94656006c0 Delete type=0 #253
2024/04/19-08:30:00.174557 7f94632006c0 Level-0 table #258: started
2024/04/19-08:30:00.178272 7f94632006c0 Level-0 table #258: 995 bytes OK
2024/04/19-08:30:00.184949 7f94632006c0 Delete type=0 #256
2024/04/19-08:30:00.196844 7f94632006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.219861 7f94632006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at '!items!zwSNMO9HpiqUCMt8' @ 12 : 1
2024/04/19-08:30:00.219880 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:30:00.223286 7f94632006c0 Generated table #259@1: 4 keys, 995 bytes
2024/04/19-08:30:00.223305 7f94632006c0 Compacted 1@1 + 1@2 files => 995 bytes
2024/04/19-08:30:00.230007 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:30:00.230147 7f94632006c0 Delete type=2 #202
2024/04/19-08:30:00.230383 7f94632006c0 Delete type=2 #258
2024/04/19-08:30:00.242012 7f94632006c0 Manual compaction at level-1 from '!items!zwSNMO9HpiqUCMt8' @ 12 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.520585 7f25f4c006c0 Recovering log #399
2024/09/12-09:45:32.540463 7f25f4c006c0 Delete type=3 #397
2024/09/12-09:45:32.540543 7f25f4c006c0 Delete type=0 #399
2024/09/12-09:50:36.138195 7f25eda006c0 Level-0 table #404: started
2024/09/12-09:50:36.138235 7f25eda006c0 Level-0 table #404: 0 bytes OK
2024/09/12-09:50:36.145251 7f25eda006c0 Delete type=0 #402
2024/09/12-09:50:36.168914 7f25eda006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.168987 7f25eda006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/equipment/000295.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000262
MANIFEST-000408

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.107651 7f78fa0006c0 Recovering log #259
2024/04/26-11:56:58.117467 7f78fa0006c0 Delete type=3 #257
2024/04/26-11:56:58.117610 7f78fa0006c0 Delete type=0 #259
2024/04/26-14:04:50.910072 7f78f90006c0 Level-0 table #265: started
2024/04/26-14:04:50.910098 7f78f90006c0 Level-0 table #265: 0 bytes OK
2024/04/26-14:04:50.916483 7f78f90006c0 Delete type=0 #263
2024/04/26-14:04:50.923413 7f78f90006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.923450 7f78f90006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.895694 7f25eea006c0 Recovering log #406
2024/09/12-22:38:53.908795 7f25eea006c0 Delete type=3 #404
2024/09/12-22:38:53.908936 7f25eea006c0 Delete type=0 #406
2024/09/12-22:42:42.683293 7f25eda006c0 Level-0 table #411: started
2024/09/12-22:42:42.683318 7f25eda006c0 Level-0 table #411: 0 bytes OK
2024/09/12-22:42:42.690892 7f25eda006c0 Delete type=0 #409
2024/09/12-22:42:42.699091 7f25eda006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.699149 7f25eda006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.019625 7f94642006c0 Recovering log #255
2024/04/19-08:19:44.030373 7f94642006c0 Delete type=3 #253
2024/04/19-08:19:44.030526 7f94642006c0 Delete type=0 #255
2024/04/19-08:29:59.918387 7f94632006c0 Level-0 table #260: started
2024/04/19-08:29:59.922021 7f94632006c0 Level-0 table #260: 11238 bytes OK
2024/04/19-08:29:59.928489 7f94632006c0 Delete type=0 #258
2024/04/19-08:29:59.940377 7f94632006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/04/19-08:29:59.962979 7f94632006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at '!items!yE8UH6YAgNGjKDEu' @ 327 : 1
2024/04/19-08:29:59.962990 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:29:59.966809 7f94632006c0 Generated table #261@1: 43 keys, 11238 bytes
2024/04/19-08:29:59.966843 7f94632006c0 Compacted 1@1 + 1@2 files => 11238 bytes
2024/04/19-08:29:59.974600 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:29:59.974784 7f94632006c0 Delete type=2 #204
2024/04/19-08:29:59.975112 7f94632006c0 Delete type=2 #260
2024/04/19-08:29:59.986927 7f94632006c0 Manual compaction at level-1 from '!items!yE8UH6YAgNGjKDEu' @ 327 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.374751 7f25eea006c0 Recovering log #402
2024/09/12-09:45:32.385764 7f25eea006c0 Delete type=3 #400
2024/09/12-09:45:32.385832 7f25eea006c0 Delete type=0 #402
2024/09/12-09:50:36.070382 7f25eda006c0 Level-0 table #407: started
2024/09/12-09:50:36.070408 7f25eda006c0 Level-0 table #407: 0 bytes OK
2024/09/12-09:50:36.076675 7f25eda006c0 Delete type=0 #405
2024/09/12-09:50:36.082735 7f25eda006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.082778 7f25eda006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000260
MANIFEST-000406

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.234275 7f78faa006c0 Recovering log #257
2024/04/26-11:56:58.244632 7f78faa006c0 Delete type=3 #255
2024/04/26-11:56:58.244781 7f78faa006c0 Delete type=0 #257
2024/04/26-14:04:50.963407 7f78f90006c0 Level-0 table #263: started
2024/04/26-14:04:50.963434 7f78f90006c0 Level-0 table #263: 0 bytes OK
2024/04/26-14:04:50.970529 7f78f90006c0 Delete type=0 #261
2024/04/26-14:04:50.977009 7f78f90006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.977040 7f78f90006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/09/12-22:38:54.031920 7f25eea006c0 Recovering log #404
2024/09/12-22:38:54.043861 7f25eea006c0 Delete type=3 #402
2024/09/12-22:38:54.043960 7f25eea006c0 Delete type=0 #404
2024/09/12-22:42:42.725865 7f25eda006c0 Level-0 table #409: started
2024/09/12-22:42:42.725943 7f25eda006c0 Level-0 table #409: 0 bytes OK
2024/09/12-22:42:42.732569 7f25eda006c0 Delete type=0 #407
2024/09/12-22:42:42.755541 7f25eda006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.755597 7f25eda006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.212596 7f9464c006c0 Recovering log #253
2024/04/19-08:19:44.224303 7f9464c006c0 Delete type=3 #251
2024/04/19-08:19:44.224391 7f9464c006c0 Delete type=0 #253
2024/04/19-08:30:00.095765 7f94632006c0 Level-0 table #258: started
2024/04/19-08:30:00.099582 7f94632006c0 Level-0 table #258: 15776 bytes OK
2024/04/19-08:30:00.107187 7f94632006c0 Delete type=0 #256
2024/04/19-08:30:00.118151 7f94632006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.140008 7f94632006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at '!items!vGydqADwTsHZ9B3j' @ 90 : 1
2024/04/19-08:30:00.140020 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:30:00.144757 7f94632006c0 Generated table #259@1: 30 keys, 15776 bytes
2024/04/19-08:30:00.144786 7f94632006c0 Compacted 1@1 + 1@2 files => 15776 bytes
2024/04/19-08:30:00.151053 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:30:00.151191 7f94632006c0 Delete type=2 #202
2024/04/19-08:30:00.151438 7f94632006c0 Delete type=2 #258
2024/04/19-08:30:00.163491 7f94632006c0 Manual compaction at level-1 from '!items!vGydqADwTsHZ9B3j' @ 90 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.480766 7f25eea006c0 Recovering log #400
2024/09/12-09:45:32.491410 7f25eea006c0 Delete type=3 #398
2024/09/12-09:45:32.491468 7f25eea006c0 Delete type=0 #400
2024/09/12-09:50:36.125141 7f25eda006c0 Level-0 table #405: started
2024/09/12-09:50:36.125172 7f25eda006c0 Level-0 table #405: 0 bytes OK
2024/09/12-09:50:36.131301 7f25eda006c0 Delete type=0 #403
2024/09/12-09:50:36.138040 7f25eda006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.138089 7f25eda006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/flaws/000294.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000261
MANIFEST-000407

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.051636 7f78fa0006c0 Recovering log #258
2024/04/26-11:56:58.062318 7f78fa0006c0 Delete type=3 #256
2024/04/26-11:56:58.062380 7f78fa0006c0 Delete type=0 #258
2024/04/26-14:04:50.876162 7f78f90006c0 Level-0 table #264: started
2024/04/26-14:04:50.876184 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/04/26-14:04:50.882655 7f78f90006c0 Delete type=0 #262
2024/04/26-14:04:50.896848 7f78f90006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.896911 7f78f90006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/09/12-22:38:53.822337 7f25eea006c0 Recovering log #405
2024/09/12-22:38:53.834024 7f25eea006c0 Delete type=3 #403
2024/09/12-22:38:53.834127 7f25eea006c0 Delete type=0 #405
2024/09/12-22:42:42.647837 7f25eda006c0 Level-0 table #410: started
2024/09/12-22:42:42.647866 7f25eda006c0 Level-0 table #410: 0 bytes OK
2024/09/12-22:42:42.654251 7f25eda006c0 Delete type=0 #408
2024/09/12-22:42:42.668747 7f25eda006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.668788 7f25eda006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:43.953346 7f94642006c0 Recovering log #254
2024/04/19-08:19:43.965323 7f94642006c0 Delete type=3 #252
2024/04/19-08:19:43.965489 7f94642006c0 Delete type=0 #254
2024/04/19-08:29:59.819633 7f94632006c0 Level-0 table #259: started
2024/04/19-08:29:59.823376 7f94632006c0 Level-0 table #259: 14380 bytes OK
2024/04/19-08:29:59.829694 7f94632006c0 Delete type=0 #257
2024/04/19-08:29:59.851902 7f94632006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/04/19-08:29:59.863264 7f94632006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at '!items!znd0K3b7HzYpdehs' @ 172 : 1
2024/04/19-08:29:59.863275 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:29:59.867164 7f94632006c0 Generated table #260@1: 43 keys, 14380 bytes
2024/04/19-08:29:59.867194 7f94632006c0 Compacted 1@1 + 1@2 files => 14380 bytes
2024/04/19-08:29:59.873334 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:29:59.873477 7f94632006c0 Delete type=2 #203
2024/04/19-08:29:59.873667 7f94632006c0 Delete type=2 #259
2024/04/19-08:29:59.896655 7f94632006c0 Manual compaction at level-1 from '!items!znd0K3b7HzYpdehs' @ 172 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.323588 7f25eea006c0 Recovering log #401
2024/09/12-09:45:32.333402 7f25eea006c0 Delete type=3 #399
2024/09/12-09:45:32.333463 7f25eea006c0 Delete type=0 #401
2024/09/12-09:50:36.051466 7f25eda006c0 Level-0 table #406: started
2024/09/12-09:50:36.051494 7f25eda006c0 Level-0 table #406: 0 bytes OK
2024/09/12-09:50:36.057426 7f25eda006c0 Delete type=0 #404
2024/09/12-09:50:36.057676 7f25eda006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.057748 7f25eda006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/flaws/MANIFEST-000407 Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000261
MANIFEST-000406

View File

@ -1,8 +1,8 @@
2024/04/26-11:56:58.219946 7f78fbe006c0 Recovering log #258
2024/04/26-11:56:58.229622 7f78fbe006c0 Delete type=3 #256
2024/04/26-11:56:58.229671 7f78fbe006c0 Delete type=0 #258
2024/04/26-14:04:50.970663 7f78f90006c0 Level-0 table #264: started
2024/04/26-14:04:50.970690 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/04/26-14:04:50.976847 7f78f90006c0 Delete type=0 #262
2024/04/26-14:04:50.977019 7f78f90006c0 Manual compaction at level-0 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/04/26-14:04:50.977047 7f78f90006c0 Manual compaction at level-1 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/09/12-22:38:54.016789 7f25ef4006c0 Recovering log #404
2024/09/12-22:38:54.027333 7f25ef4006c0 Delete type=3 #402
2024/09/12-22:38:54.027408 7f25ef4006c0 Delete type=0 #404
2024/09/12-22:42:42.739228 7f25eda006c0 Level-0 table #409: started
2024/09/12-22:42:42.739256 7f25eda006c0 Level-0 table #409: 0 bytes OK
2024/09/12-22:42:42.746973 7f25eda006c0 Delete type=0 #407
2024/09/12-22:42:42.755575 7f25eda006c0 Manual compaction at level-0 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/09/12-22:42:42.755615 7f25eda006c0 Manual compaction at level-1 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/04/19-08:19:44.196831 7f94656006c0 Recovering log #254
2024/04/19-08:19:44.207201 7f94656006c0 Delete type=3 #252
2024/04/19-08:19:44.207282 7f94656006c0 Delete type=0 #254
2024/04/19-08:30:00.084142 7f94632006c0 Level-0 table #259: started
2024/04/19-08:30:00.088785 7f94632006c0 Level-0 table #259: 5072 bytes OK
2024/04/19-08:30:00.095350 7f94632006c0 Delete type=0 #257
2024/04/19-08:30:00.107427 7f94632006c0 Manual compaction at level-0 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/04/19-08:30:00.129060 7f94632006c0 Manual compaction at level-1 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at '!items!xR5KdgOQucELl1sn' @ 96 : 1
2024/04/19-08:30:00.129071 7f94632006c0 Compacting 1@1 + 1@2 files
2024/04/19-08:30:00.132911 7f94632006c0 Generated table #260@1: 24 keys, 5072 bytes
2024/04/19-08:30:00.132941 7f94632006c0 Compacted 1@1 + 1@2 files => 5072 bytes
2024/04/19-08:30:00.139541 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/19-08:30:00.139673 7f94632006c0 Delete type=2 #203
2024/04/19-08:30:00.139870 7f94632006c0 Delete type=2 #259
2024/04/19-08:30:00.151590 7f94632006c0 Manual compaction at level-1 from '!items!xR5KdgOQucELl1sn' @ 96 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/09/12-09:45:32.468046 7f25f4c006c0 Recovering log #400
2024/09/12-09:45:32.478034 7f25f4c006c0 Delete type=3 #398
2024/09/12-09:45:32.478157 7f25f4c006c0 Delete type=0 #400
2024/09/12-09:50:36.111137 7f25eda006c0 Level-0 table #405: started
2024/09/12-09:50:36.111276 7f25eda006c0 Level-0 table #405: 0 bytes OK
2024/09/12-09:50:36.117475 7f25eda006c0 Delete type=0 #403
2024/09/12-09:50:36.138013 7f25eda006c0 Manual compaction at level-0 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)
2024/09/12-09:50:36.138061 7f25eda006c0 Manual compaction at level-1 from '!items!1wKT8PUphVwAprIp' @ 72057594037927935 : 1 .. '!items!xR5KdgOQucELl1sn' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/languages/000294.ldb Normal file

Binary file not shown.

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