Ajout/upgrade des arts obscurs

This commit is contained in:
2025-08-11 22:53:23 +02:00
parent 51a457ebf6
commit adc912e6cd
84 changed files with 3291 additions and 1745 deletions

View File

@@ -38,14 +38,15 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)), effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.getSkills(), skills: this.actor.getSkills(),
utileSkillsMental :this.actor.organizeUtileSkills("mental"), utileSkillsMental: this.actor.organizeUtileSkills("mental"),
utileSkillsPhysical :this.actor.organizeUtileSkills("physical"), utileSkillsPhysical: this.actor.organizeUtileSkills("physical"),
futileSkills :this.actor.organizeFutileSkills(), competencesMagie: HeritiersUtility.getCompetencesMagie(),
futileSkills: this.actor.organizeFutileSkills(),
contacts: this.actor.organizeContacts(), contacts: this.actor.organizeContacts(),
armes: foundry.utils.duplicate(this.actor.getWeapons()), armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()), monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()), pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
fee: foundry.utils.duplicate(this.actor.getFee() || {} ), fee: foundry.utils.duplicate(this.actor.getFee() || {}),
protections: foundry.utils.duplicate(this.actor.getArmors()), protections: foundry.utils.duplicate(this.actor.getArmors()),
combat: this.actor.getCombatValues(), combat: this.actor.getCombatValues(),
equipements: foundry.utils.duplicate(this.actor.getEquipments()), equipements: foundry.utils.duplicate(this.actor.getEquipments()),
@@ -57,12 +58,12 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
pvMalus: this.actor.getPvMalus(), pvMalus: this.actor.getPvMalus(),
heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"), heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
initiative: this.actor.getFlag("world", "last-initiative") || -1, initiative: this.actor.getFlag("world", "last-initiative") || -1,
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}), description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }),
revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, {async: true}), revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, { async: true }),
secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}), secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, { async: true }),
questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, {async: true}), questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, { async: true }),
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}), habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, { async: true }),
playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, {async: true}), playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, { async: true }),
magieList: this.actor.prepareMagie(), magieList: this.actor.prepareMagie(),
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
@@ -126,7 +127,7 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
html.find('.item-edit').click(ev => { html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item") const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id") let itemId = li.data("item-id")
const item = this.actor.items.get( itemId ) const item = this.actor.items.get(itemId)
item.sheet.render(true) item.sheet.render(true)
}) })
// Delete Inventory Item // Delete Inventory Item
@@ -136,8 +137,8 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
}) })
html.find('.edit-item-data').change(ev => { html.find('.edit-item-data').change(ev => {
const li = $(ev.currentTarget).parents(".item") const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id") let itemId = li.data("item-id")
let itemType = li.data("item-type") let itemType = li.data("item-type")
let itemField = $(ev.currentTarget).data("item-field") let itemField = $(ev.currentTarget).data("item-field")
let dataType = $(ev.currentTarget).data("dtype") let dataType = $(ev.currentTarget).data("dtype")
let value = ev.currentTarget.value let value = ev.currentTarget.value
@@ -154,7 +155,7 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
html.find('.quantity-modify').click(event => { html.find('.quantity-modify').click(event => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
const value = Number($(event.currentTarget).data("quantite-value")) const value = Number($(event.currentTarget).data("quantite-value"))
this.actor.incDecQuantity( li.data("item-id"), value ); this.actor.incDecQuantity(li.data("item-id"), value);
}) })
html.find('.roll-initiative').click((event) => { html.find('.roll-initiative').click((event) => {
@@ -175,32 +176,32 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
}) })
html.find('.roll-competence').click((event) => { html.find('.roll-competence').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let compId = li.data("item-id") let compId = li.data("item-id")
this.actor.rollCompetence(compId) this.actor.rollCompetence(compId)
}) })
html.find('.roll-sort').click((event) => { html.find('.roll-sort').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let sortId = li.data("item-id") let sortId = li.data("item-id")
this.actor.rollSort(sortId) this.actor.rollSort(sortId)
}) })
html.find('.roll-attaque-arme').click((event) => { html.find('.roll-attaque-arme').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollAttaqueArme(armeId) this.actor.rollAttaqueArme(armeId)
}) })
html.find('.roll-attaque-brutale-arme').click((event) => { html.find('.roll-attaque-brutale-arme').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollAttaqueBrutaleArme(armeId) this.actor.rollAttaqueBrutaleArme(armeId)
}) })
html.find('.roll-attaque-charge-arme').click((event) => { html.find('.roll-attaque-charge-arme').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollAttaqueChargeArme(armeId) this.actor.rollAttaqueChargeArme(armeId)
}) })
html.find('.roll-assomer-arme').click((event) => { html.find('.roll-assomer-arme').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollAssomerArme(armeId) this.actor.rollAssomerArme(armeId)
}) })
@@ -215,6 +216,14 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
html.find('.item-add').click((event) => { html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type") const itemType = $(event.currentTarget).data("type")
if (itemType == "sort") {
// Get data-sort-competence
let sortCompetence = $(event.currentTarget).data("sort-competence");
if (sortCompetence) {
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType} de ${sortCompetence}`, type: itemType, system: { competence: sortCompetence } }], { renderSheet: true })
return
}
}
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true }) this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
}) })
@@ -224,7 +233,7 @@ export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
}); });
html.find('.item-equip').click(ev => { html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item"); const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") ); this.actor.equipItem(li.data("item-id"));
this.render(true); this.render(true);
}); });

View File

@@ -17,8 +17,8 @@ export class HeritiersActor extends Actor {
/** /**
* Override the create() function to provide additional SoS functionality. * Override the create() function to provide additional SoS functionality.
* *
* This overrided create() function adds initial items * This overrided create() function adds initial items
* Namely: Basic skills, money, * Namely: Basic skills, money,
* *
* @param {Object} data Barebones actor data which this function adds onto. * @param {Object} data Barebones actor data which this function adds onto.
* @param {Object} options (Unused) Additional options which customize the creation workflow. * @param {Object} options (Unused) Additional options which customize the creation workflow.
@@ -203,6 +203,28 @@ export class HeritiersActor extends Actor {
item.specList = specList.toString() item.specList = specList.toString()
} }
/* -------------------------------------------- */
organizeMagicSkills() {
let comp = {}
for (let key in game.system.lesheritiers.config.competenceProfil) {
if (game.system.lesheritiers.config.competenceProfil[key].kind == "magical")
comp[key] = { skills: [], niveau: 0 }
}
for (let item of this.items) {
if (item.type == "competence") {
if (item.system.categorie == "utile" && comp[item.system.profil]) {
this.prepareUtileSkill(item)
comp[item.system.profil].skills.push(item)
}
}
}
for (let key in comp) {
HeritiersUtility.sortArrayObjectsByName(comp[key].skills)
}
return Object.fromEntries(Object.entries(comp).sort())
}
/* -------------------------------------------- */ /* -------------------------------------------- */
organizeUtileSkills(kind = "mental") { organizeUtileSkills(kind = "mental") {
let comp = {} let comp = {}
@@ -224,6 +246,7 @@ export class HeritiersActor extends Actor {
} }
return Object.fromEntries(Object.entries(comp).sort()) return Object.fromEntries(Object.entries(comp).sort())
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
organizeContacts() { organizeContacts() {
let contactList = {} let contactList = {}
@@ -301,7 +324,7 @@ export class HeritiersActor extends Actor {
this.update({ 'system.magie.pointsame.max': pointsAmes }) this.update({ 'system.magie.pointsame.max': pointsAmes })
} }
} }
super.prepareData(); super.prepareData();
} }
@@ -687,7 +710,7 @@ export class HeritiersActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollSort(sortId) { async rollSort(sortId) {
let sort = this.items.get(sortId) let sort = this.items.get(sortId)
let comp = this.items.find(it => it.type =="competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase()) let comp = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase())
if (!comp) { if (!comp) {
ui.notifications.warn("Compétence de magie associée non trouvée !") ui.notifications.warn("Compétence de magie associée non trouvée !")
return return
@@ -698,12 +721,21 @@ export class HeritiersActor extends Actor {
rollData.sort = foundry.utils.duplicate(sort) rollData.sort = foundry.utils.duplicate(sort)
rollData.sdValue = HeritiersUtility.getSDSortValue(sort.system.niveau) rollData.sdValue = HeritiersUtility.getSDSortValue(sort.system.niveau)
rollData.sortPointsAme = sort.system.niveau rollData.sortPointsAme = sort.system.niveau
rollData.caracKey = sort.system.carac if (sort.system.carac2 != "none") {
// get the best carac between carac1 and carac2
if (this.system.caracteristiques[sort.system.carac1].value > this.system.caracteristiques[sort.system.carac2].value) {
rollData.caracKey = sort.system.carac1
} else {
rollData.caracKey = sort.system.carac2
}
rollData.caracMessage = "Ce sort peut être lancé avec " + game.system.lesheritiers.config.caracList[sort.system.carac1] + " ou " + game.system.lesheritiers.config.caracList[sort.system.carac2] + ". La meilleure caractéristique a été selectionnée."
}
console.log("RollData", rollData) console.log("RollData", rollData)
let rollDialog = await HeritiersRollDialog.create(this, rollData) let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true) rollDialog.render(true)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollAttaqueArme(armeId) { async rollAttaqueArme(armeId) {
let arme = this.items.get(armeId) let arme = this.items.get(armeId)

View File

@@ -107,10 +107,10 @@ Hooks.once("ready", function () {
}); });
} }
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{ import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
console.log("ClassCounter loaded", moduleCounter) console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount() moduleCounter.ClassCounter.registerUsageCount()
}).catch(err=> }).catch(err =>
console.log("No stats available, giving up.") console.log("No stats available, giving up.")
) )
welcomeMessage(); welcomeMessage();

View File

@@ -26,7 +26,7 @@ const __facesAdjacentes = {
10: [8, 4, 3, 7] 10: [8, 4, 3, 7]
}, },
"d12": { "d12": {
1:[2, 3, 4, 5, 6], 1: [2, 3, 4, 5, 6],
2: [1, 6, 8, 12, 3], 2: [1, 6, 8, 12, 3],
3: [1, 4, 11, 12, 2], 3: [1, 4, 11, 12, 2],
4: [1, 5, 10, 11, 3], 4: [1, 5, 10, 11, 3],
@@ -164,7 +164,7 @@ export class HeritiersUtility {
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "heritiers-roll") let rollData = message.getFlag("world", "heritiers-roll")
let actor = this.getActorFromRollData(rollData) let actor = this.getActorFromRollData(rollData)
if ( await actor.incDecTricherie(-2) ) { if (await actor.incDecTricherie(-2)) {
rollData.forcedValue = Number($(event.currentTarget).data("dice-value")) rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
HeritiersUtility.rollHeritiers(rollData) HeritiersUtility.rollHeritiers(rollData)
} }
@@ -404,7 +404,7 @@ export class HeritiersUtility {
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
} }
} }
if ( !rollData.forcedValue) { if (!rollData.forcedValue) {
rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue]) rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
} }
} }
@@ -485,7 +485,7 @@ export class HeritiersUtility {
let actor = this.getActorFromRollData(rollData) let actor = this.getActorFromRollData(rollData)
if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) { if (rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.") ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
return return
} }
@@ -550,7 +550,7 @@ export class HeritiersUtility {
} }
} }
if ( !rollData.noRoll) { if (!rollData.noRoll) {
let myRoll = await new Roll(rollData.diceFormula).roll() let myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = foundry.utils.duplicate(myRoll) rollData.roll = foundry.utils.duplicate(myRoll)
@@ -846,4 +846,56 @@ export class HeritiersUtility {
d.render(true); d.render(true);
} }
static loadSort() {
// Create afolder in the item directory if it doesn't exist
if (!game.folders.getName("Magie du Clan")) {
Folder.create({
name: "Magie du Clan",
type: "Item",
color: "#3b1361"
});
}
// Load the srcdata/sorts-druidisme.json file
return fetch("systems/fvtt-les-heritiers/srcdata/sort_magieduclan.json")
.then(response => response.json())
.then(data => {
console.log("Sorts Magie du Clan loaded:", data);
this.sortDruidisme = data;
// Loop through the spell and create the "sort "item based on the JSON content
data.forEach(spell => {
spell.name = spell.name;
spell.type = "sort";
spell.system = {
niveau: spell.niveau,
competence: spell.competence,
carac1: spell.carac1,
carac2: spell.carac2,
description: spell.description,
ingredients: spell.ingredients,
portee: spell.portee,
duree: spell.duree,
concentration: spell.concentration,
critique: spell.critique,
resistance: spell.resistance,
coutactivation: spell.coutactivation
};
spell.img = "systems/fvtt-les-heritiers/assets/icons/sort.webp";
spell.folder = game.folders.getName("Magie du Clan").id;
// Create the item in the world
Item.create(spell)
.then(item => {
console.log("Sort created:", item);
})
.catch(error => {
console.error("Error creating sort item:", error);
});
})
})
.catch(error => {
console.error("Error loading druidism spells:", error);
return [];
});
}
} }

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.578482 7f4168bf96c0 Recovering log #173 2025/08/11-22:51:18.392137 7f12ef7fe6c0 Recovering log #202
2025/05/02-08:12:38.589780 7f4168bf96c0 Delete type=3 #171 2025/08/11-22:51:18.402831 7f12ef7fe6c0 Delete type=3 #200
2025/05/02-08:12:38.589884 7f4168bf96c0 Delete type=0 #173 2025/08/11-22:51:18.403033 7f12ef7fe6c0 Delete type=0 #202
2025/05/02-08:32:33.547850 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.281449 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.552846 7f4162bff6c0 Level-0 table #178: 76976 bytes OK 2025/08/11-22:52:41.281484 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.560090 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.288560 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.575866 7f4162bff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.294969 7f12edffb6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.601802 7f4162bff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at '!items!y1yOenfAJTsb3r6e' @ 93 : 1 2025/08/11-22:52:41.295038 7f12edffb6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.601825 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.607383 7f4162bff6c0 Generated table #179@1: 31 keys, 76976 bytes
2025/05/02-08:32:33.607418 7f4162bff6c0 Compacted 1@1 + 1@2 files => 76976 bytes
2025/05/02-08:32:33.613654 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.613823 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.614198 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.630595 7f4162bff6c0 Manual compaction at level-1 from '!items!y1yOenfAJTsb3r6e' @ 93 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.433551 7f1d08bf96c0 Recovering log #169 2025/08/11-21:34:20.213810 7f12eeffd6c0 Recovering log #198
2024/11/17-22:48:43.443811 7f1d08bf96c0 Delete type=3 #167 2025/08/11-21:34:20.256044 7f12eeffd6c0 Delete type=3 #196
2024/11/17-22:48:43.443896 7f1d08bf96c0 Delete type=0 #169 2025/08/11-21:34:20.256149 7f12eeffd6c0 Delete type=0 #198
2024/11/17-22:50:28.249266 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.095390 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.249291 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.095416 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.255594 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.101419 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.274735 7f1d027ff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115257 7f12edffb6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.274768 7f1d027ff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115306 7f12edffb6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.625683 7f41693fa6c0 Recovering log #173 2025/08/11-22:51:18.427459 7f12effff6c0 Recovering log #202
2025/05/02-08:12:38.636729 7f41693fa6c0 Delete type=3 #171 2025/08/11-22:51:18.437741 7f12effff6c0 Delete type=3 #200
2025/05/02-08:12:38.636867 7f41693fa6c0 Delete type=0 #173 2025/08/11-22:51:18.437824 7f12effff6c0 Delete type=0 #202
2025/05/02-08:32:33.536656 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.295170 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.540777 7f4162bff6c0 Level-0 table #178: 18161 bytes OK 2025/08/11-22:52:41.295253 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.547563 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.301406 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.575848 7f4162bff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.321176 7f12edffb6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.589023 7f4162bff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at '!items!zbsVCsWxRzkzzG1N' @ 216 : 1 2025/08/11-22:52:41.321242 7f12edffb6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.589042 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.593271 7f4162bff6c0 Generated table #179@1: 72 keys, 18161 bytes
2025/05/02-08:32:33.593306 7f4162bff6c0 Compacted 1@1 + 1@2 files => 18161 bytes
2025/05/02-08:32:33.600921 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.601153 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.601536 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.630581 7f4162bff6c0 Manual compaction at level-1 from '!items!zbsVCsWxRzkzzG1N' @ 216 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.459868 7f1d093fa6c0 Recovering log #169 2025/08/11-21:34:20.321725 7f12ee7fc6c0 Recovering log #198
2024/11/17-22:48:43.470425 7f1d093fa6c0 Delete type=3 #167 2025/08/11-21:34:20.374068 7f12ee7fc6c0 Delete type=3 #196
2024/11/17-22:48:43.470517 7f1d093fa6c0 Delete type=0 #169 2025/08/11-21:34:20.374213 7f12ee7fc6c0 Delete type=0 #198
2024/11/17-22:50:28.262661 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.133789 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.262685 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.133823 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.268581 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.139874 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.274758 7f1d027ff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.147851 7f12edffb6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.274792 7f1d027ff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.158002 7f12edffb6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.561663 7f41637fe6c0 Recovering log #173 2025/08/11-22:51:18.358721 7f12eeffd6c0 Recovering log #202
2025/05/02-08:12:38.572350 7f41637fe6c0 Delete type=3 #171 2025/08/11-22:51:18.370416 7f12eeffd6c0 Delete type=3 #200
2025/05/02-08:12:38.572464 7f41637fe6c0 Delete type=0 #173 2025/08/11-22:51:18.370477 7f12eeffd6c0 Delete type=0 #202
2025/05/02-08:32:33.524401 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.264660 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.529756 7f4162bff6c0 Level-0 table #178: 61883 bytes OK 2025/08/11-22:52:41.264688 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.536322 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.270787 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.575825 7f4162bff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.294911 7f12edffb6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.575912 7f4162bff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at '!items!zvtBlG6KCIn0oCVk' @ 459 : 1 2025/08/11-22:52:41.295015 7f12edffb6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.575922 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.581216 7f4162bff6c0 Generated table #179@1: 153 keys, 61883 bytes
2025/05/02-08:32:33.581273 7f4162bff6c0 Compacted 1@1 + 1@2 files => 61883 bytes
2025/05/02-08:32:33.588098 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.588368 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.588802 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.630551 7f4162bff6c0 Manual compaction at level-1 from '!items!zvtBlG6KCIn0oCVk' @ 459 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.420896 7f1d03fff6c0 Recovering log #169 2025/08/11-21:34:20.151917 7f12ee7fc6c0 Recovering log #198
2024/11/17-22:48:43.431112 7f1d03fff6c0 Delete type=3 #167 2025/08/11-21:34:20.210898 7f12ee7fc6c0 Delete type=3 #196
2024/11/17-22:48:43.431187 7f1d03fff6c0 Delete type=0 #169 2025/08/11-21:34:20.211020 7f12ee7fc6c0 Delete type=0 #198
2024/11/17-22:50:28.236628 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.101600 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.236663 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.101658 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.242846 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.109108 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.249127 7f1d027ff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115273 7f12edffb6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.249160 7f1d027ff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115320 7f12edffb6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.502811 7f41637fe6c0 Recovering log #173 2025/08/11-22:51:18.304943 7f12ef7fe6c0 Recovering log #202
2025/05/02-08:12:38.513277 7f41637fe6c0 Delete type=3 #171 2025/08/11-22:51:18.317352 7f12ef7fe6c0 Delete type=3 #200
2025/05/02-08:12:38.513388 7f41637fe6c0 Delete type=0 #173 2025/08/11-22:51:18.317883 7f12ef7fe6c0 Delete type=0 #202
2025/05/02-08:32:33.465976 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.257402 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.470234 7f4162bff6c0 Level-0 table #178: 27421 bytes OK 2025/08/11-22:52:41.257472 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.477187 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.264373 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.477436 7f4162bff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.264537 7f12edffb6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.512028 7f4162bff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at '!items!zfpjROW9LDAlXUkN' @ 189 : 1 2025/08/11-22:52:41.264567 7f12edffb6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.512048 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.516387 7f4162bff6c0 Generated table #179@1: 63 keys, 27421 bytes
2025/05/02-08:32:33.516430 7f4162bff6c0 Compacted 1@1 + 1@2 files => 27421 bytes
2025/05/02-08:32:33.523531 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.523711 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.523938 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.524156 7f4162bff6c0 Manual compaction at level-1 from '!items!zfpjROW9LDAlXUkN' @ 189 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.382022 7f1d08bf96c0 Recovering log #169 2025/08/11-21:34:19.962488 7f12ee7fc6c0 Recovering log #198
2024/11/17-22:48:43.392929 7f1d08bf96c0 Delete type=3 #167 2025/08/11-21:34:20.014408 7f12ee7fc6c0 Delete type=3 #196
2024/11/17-22:48:43.392989 7f1d08bf96c0 Delete type=0 #169 2025/08/11-21:34:20.014461 7f12ee7fc6c0 Delete type=0 #198
2024/11/17-22:50:28.229453 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.055412 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.229478 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.055458 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.236445 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.062106 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.249116 7f1d027ff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085428 7f12edffb6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.249151 7f1d027ff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085469 7f12edffb6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.545135 7f4163fff6c0 Recovering log #173 2025/08/11-22:51:18.341321 7f12ee7fc6c0 Recovering log #202
2025/05/02-08:12:38.556273 7f4163fff6c0 Delete type=3 #171 2025/08/11-22:51:18.354195 7f12ee7fc6c0 Delete type=3 #200
2025/05/02-08:12:38.556450 7f4163fff6c0 Delete type=0 #173 2025/08/11-22:51:18.354810 7f12ee7fc6c0 Delete type=0 #202
2025/05/02-08:32:33.455447 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.237394 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.459276 7f4162bff6c0 Level-0 table #178: 24174 bytes OK 2025/08/11-22:52:41.237434 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.465795 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.243722 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.477419 7f4162bff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.264503 7f12edffb6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.500781 7f4162bff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at '!items!yWDg2KlXEz33TSmZ' @ 108 : 1 2025/08/11-22:52:41.264544 7f12edffb6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.500794 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.504939 7f4162bff6c0 Generated table #179@1: 36 keys, 24174 bytes
2025/05/02-08:32:33.504980 7f4162bff6c0 Compacted 1@1 + 1@2 files => 24174 bytes
2025/05/02-08:32:33.511393 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.511579 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.511848 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.524138 7f4162bff6c0 Manual compaction at level-1 from '!items!yWDg2KlXEz33TSmZ' @ 108 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.408818 7f1d093fa6c0 Recovering log #169 2025/08/11-21:34:20.096085 7f12effff6c0 Recovering log #198
2024/11/17-22:48:43.418583 7f1d093fa6c0 Delete type=3 #167 2025/08/11-21:34:20.149715 7f12effff6c0 Delete type=3 #196
2024/11/17-22:48:43.418635 7f1d093fa6c0 Delete type=0 #169 2025/08/11-21:34:20.149828 7f12effff6c0 Delete type=0 #198
2024/11/17-22:50:28.268699 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.062220 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.268724 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.062246 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.274639 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.068241 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.274776 7f1d027ff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085439 7f12edffb6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.274799 7f1d027ff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085475 7f12edffb6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 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-000176 MANIFEST-000207

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.486843 7f4163fff6c0 Recovering log #174 2025/08/11-22:51:18.291417 7f12ee7fc6c0 Recovering log #204
2025/05/02-08:12:38.497823 7f4163fff6c0 Delete type=3 #172 2025/08/11-22:51:18.301512 7f12ee7fc6c0 Delete type=3 #202
2025/05/02-08:12:38.497971 7f4163fff6c0 Delete type=0 #174 2025/08/11-22:51:18.301601 7f12ee7fc6c0 Delete type=0 #204
2025/05/02-08:32:33.432014 7f4162bff6c0 Level-0 table #179: started 2025/08/11-22:52:41.243942 7f12edffb6c0 Level-0 table #210: started
2025/05/02-08:32:33.436580 7f4162bff6c0 Level-0 table #179: 30205 bytes OK 2025/08/11-22:52:41.244021 7f12edffb6c0 Level-0 table #210: 0 bytes OK
2025/05/02-08:32:33.443380 7f4162bff6c0 Delete type=0 #177 2025/08/11-22:52:41.250458 7f12edffb6c0 Delete type=0 #208
2025/05/02-08:32:33.477388 7f4162bff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.264517 7f12edffb6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.477460 7f4162bff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at '!items!zEl2NQsnCpELVWzh' @ 285 : 1 2025/08/11-22:52:41.264551 7f12edffb6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.477471 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.481585 7f4162bff6c0 Generated table #180@1: 74 keys, 30205 bytes
2025/05/02-08:32:33.481642 7f4162bff6c0 Compacted 1@1 + 1@2 files => 30205 bytes
2025/05/02-08:32:33.488072 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.488265 7f4162bff6c0 Delete type=2 #159
2025/05/02-08:32:33.488483 7f4162bff6c0 Delete type=2 #179
2025/05/02-08:32:33.524098 7f4162bff6c0 Manual compaction at level-1 from '!items!zEl2NQsnCpELVWzh' @ 285 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/11/17-22:48:43.369953 7f1d03fff6c0 Recovering log #170 2025/08/11-21:34:19.906242 7f12effff6c0 Recovering log #200
2024/11/17-22:48:43.379524 7f1d03fff6c0 Delete type=3 #168 2025/08/11-21:34:19.959359 7f12effff6c0 Delete type=3 #198
2024/11/17-22:48:43.379589 7f1d03fff6c0 Delete type=0 #170 2025/08/11-21:34:19.959494 7f12effff6c0 Delete type=0 #200
2024/11/17-22:50:28.223060 7f1d027ff6c0 Level-0 table #175: started 2025/08/11-22:51:08.074684 7f12edffb6c0 Level-0 table #205: started
2024/11/17-22:50:28.223138 7f1d027ff6c0 Level-0 table #175: 0 bytes OK 2025/08/11-22:51:08.078126 7f12edffb6c0 Level-0 table #205: 31504 bytes OK
2024/11/17-22:50:28.229321 7f1d027ff6c0 Delete type=0 #173 2025/08/11-22:51:08.085271 7f12edffb6c0 Delete type=0 #203
2024/11/17-22:50:28.249101 7f1d027ff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085480 7f12edffb6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.249144 7f1d027ff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085510 7f12edffb6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at '!items!zEl2NQsnCpELVWzh' @ 338 : 1
2025/08/11-22:51:08.085516 7f12edffb6c0 Compacting 1@1 + 1@2 files
2025/08/11-22:51:08.088988 7f12edffb6c0 Generated table #206@1: 77 keys, 31504 bytes
2025/08/11-22:51:08.089022 7f12edffb6c0 Compacted 1@1 + 1@2 files => 31504 bytes
2025/08/11-22:51:08.095088 7f12edffb6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/08/11-22:51:08.095209 7f12edffb6c0 Delete type=2 #197
2025/08/11-22:51:08.095332 7f12edffb6c0 Delete type=2 #205
2025/08/11-22:51:08.115239 7f12edffb6c0 Manual compaction at level-1 from '!items!zEl2NQsnCpELVWzh' @ 338 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000175 MANIFEST-000204

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.518058 7f41693fa6c0 Recovering log #173 2025/08/11-22:51:18.324133 7f12effff6c0 Recovering log #202
2025/05/02-08:12:38.529950 7f41693fa6c0 Delete type=3 #171 2025/08/11-22:51:18.335594 7f12effff6c0 Delete type=3 #200
2025/05/02-08:12:38.530055 7f41693fa6c0 Delete type=0 #173 2025/08/11-22:51:18.336174 7f12effff6c0 Delete type=0 #202
2025/05/02-08:32:33.443582 7f4162bff6c0 Level-0 table #178: started 2025/08/11-22:52:41.250593 7f12edffb6c0 Level-0 table #207: started
2025/05/02-08:32:33.448404 7f4162bff6c0 Level-0 table #178: 31582 bytes OK 2025/08/11-22:52:41.250618 7f12edffb6c0 Level-0 table #207: 0 bytes OK
2025/05/02-08:32:33.455254 7f4162bff6c0 Delete type=0 #176 2025/08/11-22:52:41.257077 7f12edffb6c0 Delete type=0 #205
2025/05/02-08:32:33.477406 7f4162bff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.264527 7f12edffb6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.488601 7f4162bff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at '!items!xzRJ6JP1HqoqxLdj' @ 195 : 1 2025/08/11-22:52:41.264560 7f12edffb6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.488624 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.493136 7f4162bff6c0 Generated table #179@1: 65 keys, 31582 bytes
2025/05/02-08:32:33.493174 7f4162bff6c0 Compacted 1@1 + 1@2 files => 31582 bytes
2025/05/02-08:32:33.500214 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.500377 7f4162bff6c0 Delete type=2 #106
2025/05/02-08:32:33.500642 7f4162bff6c0 Delete type=2 #178
2025/05/02-08:32:33.524120 7f4162bff6c0 Manual compaction at level-1 from '!items!xzRJ6JP1HqoqxLdj' @ 195 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.395898 7f1d037fe6c0 Recovering log #169 2025/08/11-21:34:20.017484 7f12eeffd6c0 Recovering log #198
2024/11/17-22:48:43.406363 7f1d037fe6c0 Delete type=3 #167 2025/08/11-21:34:20.093316 7f12eeffd6c0 Delete type=3 #196
2024/11/17-22:48:43.406473 7f1d037fe6c0 Delete type=0 #169 2025/08/11-21:34:20.093428 7f12eeffd6c0 Delete type=0 #198
2024/11/17-22:50:28.242967 7f1d027ff6c0 Level-0 table #174: started 2025/08/11-22:51:08.068405 7f12edffb6c0 Level-0 table #203: started
2024/11/17-22:50:28.242990 7f1d027ff6c0 Level-0 table #174: 0 bytes OK 2025/08/11-22:51:08.068464 7f12edffb6c0 Level-0 table #203: 0 bytes OK
2024/11/17-22:50:28.248975 7f1d027ff6c0 Delete type=0 #172 2025/08/11-22:51:08.074542 7f12edffb6c0 Delete type=0 #201
2024/11/17-22:50:28.249136 7f1d027ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085448 7f12edffb6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.249166 7f1d027ff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.085490 7f12edffb6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
MANIFEST-000002

5
packs/magie-sorts/LOG Normal file
View File

@@ -0,0 +1,5 @@
2025/08/11-22:51:18.389099 7f12eeffd6c0 Delete type=3 #1
2025/08/11-22:52:41.270919 7f12edffb6c0 Level-0 table #5: started
2025/08/11-22:52:41.274955 7f12edffb6c0 Level-0 table #5: 72907 bytes OK
2025/08/11-22:52:41.281286 7f12edffb6c0 Delete type=0 #3
2025/08/11-22:52:41.294945 7f12edffb6c0 Manual compaction at level-0 from '!folders!NE8l8XLXdVUw0aZm' @ 72057594037927935 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000176 MANIFEST-000205

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.599663 7f4163fff6c0 Recovering log #174 2025/08/11-22:51:18.409703 7f12eeffd6c0 Recovering log #203
2025/05/02-08:12:38.610256 7f4163fff6c0 Delete type=3 #172 2025/08/11-22:51:18.420789 7f12eeffd6c0 Delete type=3 #201
2025/05/02-08:12:38.610386 7f4163fff6c0 Delete type=0 #174 2025/08/11-22:51:18.420873 7f12eeffd6c0 Delete type=0 #203
2025/05/02-08:32:33.560393 7f4162bff6c0 Level-0 table #179: started 2025/08/11-22:52:41.288698 7f12edffb6c0 Level-0 table #208: started
2025/05/02-08:32:33.568946 7f4162bff6c0 Level-0 table #179: 279479 bytes OK 2025/08/11-22:52:41.288730 7f12edffb6c0 Level-0 table #208: 0 bytes OK
2025/05/02-08:32:33.575435 7f4162bff6c0 Delete type=0 #177 2025/08/11-22:52:41.294715 7f12edffb6c0 Delete type=0 #206
2025/05/02-08:32:33.575893 7f4162bff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.294992 7f12edffb6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.614470 7f4162bff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at '!items!zON0h5SjFyANjPnA' @ 540 : 1 2025/08/11-22:52:41.295062 7f12edffb6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.614491 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.623438 7f4162bff6c0 Generated table #180@1: 135 keys, 279479 bytes
2025/05/02-08:32:33.623477 7f4162bff6c0 Compacted 1@1 + 1@2 files => 279479 bytes
2025/05/02-08:32:33.629748 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.629951 7f4162bff6c0 Delete type=2 #139
2025/05/02-08:32:33.630303 7f4162bff6c0 Delete type=2 #179
2025/05/02-08:32:33.630622 7f4162bff6c0 Manual compaction at level-1 from '!items!zON0h5SjFyANjPnA' @ 540 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.446368 7f1d037fe6c0 Recovering log #170 2025/08/11-21:34:20.258603 7f12effff6c0 Recovering log #199
2024/11/17-22:48:43.456501 7f1d037fe6c0 Delete type=3 #168 2025/08/11-21:34:20.318194 7f12effff6c0 Delete type=3 #197
2024/11/17-22:48:43.456578 7f1d037fe6c0 Delete type=0 #170 2025/08/11-21:34:20.318250 7f12effff6c0 Delete type=0 #199
2024/11/17-22:50:28.255715 7f1d027ff6c0 Level-0 table #175: started 2025/08/11-22:51:08.109218 7f12edffb6c0 Level-0 table #204: started
2024/11/17-22:50:28.255743 7f1d027ff6c0 Level-0 table #175: 0 bytes OK 2025/08/11-22:51:08.109241 7f12edffb6c0 Level-0 table #204: 0 bytes OK
2024/11/17-22:50:28.262546 7f1d027ff6c0 Delete type=0 #173 2025/08/11-22:51:08.115092 7f12edffb6c0 Delete type=0 #202
2024/11/17-22:50:28.274749 7f1d027ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115290 7f12edffb6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.274785 7f1d027ff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.115335 7f12edffb6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

0
packs/profils/000204.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000174 MANIFEST-000202

View File

@@ -1,7 +1,7 @@
2025/05/02-08:12:38.642095 7f4168bf96c0 Recovering log #172 2025/08/11-22:51:18.440585 7f12ef7fe6c0 Recovering log #200
2025/05/02-08:12:38.652987 7f4168bf96c0 Delete type=3 #170 2025/08/11-22:51:18.452074 7f12ef7fe6c0 Delete type=3 #198
2025/05/02-08:12:38.653107 7f4168bf96c0 Delete type=0 #172 2025/08/11-22:51:18.452406 7f12ef7fe6c0 Delete type=0 #200
2025/05/02-08:32:33.630766 7f4162bff6c0 Level-0 table #177: started 2025/08/11-22:52:41.301484 7f12edffb6c0 Level-0 table #205: started
2025/05/02-08:32:33.630831 7f4162bff6c0 Level-0 table #177: 0 bytes OK 2025/08/11-22:52:41.301507 7f12edffb6c0 Level-0 table #205: 0 bytes OK
2025/05/02-08:32:33.637591 7f4162bff6c0 Delete type=0 #175 2025/08/11-22:52:41.307731 7f12edffb6c0 Delete type=0 #203
2025/05/02-08:32:33.669383 7f4162bff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.321197 7f12edffb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2024/11/17-22:48:43.473498 7f1d093fa6c0 Recovering log #168 2025/08/11-21:34:20.376707 7f12eeffd6c0 Recovering log #196
2024/11/17-22:48:43.483301 7f1d093fa6c0 Delete type=3 #166 2025/08/11-21:34:20.429317 7f12eeffd6c0 Delete type=3 #194
2024/11/17-22:48:43.483362 7f1d093fa6c0 Delete type=0 #168 2025/08/11-21:34:20.429419 7f12eeffd6c0 Delete type=0 #196
2024/11/17-22:50:28.281429 7f1d027ff6c0 Level-0 table #173: started 2025/08/11-22:51:08.115446 7f12edffb6c0 Level-0 table #201: started
2024/11/17-22:50:28.281470 7f1d027ff6c0 Level-0 table #173: 0 bytes OK 2025/08/11-22:51:08.115492 7f12edffb6c0 Level-0 table #201: 0 bytes OK
2024/11/17-22:50:28.288046 7f1d027ff6c0 Delete type=0 #171 2025/08/11-22:51:08.121470 7f12edffb6c0 Delete type=0 #199
2024/11/17-22:50:28.300645 7f1d027ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.147831 7f12edffb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

0
packs/scenes/000175.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000144 MANIFEST-000173

View File

@@ -1,15 +1,8 @@
2025/05/02-08:12:38.657367 7f41637fe6c0 Recovering log #142 2025/08/11-22:51:18.458421 7f12eeffd6c0 Recovering log #171
2025/05/02-08:12:38.668877 7f41637fe6c0 Delete type=3 #140 2025/08/11-22:51:18.469978 7f12eeffd6c0 Delete type=3 #169
2025/05/02-08:12:38.668996 7f41637fe6c0 Delete type=0 #142 2025/08/11-22:51:18.470069 7f12eeffd6c0 Delete type=0 #171
2025/05/02-08:32:33.658042 7f4162bff6c0 Level-0 table #147: started 2025/08/11-22:52:41.314747 7f12edffb6c0 Level-0 table #176: started
2025/05/02-08:32:33.662480 7f4162bff6c0 Level-0 table #147: 4682 bytes OK 2025/08/11-22:52:41.314796 7f12edffb6c0 Level-0 table #176: 0 bytes OK
2025/05/02-08:32:33.669142 7f4162bff6c0 Delete type=0 #145 2025/08/11-22:52:41.320976 7f12edffb6c0 Delete type=0 #174
2025/05/02-08:32:33.669454 7f4162bff6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) 2025/08/11-22:52:41.321230 7f12edffb6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.669512 7f4162bff6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at '!scenes!ypDutqjqZcr7lx6I' @ 16 : 1 2025/08/11-22:52:41.321269 7f12edffb6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2025/05/02-08:32:33.669532 7f4162bff6c0 Compacting 1@1 + 1@2 files
2025/05/02-08:32:33.673201 7f4162bff6c0 Generated table #148@1: 4 keys, 2992 bytes
2025/05/02-08:32:33.673241 7f4162bff6c0 Compacted 1@1 + 1@2 files => 2992 bytes
2025/05/02-08:32:33.681539 7f4162bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/05/02-08:32:33.681688 7f4162bff6c0 Delete type=2 #87
2025/05/02-08:32:33.681917 7f4162bff6c0 Delete type=2 #147
2025/05/02-08:32:33.707107 7f4162bff6c0 Manual compaction at level-1 from '!scenes!ypDutqjqZcr7lx6I' @ 16 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-22:48:43.485905 7f1d08bf96c0 Recovering log #138 2025/08/11-21:34:20.432403 7f12effff6c0 Recovering log #167
2024/11/17-22:48:43.496531 7f1d08bf96c0 Delete type=3 #136 2025/08/11-21:34:20.484938 7f12effff6c0 Delete type=3 #165
2024/11/17-22:48:43.496608 7f1d08bf96c0 Delete type=0 #138 2025/08/11-21:34:20.484995 7f12effff6c0 Delete type=0 #167
2024/11/17-22:50:28.294362 7f1d027ff6c0 Level-0 table #143: started 2025/08/11-22:51:08.140001 7f12edffb6c0 Level-0 table #172: started
2024/11/17-22:50:28.294392 7f1d027ff6c0 Level-0 table #143: 0 bytes OK 2025/08/11-22:51:08.140028 7f12edffb6c0 Level-0 table #172: 0 bytes OK
2024/11/17-22:50:28.300492 7f1d027ff6c0 Delete type=0 #141 2025/08/11-22:51:08.147678 7f12edffb6c0 Delete type=0 #170
2024/11/17-22:50:28.300663 7f1d027ff6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.147861 7f12edffb6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2024/11/17-22:50:28.300690 7f1d027ff6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) 2025/08/11-22:51:08.157987 7f12edffb6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

19
srcdata/normalize.py Normal file
View File

@@ -0,0 +1,19 @@
import json
FIELDS = ["name", "competence", "description", "duree", "portee", "concentration", "critique", "ingredients", "resistance"]
def capitalize_first_letter(s):
if isinstance(s, str) and s:
return s[0].upper() + s[1:]
return s
with open("../srcdata/sort_magieduclan.json", "r", encoding="utf-8") as f:
data = json.load(f)
for spell in data:
for field in FIELDS:
if field in spell:
spell[field] = capitalize_first_letter(spell[field])
with open("../srcdata/sort_magieduclan.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)

287
srcdata/sort_druidisme.json Normal file
View File

@@ -0,0 +1,287 @@
[
{
"name": "Rituels de purification",
"description": "Les rituels de purification consistent à laver une souillure le plus souvent physique et/ou spirituelle, quand le mauvais œil (ou une malédiction) a été placé sur un lieu ou un objet : sang et tripes de cochon versés dans un puits, chouette aux yeux crevés clouée à une porte, crucifix figé dans un chêne, poupée de paille percée daiguilles, etc. Outre le nettoyage des éléments physiques, le rituel consiste à recourir aux plantes purgatives et aux fumigations naturelles appropriées, associées à une récitation de formules consacrées à la Grande Mère. Note : un individu changé en animal contre son gré à laide dune amulette druidique ou dune potion de faëomancie est considéré comme « maudit » et peut être purifié à laide de ce rituel pour retrouver sa forme dorigine. Le SD du rituel sera égal au SD du niveau de maîtrise du sort qui a servi à la métamorphose, ou bien fixé par le Docte.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "pres",
"duree": "",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Plantes purgatives et aux fumigations naturelles appropriées",
"resistance": "",
"coutactivation": ""
},
{
"name": "Philtre de veille",
"description": "Faire macérer des poignées de ronces et dorties dans de leau salée du lever jusquau coucher de soleil. Pour chaque poignée macérée est produite une dose de philtre. Égoutter les ronces et les orties, les calciner et réduire le charbon ainsi obtenu en une fine poudre. Incorporer celle-ci au liquide issu de la macération ; faire chauffer jusquà ébullition. Réciter les paroles propitiatoires. Ce philtre doit être bu à la nuit tombée. Son utilisateur ne ressent pas les effets de la fatigue pendant la nuit et le jour qui suit, et il ne subit pas les désagréments du manque de sommeil (battements de cœur, troubles de la perception, somnolence…). En revanche, il seffondrera de sommeil au prochain coucher de soleil.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "Jusquau prochain coucher de soleil",
"portee": "",
"concentration": "Macération (du lever au coucher de soleil) + préparation",
"critique": "Le philtre dure une journée de plus",
"ingredients": "Ronces et orties",
"resistance": "",
"coutactivation": ""
},
{
"name": "Philtre de sommeil",
"description": "Faire bouillir les fleurs de belladone et de passiflore ensemble. Ajouter à la décoction une pointe de miel pour le goût. Renforce le pouvoir soporifique et apaisant des plantes par les paroles rituelles. Le goût sucré rend ce philtre facile à dissimuler dans une pâtisserie ou dans un fruit qui en serait imbibé pendant une nuit. Celui qui absorbe ce philtre commencera à sassoupir une minute après, et dormira sur ses deux oreilles dans les trois minutes qui suivent.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "6 heures, sauf si le dormeur est réveillé de manière active par autrui",
"portee": "",
"concentration": "Préparation",
"critique": "La durée est doublée",
"ingredients": "Belladone, passiflore et miel",
"resistance": "Physique contre le résultat du sort (ou SD 14) pour ne pas sassoupir",
"coutactivation": ""
},
{
"name": "Philtre damour",
"description": "Faire macérer les pétales dune rose dans de leau. Piler les racines dune mandragore et les incorporer à la macération. Intégrer au mélange trois larmes en prononçant le poème rituel, puis filtrer le tout. Boire ce philtre rend surnaturellement attirant : il fait bénéficier dun bonus de + 2 à toute tentative de séduction. Ce bonus est cumulable avec dautres de même nature (par exemple issus davantages ou datouts féériques).",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "Jusquà ce que lutilisateur se lave",
"portee": "",
"concentration": "Préparation",
"critique": "Lutilisateur bénéficie non plus dun bonus de + 2, mais dun bonus de + 3 à toutes ses tentatives de séduction",
"ingredients": "Mandragore et rose",
"resistance": "",
"coutactivation": ""
},
{
"name": "Philtre de descendance féérique",
"description": "Réduire les fleurs dacacia et clous de girofle en poudre, mélanger aux larmes et réciter les paroles sacrées au moment dune pleine lune. Quelques gouttes de ce philtre bues par une femme ou une fée avant de faire lamour garantiront que, si elle conçoit un enfant avec un Faux-Semblant, celui-ci sera également un Faux-Semblant (de lespèce du père ou de la mère). Un philtre équivalent élaboré avec des larmes humaines garantit que lenfant éventuel sera humain.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "2 heures",
"portee": "",
"concentration": "Préparation",
"critique": "Le philtre accroît considérablement les chances de fécondation",
"ingredients": "Fleurs dacacia, clous de girofle, larmes de pixie ou dhumain",
"resistance": "",
"coutactivation": ""
},
{
"name": "Philtre de bienveillance végétale",
"description": "Écraser les feuilles de lierre et en retirer le jus. Mélanger celui-ci à du jus de sureau. Le mélange doit être exposé pendant une nuit à la lueur de la pleine lune, au cours de laquelle le druide répétera le poème consacré. La préparation ainsi obtenue rendra la présence de la personne qui la boit très agréable à la végétation environnante. Celle-ci sécartera sur son passage, même sil sagit de ronciers inextricables, et se refermera derrière elle comme si personne nétait passé, facilitant les trajets à travers les broussailles, sous-bois ou jungles comme si elle marchait sur un chemin pédestre. Si un test de Survie est requis, un bonus reflétant cette collaboration des plantes sera fixé par le Docte.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "6 heures",
"portee": "",
"concentration": "Exposition pendant une nuit + préparation",
"critique": "La durée est doublée",
"ingredients": "Feuilles de lierre, baies de sureau",
"resistance": "",
"coutactivation": ""
},
{
"name": "Philtre tord-boyaux",
"description": "Envelopper les baies de houx dans les feuilles dhortensia, écraser le tout et en extraire le jus. Diluer le liquide dans sept gouttes de rosée et réciter les paroles consacrées afin que le philtre soit presque indétectable et que son goût normalement très amer devienne douceâtre. Descriptif du poison : Voies dadministration : ingestion. Toxicité : 5 Virulence : 15 Signature : 15. Lavantage de ce philtre est quil passera beaucoup plus facilement pour une simple intoxication alimentaire quun empoisonnement à larsenic. Complexité : n. a. Temps de fabrication : une heure avant laube Effets : le philtre tord-boyaux est un liquide translucide au goût douceâtre. Ce goût subtil est aisément dissimulé dans un plat à la saveur prononcée. La substance a linsigne avantage de ne pas perdre ses effets lors dune éventuelle cuisson. Ingéré, le poison commence à faire effet au cours de la digestion (deux heures). Il cause des maux de ventre, des vomissements et des diarrhées si aigus que celui qui lingère se tordra de douleur pendant 4 heures. En cas déchec à un test de Ressort (Endurer) + CON SD 15 pour Résister à la Virulence du poison, la victime perdra Toxicité + ME points de vie en plus de subir un malus de - 5 à toutes ses actions. En cas de réussite, ce malus est réduit à - 2. Note : voir le supplément Drogues délicieuses et effroyables poisons pour plus de détails sur le fonctionnement des poisons, et sur la terminologie propre à ces derniers qui est employée ici pour ce philtre. Notez que deux des poisons qui sont décrits dans cet opuscule, « Humeur de basilic » et « Sang de manticore », sont aussi des poisons fabriqués par les druides la plupart du temps.",
"niveau": 1,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "prec",
"duree": "4 heures (effets)",
"portee": "",
"concentration": "Une heure avant laube (fabrication)",
"critique": "La Signature est augmentée de 2",
"ingredients": "Baies de houx et feuilles dhortensia",
"resistance": "Physique (ressort + con)",
"coutactivation": ""
},
{
"name": "Le rituel des Portes dAvalon",
"description": "Voilà bien longtemps déjà que, pour les profanes, les chemins dAvalon se sont perdus dans les brumes de loubli. Désormais, seuls les druides sont en mesure de sy rendre grâce au rituel des portes dAvalon. Ce rituel est un secret bien gardé parmi les druides, car nombreux sont les ennemis de la Grande Mère et des fées qui aimeraient trouver le chemin de la contrée féérique pour en voler les ressources ou pire, la pervertir voire la détruire. Pour se rendre en Avalon, le druide doit trouver un portail, cest-à-dire deux chênes aux ramures inextricablement entrelacées. Il peut également, grâce à ses pouvoirs, le fabriquer. Puis il doit réciter le poème rituel tout en avalant un gland issu dun chêne avalonien. Lorsque sa litanie prend fin, le brouillard se lève et entoure les chênes dont on naperçoit plus que les troncs. En regardant attentivement, on peut discerner une fine pellicule deau ruisseler des ramures qui finissent par disparaître. Le passage est ouvert. Les invités du druide peuvent passer, mais attention ! Le passage se referme dès lors que le druide est passé, à moins que ce dernier ne le maintienne ouvert à dessein, ce qui est normalement interdit. Note : ce rituel est enseigné à tous les Saronides et ne requiert pas lhabituelle dépense de 5 points dXP accompagnant lapprentissage dun nouveau sort.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "pres",
"duree": "",
"portee": "Au portail",
"concentration": "Réciter le poème rituel",
"critique": "",
"ingredients": "Gland issu dun chêne avalonien",
"resistance": "",
"coutactivation": ""
},
{
"name": "Rituel de malédiction",
"description": "Les druides sont censés déjouer les malédictions, purifier les lieux souillés ou les victimes du mauvais œil. Cependant, à partir du deuxième cercle, ils sont capables eux-mêmes de maudire un objet, une personne ou un lieu. Un rituel de malédiction fonctionne à rebours dun rituel de purification. Le druide trouve un objet ou une substance comme support de sa malédiction et récite des paroles rituelles désignant la cible, le plus souvent à minuit, à la faveur de la lune. Leffet de ce type de malédiction mineure est ouvert aux fantaisies du Docte (ou des joueurs) : pustules sur la langue, chute de cheveux (saccompagnant dun malus de -1 en Prestance), maladresse chronique (malus de -1 en Précision ou Agilité), etc. Si vous songez à une malédiction majeure aux effets bien plus redoutables, augmentez le SD et exigez un rituel collectif. Dans tous les cas, une malédiction majeure sera très mal vue au sein de la communauté druidique et le responsable risque lexclusion. Note : le fonctionnement de ce rituel est enseigné à tous les Saronides et ne requiert pas lhabituelle dépense de 5 points dXP accompagnant lapprentissage dun nouveau sort.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "pres",
"duree": "",
"portee": "",
"concentration": "Récite des paroles rituelles",
"critique": "",
"ingredients": "Objet ou une substance comme support",
"resistance": "Psychique ou physique (la plus élevée de la cible)",
"coutactivation": ""
},
{
"name": "Semence de lierre rouge",
"description": "Enduire la graine de lierre avec du crottin dhippogriffe et attendre trois jours. Après cela, une pousse sortira de la graine et il faudra chanter une strophe dépopée en celte transformant la graine germée en arme. Lorsque celle-ci touchera le sol à proximité dun ennemi de celui qui la lancée, des lianes de lierre rouge enchevêtreront ses pieds jusquaux genoux et conféreront un malus de -1 aux actions de la cible impliquant un mouvement. Ensuite, à chaque tour, le lierre montera davantage et deviendra plus vigoureux et difficile à trancher. La victime pourra se battre, mais non bouger ses jambes et souffrira donc dun malus de -1 supplémentaire pour toute attaque de Mêlée, parade ou bien esquive. Le malus maximum est -5, quand la cible est presque immobilisée par un lierre rouge qui lui enserre tout le corps jusquà la tête. Il faudra trancher ou brûler le lierre en causant 10 points de dégâts grâce à une arme tranchante ou un jet de flamme avec un SD de 13 (un échec critique signifiera que le coup a touché la cible). Sans arme tranchante ou flamme, le lierre rouge continuera à pousser et se renforcer, mais finira par se flétrir au bout de 15 minutes.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "15 minutes (si non coupée/brûlée)",
"portee": "À proximité",
"concentration": "Préparation sur trois jours + chant",
"critique": "Les points de vie du lierre sont doublés pour déterminer combien de coups darmes tranchantes sont nécessaires afin de le couper",
"ingredients": "Une graine de lierre avalonien et du crottin dhippogriffe",
"resistance": "",
"coutactivation": ""
},
{
"name": "Semence de ronce curatrice",
"description": "Cracher sur la ronce et lenduire de pollen déglantine avalonien. Lenterrer en récitant le poème consacré et attendre trois jours. Le troisième jour, alors que laube étend son voile de rosée sur le monde, déterrer la ronce qui émet une très légère aura verte et pulsatile. Une fois que la ronce a été bénie, le druide doit lappliquer sur la blessure quil veut guérir. Ses épines senfoncent douloureusement dans la peau du blessé afin de la refermer, tels des points de suture. Le blessé regagne instantanément 1d8 points de vie car la ronce sert de cicatrisant. Lorsque la cicatrisation naturelle du blessé est terminée, la ronce sèche et tombe delle-même. Cette semence permet de cicatriser, mais aussi dôter les corps étrangers (comme les balles) : la ronce sintroduit jusquau matériau, lenserre et le repousse, non sans causer une douleur extrême si aucun anesthésiant nest utilisé (test de Ressort + CON SD 14 pour ne pas sévanouir pendant ME minutes).",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "Jusquà cicatrisation naturelle",
"portee": "Contact",
"concentration": "Préparation sur trois jours + poème",
"critique": "La semence rend directement 8 points de vie au lieu d1d8",
"ingredients": "Ronce du pays dhiver et pollen déglantine avalonienne",
"resistance": "Ressort (con)",
"coutactivation": ""
},
{
"name": "Semence de force",
"description": "Faire bouillir une poignée de fleurs de trèfle rouge pendant une journée, puis faire macérer la feuille de chêne avalonien dans le liquide obtenu. Faire sécher la feuille de chêne avalonien au soleil jusquà ce que des petits piquants poussent sur cette dernière. Après bénédiction du druide, lutilisateur doit poser la feuille de chêne enchantée sur son plexus solaire et appuyer jusquà ce que les petits piquants lui rentrent dans la peau. La feuille sintègre alors temporairement au corps de lutilisateur. Elle lui confère un bonus temporaire de + 2 en Force. Ce bonus est cumulable avec celui de la Capacité naturelle Force accrue (mais aucune créature naturelle ne peut avoir plus de 10 en Force). Au prochain lever de soleil, la feuille de chêne tombe delle-même, jaunie et racornie.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "Jusquau prochain lever de soleil",
"portee": "Contact",
"concentration": "Préparation d'une journée + séchage + bénédiction",
"critique": "Bonus de + 3 au lieu de + 2",
"ingredients": "Feuille de chêne avalonien et fleurs de trèfle rouge",
"resistance": "",
"coutactivation": ""
},
{
"name": "Semence de chêne",
"description": "Écraser les baies du gui avalonien et recouvrir le gland de la substance obtenue. Exposer le gland sur un lit de gui avalonien au soleil pendant sept jours, puis réciter le poème consacré et cracher sur le gland. Après bénédiction, lorsque la semence de chêne touche la terre, cest-à-dire le berceau de la Grande Mère, elle se met à pousser à une vitesse fulgurante. En cinq tours, la plante a atteint sa pleine maturité. Elle suit, ensuite, son cycle naturel. Note : dans lintention dutiliser la semence de chêne pour le rituel des Portes dAvalon, il suffit den planter deux à trois mètres de distance lune de lautre et dattendre sept jours.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "Suit son cycle naturel après 5 tours de croissance",
"portee": "",
"concentration": "Préparation sur sept jours + poème",
"critique": "Le chêne généré grâce à cette semence est sage, et prodiguera des conseils avisés à ceux qui peuvent communiquer avec lui. Cest un miracle de la Grande Mère qui deviendra objet de soin des druides et des fées proches de la nature",
"ingredients": "Gland et gui avalonien",
"resistance": "",
"coutactivation": ""
},
{
"name": "Semence de haricot magique",
"description": "Le druide doit cueillir lui-même des haricots, les écosser et en faire sécher les semences pendant deux jours. Ensuite, il lui faut demander à une licorne quelle crache dessus, et réciter les paroles rituelles. Au contact de la terre, comme dans le conte, le haricot poussera à une vitesse prodigieuse et atteindra une hauteur de 12 mètres. Il est possible de grimper aux branches comme à une échelle ou bien de se placer au-dessus de la graine pour être hissé au moment de la croissance. Le haricot supporte un poids de 500 kg. Pour atteindre sa pleine hauteur, 3 minutes sont requises. Le Pouvoir Main verte du sylve sur un haricot magique divisera par 3 le temps de croissance, multipliera par 3 sa capacité de charge ainsi que la hauteur atteinte, jusquà 36 mètres (46 mètres avec une réussite critique). Note : la durée de vie de cette plante géante est limitée. Au bout de 6 heures, elle se flétrira puis pourrira.",
"niveau": 2,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "6 heures",
"portee": "",
"concentration": "Préparation sur deux jours + salive de licorne + poème",
"critique": "La hauteur du haricot est augmentée de 10 mètres",
"ingredients": "Haricot avalonien du pays dété et salive de licorne",
"resistance": "",
"coutactivation": ""
},
{
"name": "Amulette de métamorphose en aigle",
"description": "Le druide doit préparer une pâte en mélangeant largile et leau de rosée. Lorsque la pâte atteint la bonne consistance, il doit la modeler en forme daigle et y planter la plume daigle en prononçant les paroles rituelles. Pour utiliser son amulette, le druide doit la briser sur sa cible en récitant à nouveau les paroles rituelles. Il transforme alors sa cible en aigle. Il peut, bien entendu, être la cible de son propre sort. Certains druides punissent leurs ennemis en les transformant pour longtemps, ou à jamais, en animaux. Cette amulette est déclinable en toutes sortes danimaux et de plantes, et les druides les plus cruels nhésitent pas à transformer leur cible en crapaud… Cependant, notez que le druide doit apprendre un nouveau sort pour chaque animal en lequel il peut se changer ou transformer autrui. En effet, ces amulettes reposent sur la connaissance des noms secrets des choses et des êtres qui nécessitent un apprentissage complexe. Note : il existe des amulettes similaires permettant doctroyer temporairement le Pouvoir de Communication animale ou végétale à la cible pendant une semaine. Elles constituent un sort différent et requièrent un apprentissage dédié (et donc la dépense dXP afférente).",
"niveau": 3,
"competence": "Druidisme",
"carac1": "prec",
"carac2": "",
"duree": "Une semaine, ou jusquà ce que le druide désire faire cesser la métamorphose",
"portee": "Contact",
"concentration": "Préparation",
"critique": "Celui qui est métamorphosé en aigle peut parler aux animaux, quels quils soient",
"ingredients": "Plume daigle, eau de rosée avalonienne, argile avalonien",
"resistance": "Physique pour une cible récalcitrante au pouvoir de lamulette",
"coutactivation": ""
},
{
"name": "Amulette de cercle de protection",
"description": "LOvate doit baigner la large pierre dans de leau vive, la sécher et la faire chauffer pendant une journée. À ce moment, il doit appliquer la feuille de chêne sur la pierre de manière quelle sincruste dedans en récitant les paroles rituelles. Pour activer le cercle de protection, le druide doit délimiter de manière continue son aire daction (fil enterré, frise dans la pierre, canalisation deau…), qui a pour rayon maximal la valeur de Prestance du druide x 100 m. Puis il enterre son amulette au centre du cercle en répétant les paroles rituelles. Dès lors, le cercle de protection est actif, ce qui signifie que nul ne peut y entrer sans y avoir été invité à voix haute par le druide. Les contrevenants sont bloqués par une force invisible. Forcer le passage est possible en réussissant un test de Ressort + FOR ou Fortitude + ESP contre un SD égal au score du test du druide. En cas déchec, le contrevenant sévanouira si sa Résistance psychique est inférieure au SD du sort, sinon, il souffrira dune migraine causant un malus de - 2.",
"niveau": 3,
"competence": "Druidisme",
"carac1": "prec",
"carac2": "",
"duree": "Tant que le cercle est brisé ou que lamulette est déterrée",
"portee": "Valeur de Prestance du druide x 100 m (rayon)",
"concentration": "Préparation d'une journée + délimitation",
"critique": "Le cercle ne peut être brisé que si lamulette est déterrée",
"ingredients": "Large pierre, feuille de chêne avalonien",
"resistance": "Ressort (for / fort / esp)",
"coutactivation": ""
},
{
"name": "Amulette dorage",
"description": "Le druide doit tailler la branche de frêne avalonien en une baguette de la taille de son avant-bras, et limmerger pendant une semaine dans leau de pluie dAvalon. Lorsquil la sort de leau, il doit y graver une rune secrète et prononcer les paroles rituelles. Pour utiliser son amulette, le druide doit voir le ciel et psalmodier les paroles rituelles en le contemplant. Puis, sur la dernière syllabe, il brise la baguette. À partir de ce moment, les nuées commencent à converger et le ciel sobscurcit ; au bout de dix minutes, la pluie se met à tomber. Dix minutes plus tard, lorage est là. Le druide peut manipuler lorage, le déplacer, faire varier lintensité de ses pluies et, surtout, manier la foudre. Pour ce faire, il doit réussir un test de Druidisme + PER SD 15. En cas de réussite, il foudroie sa cible qui subit [MR + 6] points de dégâts. Il peut manier la foudre une fois par tour (une Action), mais cela lui coûte 3 points dÂme à chaque fois (et un point temporaire dEsprit quand sa réserve dÂme est épuisée). Note : il existe dautres amulettes pour contrôler le temps quil fait (invoquer le soleil ou la pluie, etc.). Ce sont des sorts différents, requérant un apprentissage à part entière, mais qui fonctionnent de manière équivalente. Par exemple, une amulette de blizzard fera venir une tempête de neige et le druide pourra diriger de violentes bourrasques à la place de la foudre, ne causant pas de dégâts mais faisant tomber les cibles. Cependant, la température extérieure ne doit pas excéder 10 degrés pour que cette amulette fonctionne.",
"niveau": 3,
"competence": "Druidisme",
"carac1": "prec",
"carac2": "",
"duree": "Jusquà ce que le druide sendorme ou perde conscience",
"portee": "",
"concentration": "Préparation d'une semaine + activation",
"critique": "Lorage se déclenche en une minute",
"ingredients": "Branche de frêne avalonien et eau de pluie avalonienne",
"resistance": "",
"coutactivation": "3 points dÂme (et 1 point temporaire dEsprit si jauge dÂme épuisée) par utilisation de la foudre"
},
{
"name": "Amulette de renaissance du Bras",
"description": "LOvate doit enrouler la patte dours dans les feuilles de marronnier avalonien en prononçant les paroles rituelles. Puis il fait sécher le tout au soleil (la patte ne pourrit pas car elle est déjà enchantée). Pour utiliser son amulette, le druide doit humecter la patte dours avec le sang du manchot. Puis il la jette dans un grand feu en répétant les paroles rituelles tout au long de la combustion. La cible sent alors son bras repousser au fur et à mesure que la patte dours se consume. Lorsquelle est complètement consumée, la cible a complètement récupéré son bras et lusage de celui-ci. Le druide peut être la cible de son propre sort.",
"niveau": 3,
"competence": "Druidisme",
"carac1": "prec",
"carac2": "",
"duree": "Définitive",
"portee": "Contact",
"concentration": "Préparation + séchage + combustion",
"critique": "Le bras nouvellement acquis est irrigué par les forces de la Grande Mère. Il bénéficie dun bonus perpétuel de + 1 en Force (dans la limite du rang 10). Ce bonus est invisible : la cible na pas un bras plus gros que lautre",
"ingredients": "Feuilles de marronnier avalonien et patte dours décédé de mort naturelle",
"resistance": "",
"coutactivation": ""
},
{
"name": "Rituel de réenchantement",
"description": "Un Ovate aidé dau moins trois confrères est capable de restaurer la Féérie dun Faux-Semblant qui aurait été victime du Grand Rituel dexorcisme (voir p. 67) (léquivalent dune malédiction majeure pour sa victime). Le druide peut, en récitant les paroles rituelles pendant trois heures et surtout, au moyen dune quantité invraisemblable de poudre daile de pixie, réenchanter la victime de lexorcisme et lui restituer un rang de Féérie. La victime devra ensuite séjourner un an en Avalon pour redévelopper sa Féérie et pouvoir à nouveau se démasquer. Elle sera de la même espèce et conservera la même apparence quavant, mais devra réapprendre progressivement à utiliser ses Pouvoirs. Note : ce sort difficile, et rarement pratiqué, est connu des Ovates sans quils aient besoin de dépenser dXP pour lapprendre. Il fait partie de leur initiation druidique.",
"niveau": 3,
"competence": "Druidisme",
"carac1": "esp",
"carac2": "",
"duree": "Permanente (restauration), un an (redéveloppement de Féérie)",
"portee": "",
"concentration": "Trois heures de récitation",
"critique": "",
"ingredients": "Poudre daile de pixie",
"resistance": "",
"coutactivation": ""
}
]

View File

@@ -0,0 +1,137 @@
[
{
"name": "Potion de faiblesse à largent",
"description": "Le bénéficiaire est vulnérable à largent comme sil était une fée pendant les trente prochaines minutes sil a bu la potion, pendant 10 tours sil la respirée, pendant les deux prochains tours sil en a seulement été aspergé. Cette préparation est sans effet sur une fée.",
"niveau": "1",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "Trente prochaines minutes sil a bu la potion, pendant 10 tours sil la respirée, pendant les deux prochains tours sil en a seulement été aspergé",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Cinq litres de sang de fée.",
"resistance": "",
"coutactivation": ""
},
{
"name": "Émincé de force dogre",
"description": "Le bénéficiaire obtient + 1 en Force. Note : cest là un exemple de recette où des ingrédients alternatifs sont faciles à substituer ; en loccurrence, les biceps de toute fée disposant de la Capacité naturelle Force accrue pourront constituer un ingrédient alternatif.",
"niveau": "1",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Un biceps dogre, une pincée de poivre fort, une livre de saindoux dogre.",
"resistance": "",
"coutactivation": ""
},
{
"name": "Masque de fée",
"description": "Le visage et la peau du bénéficiaire sont profondément modifiés pour lui donner lapparence dune fée de lespèce de celle quil a dépecée, quil soit lui-même un humain ou un Faux-Semblant. Un bonus égal à la MR/2 du test de Faëomancie sera appliqué aux éventuels tests de Comédie + PRES requis pour ne pas être percé à jour. Leffet perdure pendant MR jours. Note : la taille du bénéficiaire nest pas changée et il ne lui poussera pas dailes ou autres appendices, même si lespèce féérique imitée est censée en avoir. Ces détails peuvent trahir son déguisement qui devra donc être complété soit grâce à une autre préparation faëomantique, soit par des appendices postiches, sil ne veut pas quun Faux-Semblant le perce à jour aisément grâce à un test dObservation + PER au SD en opposition au test de Comédie + PRES.",
"niveau": "2",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "MR jours",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Peau du visage dun Faux-Semblant démasqué ou dune fée encore en vie ; poudre daile de pixie ; sang de la victime ; graisse de protys",
"resistance": "",
"coutactivation": ""
},
{
"name": "CromesQuis de calme angÉliQue",
"description": "Le bénéficiaire obtient le Pouvoir Calme pendant au moins trente minutes.",
"niveau": "2",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "Au moins trente minutes",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Un os de mâchoire dange, sept cheveux dange, un cœur dange.",
"resistance": "",
"coutactivation": ""
},
{
"name": "Ragoût de ramollissement du mÉtal",
"description": "Le bénéficiaire obtient le Pouvoir profond Ramollissement du métal pendant au moins trente minutes.",
"niveau": "3",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "Au moins trente minutes",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "100 g de moelle dos de gnome profond, un demi-litre de bile de gnome profond, un litre de vin rouge (pour le goût), 2 kg de chair de gnome profond, 10 g de poudre daile de pixie. Note : un Maître-queux na pas besoin que le gnome soit un gnome profond.",
"resistance": "",
"coutactivation": ""
},
{
"name": "Baguette de main verte",
"description": "Il suffit ensuite de planter la baguette imbibée de sang dans le sol ou sur un végétal pour activer le Pouvoir Main verte.",
"niveau": "3",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "1 heure",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Doigts/racines de sylve, sève de hêtre, cendres de cocatrice, poudre daile de pixie et baguette dosier creuse",
"resistance": "",
"coutactivation": "2 points de vie"
},
{
"name": "Canne de souffle enflammÉ",
"description": "La main du porteur doit être au contact du tissu imbibé de sang pour déclencher le jet de Souffle enflammé.",
"niveau": "3",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "1 heure",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Gésier de phénix, humeur de basilic, poudre de silex, poudre daile de pixie, canne, tissu et pommeau métallique",
"resistance": "",
"coutactivation": "3 points de vie"
},
{
"name": "Diadème de penséces impures",
"description": "Une fois coiffé du diadème, pressez ce dernier sur le front pour faire perler le sang. Le Pouvoir Pensées impures sera utilisable par le porteur 5 minutes plus tard.",
"niveau": "3",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "1 heure",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "Cœur de succube, humeur de basilic, poudre daile de pixie, diadème et trois joyaux creux",
"resistance": "",
"coutactivation": "3 points de vie"
},
{
"name": "Lunettes de vision nocturne",
"description": "Une fois les lunettes prêtes, verser plusieurs gouttes de sang sur chaque verre. Leur usage sera possible 5 minutes plus tard.",
"niveau": "3",
"competence": "Faëomancie",
"carac1": "precision",
"carac2": "sang-froid",
"duree": "1 heure",
"portee": "",
"concentration": "",
"critique": "",
"ingredients": "8 iris et cornées de Faux-Semblants ayant accès à la vision nocturne (4 par verre), salive de troll, poudre daile de pixie, lunettes de verre très fin (cristal)",
"resistance": "",
"coutactivation": "1 point de vie"
}
]

View File

@@ -0,0 +1,377 @@
[
{
"name": "Casse-Brique",
"description": "Ce sort permet de concentrer son Souffle dans son poing afin de générer une onde de choc capable doccasionner dim-portants dégâts aux structures et de projeter loin en arrière un adversaire. Lorsque le sort est lancé, le poing du mage devient aussi dur que la pierre, et un champ de force len-toure, le transformant en une arme dune valeur de dégâts égale à la MR du sort pour une attaque unique explosive (minimum 3 ; cette valeur de dégâts remplace celle dune éventuelle arme naturelle). Lattaque est ensuite effectuée normalement au tour suivant. En cas de réussite, en plus des dégâts reçus, ladversaire est projeté à [MR du sort] mètres en arrière et une structure (porte, coffre) reçoit le double des dégâts totaux de lattaque quand londe de choc éclate. Note : pour connaître la résistance des structures et véhicules, se reporter à la page 204 du livre de base.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "for",
"duree": "",
"portee": "",
"concentration": "Un tour avec test de Souffle + SAN ou FOR SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Dévier les lames menaçantes",
"description": "Le combattant se concentre sur les armes de mêlée (armes naturelles incluses) susceptibles dêtre maniées dans une zone de contrôle située dans un rayon de 2 mètres autour de lui. Sil réussit son test, il pourra tenter, au tour suivant, de dévier autant de coups portés contre lui ou un allié situé dans cette zone quil a de rangs de maîtrise (de 1 pour un Apprenti à 4 pour une Éminence). Il peut le faire à mains nues ou armé. Il dispose alors dun bonus de 3 + son rang de Souffle pour dévier de 1 à 4 attaques. Alternativement, il peut utiliser ce bonus pour bloquer entre ses mains une arme et sen emparer (voir la manœuvre Désarmer dans le livre de base), mais il doit alors se concentrer sur une seule attaque.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "agi",
"duree": "Au tour suivant",
"portee": "2 mètres autour de lui",
"concentration": "Un tour avec test de Souffle + SAN ou AGI SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Puma Bondissant",
"description": "Une fois canalisé dans les jambes, le Souffle permet de bondir plus haut ou plus loin quà laccoutumée : 1 mètre de plus quen temps normal par rang de Souffle. Ce sort dure cinq minutes et il est cumulable avec le Pouvoir féérique Bond prodigieux.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "Cinq minutes",
"portee": "Soi-même",
"concentration": "Un tour avec un test de Souffle + AGI ou SAN SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Vitesse du vent",
"description": "LApprenti puise dans son Souffle pour pouvoir se déplacer plus vite que ses capacités habituelles ne le lui permettent. Il gagne + 1 en Mouvement par niveau de maîtrise (+ 1 pour un Apprenti, + 2 pour un Disciple, + 3 pour un Maître, + 4 pour une Éminence), pendant 5 minutes. Cela modifie en conséquence sa valeur dEsquive.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "5 minutes",
"portee": "Soi-même",
"concentration": "Un tour avec un test de Souffle + AGI ou SAN SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Confusion",
"description": "Le mage projette dans lesprit de sa cible lillusion de murmures et dombres fugaces qui vont troubler sa concen-tration et lui faire perdre temporairement ses moyens. La MR du sort indique le nombre de tours que la victime perd à essayer de retrouver ses esprits. Elle nest pas paralysée et pourra donc se défendre ou se mettre à labri en cas dattaque. En situation sociale, elle peut oublier ce quelle voulait dire, être troublée au point de devoir reprendre ses esprits à lécart, etc. Note : en cas déchec critique à lancer ce sort, cest le lanceur qui devient confus et perd ses moyens pendant 1 minute.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "esp",
"carac2": "san",
"duree": "MR tours",
"portee": "Cible visible",
"concentration": "Un tour avec un test de Souffle + ESP ou SAN SD 12 ou valeur de Résistance psychique si elle est supérieure",
"critique": "En cas déchec critique à lancer ce sort, cest le lanceur qui devient confus et perd ses moyens pendant 1 minute",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Cacher sa nature",
"description": "Le sorcier modifie la vision que les autres ont de lui dans leur esprit, créant une illusion laidant à dissimuler sa vraie nature. Lillusion dure une scène et modifie des éléments physiques : traits du visage, âge, couleur de cheveux ou de la peau, etc. Avec une MR de 5, il peut même apparaître sous les traits dune personne de lautre sexe.",
"niveau": "1",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "pres",
"duree": "Une scène",
"portee": "Soi-même",
"concentration": "Une minute avec un test de Souffle + SAN ou PRES SD 12",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Dun coup, mille",
"description": "Ce sort permet de canaliser le Souffle afin dagir ou datta-quer plus vite que la normale. Le combattant peut porter une attaque supplémentaire par tour sans malus au niveau Disciple, deux au niveau Maître et trois au niveau Éminence (il faut dépenser les points de vie requis pour chaque attaque supplémentaire). Il peut sagir dattaques de Mêlée ou de Tir, ces dernières étant limitées par la Cadence de larme à feu.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "per",
"duree": "Par tour",
"portee": "",
"concentration": "1 tour avec test de Souffle + SAN ou PER SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Sertir la perle de tonnerre",
"description": "Ce sort permet dêtre galvanisé par le Souffle au point de pouvoir esquiver une ou plusieurs balles. Après son tour de concentration, en cas de réussite, le mage effectue un unique test dEsquive active en bénéficiant dun bonus égal à son rang de Souffle contre un SD égal aux différents Tirs effec-tués sur lui pendant un tour. Par exemple, si un Disciple obtient 15 à son test dEsquive active, il ajoute 2 à ce score, pour un total de 17. Si trois adversaires font feu sur lui en obtenant respectivement à leur test de Tir 12, 14 et 18, seul le tireur qui a obtenu le score de 18 latteindra. Note : ce sort fait à la fois partie du Souffle du Combat et du Souffle du Mouvement. Par conséquent, il peut être compta-bilisé comme prérequis pour progresser dans ces deux formes de Souffle, à condition que le mage soit de rang Disciple d a n s chacune delles.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "Pendant un tour",
"portee": "",
"concentration": "1 tour avec test de Souffle + AGI ou SAN SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "LÉvitation",
"description": "Le Disciple sassoit en tailleur et médite intensément afin que son Souffle lélève au-dessus du sol pendant une scène. Sil veut traverser un gouffre très profond, la lévitation sera beaucoup plus éprouvante et coûtera le double de points de vie. La vitesse de déplacement en lévitation est celle dune marche assez lente et la hauteur au-dessus du sol est située entre 1 et 2 mètres.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "esp",
"duree": "Une scène",
"portee": "Soi-même",
"concentration": "Une minute de méditation avec un test de Souffle + SAN ou ESP SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Voir la seconde",
"description": "Le temps semble se ralentir pour le Disciple qui fait appel à ce sort, ce qui lui confère une longueur davance sur ses adversaires. Il gagne [3 + rangs de Souffle] points à son score dInitiative. Note : ce bonus ne peut intervenir au premier tour dune escar-mouche, car le sort nécessite une concentration dun tour.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "san",
"duree": "Variable",
"portee": "Soi-même",
"concentration": "Un tour avec un test de Souffle + PER ou SAN SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Boule de cristal",
"description": "Le Disciple projette son esprit en un lieu dans lequel il a au préalable médité au moins 15 minutes, et perçoit tout ce qui sy passe et sy dit à travers une boule de cristal. Une « présence » indéfinie pourra être détectée par les personnes espionnées en réussissant un test de Sensibilité + PER en opposition au test du sort. Le rang de Souffle de lEsprit détermine le nombre de lieux avec lesquels le Disciple peut garder une connexion. Par exemple, si un Disciple de rang 3 dans ce Souffle souhaite établir une connexion avec un quatrième lieu, il perd celle quil avait avec le premier dans lequel il a médité. Une nouvelle méditation sera requise pour rétablir le lien avec ce premier lieu et il perdra la connexion avec le deuxième lieu, etc.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "esp",
"carac2": "per",
"duree": "Tant que la connexion est maintenue",
"portee": "Limitée par lieux médités",
"concentration": "Trois minutes avec un test de Souffle + ESP ou PER SD 14",
"critique": "",
"ingredients": "",
"resistance": "Sensibilité + PER en opposition",
"coutactivation": ""
},
{
"name": "Visiteur des rêves",
"description": "Le Disciple est capable de plonger dans les rêves dune personne avec laquelle il a été en contact au moins 15 minutes. Il agira dans les rêves comme un figurant et cherchera à décrypter le sens de ce quil expérimente dans le monde onirique. Il faut que la cible soit endormie et à moins de 5 km. Le Docte doit imaginer le déroulement du rêve dun personnage, le mettre en scène et le décrire au lanceur de sort en évoquant de manière symbolique des obsessions, traumatismes, etc., qui pourront être compris par le Disciple. Le rêveur ne se rendra compte de la présence dun intrus que sil réussit un test dOb-servation ou Sensibilité + PER en opposition au résultat du test du sort (plusieurs tentatives sont possibles au fil du rêve). Note : une réussite critique permettra de modifier le déroulement du rêve et donc dinfluencer indirectement létat desprit du rêveur afin dinfléchir une prise de décision.",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "esp",
"duree": "Variable",
"portee": "5 km",
"concentration": "Dix minutes avec un test de Souffle + PER ou ESP SD 14",
"critique": "Une réussite critique permettra de modifier le déroulement du rêve et donc dinfluencer indirectement létat desprit du rêveur afin dinfléchir une prise de décision.",
"ingredients": "",
"resistance": "Psychique / Observation ou Sensibilité + PER en opposition",
"coutactivation": ""
},
{
"name": "Force de lesprit",
"description": "Le Disciple puise dans ses ressources mentales pour dominer ses instincts physiques ou psychiques comme la faim, la soif, la fatigue, la peur mais aussi, pour un Faux-Semblant, les pulsions liées à sa nature. Ainsi, il est possible de neutra-liser les effets négatifs des désavantages féériques psycholo-giques (ou apparentés, le Docte reste juge) tels que la soif de sang du loup-garou, la peur de leau du phénix, la klep-tomanie du korrigan, etc. Ce sort ne peut être utilisé dans lurgence, car il nécessite un temps de méditation et requiert un effort de concentra-tion empêchant le Disciple dutiliser dautres sorts en même temps. La dépense de 1 point dÂme additionnel permet de prolonger la durée de la « Force de lesprit », mais une fois la réserve épuisée, la faiblesse ou le désavantage jusqualors maîtrisé se fera de nouveau sentir très violemment (effets déterminés par le Docte).",
"niveau": "2",
"competence": "Magie du Clan",
"carac1": "esp",
"carac2": "",
"duree": "[MR x 15] minutes + 1 heure supplémentaire par point dÂme additionnel dépensé",
"portee": "Soi-même",
"concentration": "Méditation de 5 minutes avec un test de Souffle + ESP SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Coup paralysant",
"description": "Le combattant frappe son adversaire à un point sensible pour temporairement lui « couper le Souffle ». Ce faisant, cet adversaire est incapable dagir ou même de parler, tous ses muscles sont tétanisés, pendant [1 + MR] tours. Si ladver-saire porte une armure, lattaque subit un malus de - 1 à - 3, à la discrétion du Docte.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "[1 + MR] tours",
"portee": "Mêlée",
"concentration": "1 Bagatelle avec test de Souffle limitant Mêlée + AGI ou SAN SD 16 ou valeur dEsquive de la victime si elle est plus élevée",
"critique": "",
"ingredients": "",
"resistance": "Physique",
"coutactivation": ""
},
{
"name": "Dompter la chair",
"description": "Ce sort impressionnant consiste à ignorer toute forme de douleur, de blessure ou de handicap physique pour continuer à se battre. Même avec un trou dans le ventre, un bras broyé, et même la tête tranchée, le combattant continuera à se battre pour la survie du Clan. Après avoir lancé le sort, le Maître use de son Souffle pour ne subir leffet des dégâts reçus quaprès la fin de la scène. Les malus de blessure ne sont pas appliqués. Si, une minute après la fin de la scène, les points de dégâts reçus additionnés à ceux que coûte ce sort font passer les points de vie du Maître à une valeur négative (en dessous de zéro) infé-rieure à son score de Constitution, il meurt. Par exemple, si un Maître subit 24 points de dégâts au cours dune scène, auxquels sajoutent les 2 points de vie dépensés pour activer Dompter la chair, alors même quil en possède au total 21, et que son score de Constitution est 4, il meurt une minute après la fin de la scène. Le calcul est le suivant : 26 - 21 = 5, valeur supérieure au rang 4 de Constitution. Cependant, si le Maître dispose dun Pouvoir de type Régé-nération aquatique et que toutes les parties de son corps sont placées dans le milieu requis, il se régénérera et échappera à la mort. Note : comme Coup paralysant, Dompter la chair peut être utilisé en un seul tour.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "con",
"duree": "Jusquaprès la fin de la scène",
"portee": "Soi-même",
"concentration": "Une Bagatelle avec test de Souffle + SAN ou CON SD 16",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "TÉlÉkinÉsie",
"description": "Le Maître du Mouvement est capable de déplacer un objet (voire une personne) visible et se trouvant à moins de 30 mètres de lui. Il peut ensuite le projeter et sen servir darme en utilisant son Souffle. Si le poids de lobjet est inférieur au poids du disciple, le coût en points de vie est normal, sil le dépasse sans excéder le double du poids du disciple, le coût en points de vie est doublé. Il nest pas possible de déplacer un objet qui pèse plus du double du poids du disciple. Si lobjet déplacé est utilisé comme projectile au tour suivant le lancement du sort, le Maître du Mouvement doit effectuer une attaque avec un test de Souffle du Mouvement + PER contre la valeur dEsquive de sa cible. La valeur de dégâts sera égale à la MR de cette attaque, à laquelle sajoute une valeur fixée par le Docte selon la nature et le poids de lobjet lancé (sil sagit dune statuette, dun individu, dun vélo, etc.). Si le sort cherche à déplacer une personne sans son consente-ment, elle oppose sa Résistance physique (active ou passive) au test du sort.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "san",
"duree": "Instantaneous movement, effect lasts for projection",
"portee": "30 mètres",
"concentration": "Un tour avec un test de Souffle + PER ou SAN SD 16",
"critique": "",
"ingredients": "",
"resistance": "Physique (pour les personnes non consentantes)",
"coutactivation": ""
},
{
"name": "Prends ma place",
"description": "Le Maître échange sa place avec une personne ou un objet dans son environnement visible proche. La distance maxi-male est de 100 mètres. Si la cible est un objet ou un allié, aucun paramètre de Résistance nest pris en compte ; en revanche, sil sagit dun ennemi ou dun être vivant qui ne sattend pas à être déplacé de la sorte et/ou y résiste, sa Résistance physique (passive ou active) est opposée au test du Maître.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "san",
"duree": "Instantaneous",
"portee": "100 mètres",
"concentration": "Un tour avec un test de Souffle + PER ou SAN SD 16 ou Résistance physique de la cible non consen-tante (valeur la plus élevée)",
"critique": "",
"ingredients": "",
"resistance": "Physique (pour les personnes non consentantes)",
"coutactivation": ""
},
{
"name": "Lire les pensÉes",
"description": "Le Maître effleure de son Souffle lesprit de sa cible et en entrevoit les pensées les plus saillantes. Il faut être à moins de 30 mètres de la personne et pouvoir se concentrer sur elle. Celle-ci peut être en pleine activité ou en train de parler.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "esp",
"duree": "Instantaneous perception",
"portee": "30 mètres",
"concentration": "Deux minutes avec un test de Souffle + PER ou ESP SD 16 (ou Résistance psychique de la cible si elle est supérieure)",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "TÉlÉpathie",
"description": "Le Maître est capable de parler dans lesprit des cibles situées à moins de 100 mètres. Ils peuvent lui répondre de la même façon. La MR indique le nombre de personnes avec lesquelles il est capable dinteragir ainsi.",
"niveau": "3",
"competence": "Magie du Clan",
"carac1": "esp",
"carac2": "",
"duree": "Variable",
"portee": "100 mètres",
"concentration": "Une minute avec un test de Souffle + ESP SD 16",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Cri Qui fige",
"description": "LÉminence parvient à concentrer lénergie de son Souffle en un cri si aigu quil est inaudible. Pourtant, ce cri peut figer ceux qui lentendent dans un rayon de 15 mètres. En réussissant son test, lÉminence paralyse complètement ses adversaires pendant [MR] tours.",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "san",
"carac2": "pres",
"duree": "[MR] tours",
"portee": "15 mètres",
"concentration": "2 tours avec un test de Souffle + SAN ou PRES SD 18",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Souffle de la tornade",
"description": "LÉminence dessine dans lair des arabesques à une vitesse impressionnante, et génère une tornade de Souffle qui la protège de toute source de dommages physiques (balles, lames, etc.) en déviant les coups et en tenant à distance les adversaires voulant attaquer au corps-à-corps (il faut réussir un test de Ressort + FOR SD 16 pour approcher, mais même en y parvenant, les attaques portées seront déviées). La tornade est activée au tour suivant la concentration et la réussite du sort. Elle dure 5 minutes maximum. La contrepartie de ce pouvoir très puissant est que lÉminence ne peut pas réaliser dAction autre que maintenir la tornade : seuls les Bagatelles et un déplacement à vitesse normale (sans courir) sont possibles.",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "5 minutes maximum",
"portee": "Corps-à-corps",
"concentration": "1 tour avec test de Souffle + AGI ou SAN SD 18",
"critique": "",
"ingredients": "",
"resistance": "Test de Ressort + FOR SD 16 pour approcher",
"coutactivation": ""
},
{
"name": "TÉlÉportation",
"description": "LÉminence est capable de se téléporter en un lieu quelle connaît très bien. Il faut que le point darrivée ne soit pas occupé par un solide. Elle peut emmener quelquun. La méditation prend cinq minutes, mais la téléportation elle-même est instantanée. Il faut avoir étudié intensément lendroit ciblé pendant au moins un quart dheure pour pouvoir sy téléporter. La distance parcourable dépend du nombre de points de vie que lÉminence est prête à dépenser. Chaque point de MR permet de téléporter avec soi une personne supplémentaire dont la volonté ne soppose pas au déplacement (allié, mais aussi personne inconsciente ou cadavre) et avec laquelle il faut maintenir un contact physique. Toutes les personnes téléportées perdront autant de points de vie que lÉminence (celle-ci puise dans leur Souffle pour les téléporter).",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "san",
"duree": "Instantanée",
"portee": "Jusquà 30 km et plus",
"concentration": "Cinq minutes de méditation avec un test de Souffle + PER ou SAN SD 18",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": "2 points de vie pour se téléporter jusquà 10 km, 4 entre 11 et 20 km, 6 entre 21 et 30 km, etc."
},
{
"name": "Souffle du vent",
"description": "LÉminence perd sa corporéité et devient un souffle de vent. Elle ne peut pratiquement plus agir, mais reste capable de percevoir ce qui lentoure (vue, ouïe, odorat, toucher), de se mouvoir à une vitesse maximale égale à son score de Mouvement x 10 km/h, dinfluer subtilement sur son environnement (courant dair faisant claquer une porte, bruit dans les arbres, bourrasque faisant tomber un objet voire une personne, etc.) ou encore de se faire aussi discrète quune légère brise. En soufflant de toute sa puissance, elle causera un malus de 2 à des adversaires (3 si sa valeur de Mouvement est supérieure à 8). Sa présence pourra être trahie par son odeur si un test dObservation ou Survie + PER SD 17 est réussi.",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "agi",
"carac2": "san",
"duree": "Variable",
"portee": "",
"concentration": "Cinq minutes avec un test de Souffle + AGI ou SAN SD 18",
"critique": "",
"ingredients": "",
"resistance": "Observation ou Survie + PER SD 17 pour la détection",
"coutactivation": ""
},
{
"name": "Illusion vraie",
"description": "LÉminence façonne pour les personnes à proximité de son choix une illusion si parfaite quelle a lair véridique et prend la place de la réalité pendant une scène. Il faut être à moins de 100 mètres des cibles et pouvoir se concen-trer intensément. LÉminence visualise la scène à travers les éléments de lillusion quelle a élaborée. Les victimes de lillusion pourront croire quils se battent contre un géant alors quil sagit dun moulin à vent, penser quils sont grièvement blessés alors quils ont reçu une égratignure, etc. Lillusion sera meilleure et durera plus longtemps si des éléments physiques servent de supports aux fantasmes représentés. Note : le gnome Maelgur utilise ce sort dans le Carnet dau-tomne pour mettre à lépreuve les PJ. Son illusion est très complexe et rendue encore plus crédible grâce aux bribes de Grand Langage quil est capable de manipuler également.",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "per",
"carac2": "esp",
"duree": "Une scène",
"portee": "100 mètres",
"concentration": "Variable, mais au moins 5 minutes avec un test de Souffle + PER ou ESP SD 18 (ou Résistance psychique de la cible si elle est supérieure)",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "MÉtempsycose",
"description": "LÉminence est capable de transférer son esprit dans un autre corps qui doit être immobile et endormi. Grâce à la métempsycose, il est possible de devenir virtuellement immortel. Le nouveau corps conserve les Caractéristiques suivantes : Force, Constitution, Précision et Agilité. En revanche, lÉminence conserve ses scores de Perception, Sang-froid, Esprit et Prestance. La victime décède sans souffrir : son esprit est expulsé de son corps, comme si elle était morte dans son sommeil. Note : cest en recourant à la métempsycose que Morgane a pu traverser les siècles et rester la Guide du Clan au fil du temps.",
"niveau": "4",
"competence": "Magie du Clan",
"carac1": "esp",
"carac2": "san",
"duree": "Permanente",
"portee": "Contact",
"concentration": "Une heure avec un test de Souffle + ESP ou SAN SD 18",
"critique": "",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": "la totalité des points de vie du corps dorigine et 8 points de vie du corps bénéficiaire"
}
]

View File

@@ -0,0 +1,152 @@
[
{
"name": "Animation hostile",
"description": "Ce sort de base consiste à animer un construct et à lui donner un instinct agressif primaire : attaquer toute personne passant à moins de 2 mètres pour sen nourrir. Le nécromancien psalmodie dantiques incantations latines qui feront se lever le construct en trois tours. Celui-ci restera animé pendant au moins une semaine (voir plus bas).",
"niveau": 1,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Vie du construct",
"portee": "Infinie (une fois lanimation accomplie)",
"concentration": "Test de Nécromancie + ESP ou PER SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Percevoir la vie et la mort",
"description": "Leuthocaïne rend sensible aux états de vie et de mort. Elle permet, grâce à un test réussi, de percevoir la présence des êtres vivants ou morts dune taille supérieure à celle dune souris, dans un rayon égal à Perception + [MR x 3] mètres, y compris à travers les obstacles (murs, terre, eau, etc.).",
"niveau": 1,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "",
"portee": "Perception + [MR x 3] mètres",
"concentration": "Test de Nécromancie + ESP ou PER SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Programme simple",
"description": "En animant un construct, le nécromant lui donne un ordre simple : se déplacer, attaquer une cible donnée, porter une charge jusquà un endroit précis, etc. Si le construct est attaqué pendant sa tâche et que celle-ci ne consiste ni à se défendre, ni à attaquer, il ne se défendra pas. Note : si le construct avait pour ordre dattaquer une cible et quil la tue, le nécromant doit lancer un nouveau sort pour le faire attaquer une nouvelle cible.",
"niveau": 1,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Vie du construct",
"portee": "Infinie (une fois lanimation accomplie)",
"concentration": "Test de Nécromancie + ESP ou PER SD 12",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Lire la mort",
"description": "Le Discipulus, après avoir injecté de leuthocaïne dans le cerveau dune créature décédée, peut avoir accès aux perceptions que celles-ci a eues pendant les deux minutes qui ont précédé sa mort, comme sil les revivait en direct.",
"niveau": 2,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "2 minutes",
"portee": "",
"concentration": "Test de Nécromancie + ESP ou PER SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Programme complexe",
"description": "À la différence du programme simple, le nécromant peut donner un jeu dinstructions à un construct. Celles-ci doivent être parfaitement claires, cohérentes et précises. Il peut sagir de suivre une cible, de lattaquer à un endroit précis, de surveiller un lieu et donner lalerte en cas dintrusion, dattaquer plusieurs cibles successivement, etc. Si les instructions sont contradictoires, la créature tentera de les effectuer malgré tout, avec des résultats chaotiques. De même, si des événements imprévus surviennent et perturbent le programme de la créature, celle-ci tente deffectuer son programme comme si de rien nétait (elle peut, par exemple, buter éternellement sur une porte close parce que son maître ne lui a pas ordonné de louvrir). Note : aucune proposition du programme ne doit faire appel à une quelconque capacité dimprovisation. Il doit être compris comme les instructions données à un automate.",
"niveau": 2,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Vie du construct",
"portee": "Infinie",
"concentration": "Test de Nécromancie + ESP ou PER SD 14",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Percevoir via un construct",
"description": "Sans contrôler le construct, qui peut simplement obéir à son programme, le nécromant accède à aux perceptions de la créature en réussissant son test. Le nécromant entre alors en transe et perçoit par ses sens. Ses sens propres sont abolis, et son métabolisme est dramatiquement ralenti. Un médecin honnête hospitaliserait immédiatement le nécromant.",
"niveau": 3,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Jusquà 4 h",
"portee": "Jusquà 1 km",
"concentration": "Test de Nécromancie + ESP ou PER SD 16",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Contrôle direct",
"description": "Le Dominus peut à tout moment tenter de contrôler par la pensée lune de ses créations. Pour ce faire, il doit être à moins dun kilomètre de la créature quil contrôle. À chaque scène, il doit réussir un test de contrôle avec Nécromancie + ESP SD 16. En cas déchec, il peut réessayer une minute plus tard, après avoir recouvré ses esprits, mais chaque tentative lui coûte 3 points dÂme. Tant que la créature est hors de contrôle, elle tente deffectuer léventuel programme quon lui a insufflé lors de sa création, ou ne fait rien. Lors du contrôle, lorsque le nécromant perçoit via le construct, il est en transe et oublie son corps momentanément.",
"niveau": 3,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "",
"duree": "Une scène ou au maximum 1 h",
"portee": "Jusquà 1 km",
"concentration": "Test de Nécromancie + ESP SD 16",
"critique": "Si un test de contrôle est un échec critique, le construct tente de sautodétruire et le nécromant ne peut plus tenter den prendre le contrôle.",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Démultiplier sa conscience",
"description": "Grâce à son expertise des propriétés de leuthocaïne, le Dominus peut augmenter sa capacité cognitive et perceptive au point que sa conscience devient multiple. Il est ainsi capable de contrôler plusieurs constructs en même temps, et même de rester conscient dans son propre corps pendant quil les contrôle. Bien que son esprit soit dopé à leuthocaïne, cette gymnastique mentale saccompagne dun malus de - 2 à tous ses tests impliquant la Perception, la Précision et lAgilité, quils soient effectués par les constructs contrôlés ou par lui-même. Attention cependant : si un des constructs est doté de plusieurs têtes, chacune delle implique la dépense dun point dÂme supplémentaire. Note : il doit avoir lancé avec succès le sort « Contrôle direct » autant de fois quil souhaite manipuler de constructs et dépensé les points dÂme nécessaires. Ainsi, contrôler simultanément deux constructs possédant deux têtes chacun requiert 11 points dÂme (8 pour les constructs et 3 pour Démultiplier sa conscience).",
"niveau": 3,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Une scène ou au maximum 1 h",
"portee": "Jusquà 1 km",
"concentration": "Test de Nécromancie + ESP ou PER SD 16",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Légion de constructs",
"description": "Le Magister est capable danimer et contrôler alternativement jusquà 7 constructs préalablement fabriqués par ses soins en ne dépensant que 4 points dÂme. Les constructs peuvent être éloignés les uns des autres, mais pas à plus dun kilomètre du Magister. En combinaison avec Démultiplier sa conscience, ce sort permet de contrôler simultanément tous les constructs dune petite armée.",
"niveau": 4,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "Une scène ou au maximum 1 h",
"portee": "Jusquà 1 km",
"concentration": "Test de Nécromancie + ESP ou PER SD 18",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Substance mort",
"description": "Après avoir diffusé une quantité suffisante de vapeur deuthocaïne dans un espace clos, le Magister est capable de lutiliser pour percevoir les pensées de tous ceux qui la respirent et échouent à Résister psychiquement au sort. En outre, il peut plonger ses victimes dans un sommeil hanté par des rêves morbides et en cas de ME supérieure ou égale à 7, peut susciter chez elles une pulsion de mort (elles attaqueront la personne la plus proche ou bien chercheront à se supprimer de la manière la plus immédiatement efficace en fonction de leur environnement). Ouvrir les fenêtres ou créer un courant dair limitera leffet de sort à 3 tours, au risque cependant que certaines victimes se défenestrent.",
"niveau": 4,
"competence": "Nécromancie",
"carac1": "esprit",
"carac2": "perception",
"duree": "5 minutes ou tant que la vapeur deuthocaïne nest pas dissipée dans un espace très clos",
"portee": "Jusquà 100 m²",
"concentration": "Test de Nécromancie + ESP ou PER SD 18",
"critique": "En cas de ME supérieure ou égale à 7, peut susciter chez elles une pulsion de mort (elles attaqueront la personne la plus proche ou bien chercheront à se supprimer de la manière la plus immédiatement efficace en fonction de leur environnement)",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
}
]

317
srcdata/sort_theurgie.json Normal file
View File

@@ -0,0 +1,317 @@
[
{
"name": "Bénédiction",
"description": "Le théurge fait le signe de croix puis pose sa main sur lépaule de la personne quil veut bénir. Celle-ci bénéficie ensuite dun bonus de + 1 pour toutes les actions liées à lobjet de la bénédiction (pour défendre un lieu saint, restaurer une œuvre dart sacré, etc.). En cas de réussite critique, le bonus est + 2.",
"niveau": 1,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Jusquau prochain lever du soleil",
"portee": "Toucher ou soi-même",
"concentration": "1 minute (test de Théurgie + ESP ou PRES SD 12)",
"critique": "En cas de réussite critique, le bonus est + 2.",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Guérison des maladies courantes",
"description": "De même que le Christ fut responsable de nombreuses guérisons, le théurge pose ses mains sur la personne atteinte dune maladie courante ou dune blessure légère et la guérit. Les points de vie ou de Caractéristiques perdus reviennent et les symptômes de la maladie disparaissent dans les [8 - MR] heures qui suivent, ou immédiatement en cas de réussite critique.",
"niveau": 1,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Permanente",
"portee": "Toucher ou soi-même",
"concentration": "5 minutes (test de Théurgie + ESP ou PRES SD 12)",
"critique": "Ou immédiatement en cas de réussite critique.",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Purification",
"description": "Le théurge utilise du sel et de leau bénite en récitant des prières en latin pour nettoyer un lieu ou un objet souillé par une malédiction (voir p. 18), ou bien libérer une personne de linfluence des « démons ». Concrètement, si un Faux-Semblant a utilisé un Pouvoir féérique sur un lieu ou une personne, ce Miracle en dissipera les effets, à condition que le résultat de son test soit égal ou supérieur à celui du Pouvoir. Les Pouvoirs concernés sont par exemple : Altération structurelle, Chant des sirènes, Charme, Contact envoûtant, Contact fiévreux, Contagion, Égarement, Fou rire, Paroles enivrantes, Paroles de loubli, Pensées impures, Ténèbres, etc.",
"niveau": 1,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Permanente",
"portee": "",
"concentration": "De 10 minutes à 1 heure (test de Théurgie + ESP ou PRES SD 12)",
"critique": "",
"ingredients": "Sel et eau bénite",
"resistance": "",
"coutactivation": ""
},
{
"name": "Transformation de leau en vin",
"description": "À linstar du Christ lors des Noces de Cana, le théurge est capable de transformer [MR] litres deau en vin (minimum 1 litre).",
"niveau": 1,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Jusquau lendemain matin",
"portee": "",
"concentration": "2 minutes (test de Théurgie + ESP ou PRES SD 12)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Vade retro satana",
"description": "Dans plusieurs épisodes du Nouveau Testament, Jésus chasse des démons. De la même façon, le théurge récite une prière visant à repousser ces « engeances du Malin » que sont les Faux-Semblants. Si son Miracle réussit, le théurge provoque un malaise chez les Faux-Semblants entendant ses prières. Si la MR est élevée, le malaise saccompagne dhallucinations auditives et visuelles très agressives. Ce Miracle occasionne un malus de - [MR / 2] (minimum - 1) à toute action menée contre le théurge ou ses alliés et de - 5 en cas de succès critique.",
"niveau": 1,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une scène",
"portee": "15 mètres maximum",
"concentration": "1 tour avant le test (test de Théurgie + ESP ou PRES SD 12)",
"critique": "Et de - 5 en cas de succès critique.",
"ingredients": "",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Grand Rituel dexorcisme",
"description": "Le théurge, après avoir aspergé le Faux-Semblant de pétrole, récite la série de prières requise, appose une croix en argent sur différentes parties du corps de sa victime avant de limmoler et de réciter les ultimes paroles. En fonction de la MR de son test, il ôte au moins 3 points de Féérie (en général, [1 + MR] points) si le rituel a été mené jusquau bout, sans interruption. Ce Miracle peut être recommencé autant de fois quil le faudra pour « libérer » complètement une fée de sa féérie. Notes : cet exorcisme fonctionne comme une malédiction. Un Faux-Semblant exorcisé de cette manière ne pourra jamais retrouver sa féérie, à moins de bénéficier dun rituel de réenchantement (voir p. 25). Dautres formes dexorcisme issues de lévangile apocryphe de Guillaume de Dalmatie existent et permettent de contrecarrer les pouvoirs maléfiques des fées et des mages. Leur existence est laissée à limagination du Docte.",
"niveau": 2,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "",
"portee": "La cible doit être à portée de main",
"concentration": "Au moins 15 minutes (test de Théurgie + ESP ou PRES SD 14)",
"critique": "",
"ingredients": "Pétrole, croix en argent",
"resistance": "",
"coutactivation": ""
},
{
"name": "Guérison des handicaps",
"description": "Ainsi que le rapportent plusieurs passages des Évangiles, le Christ na pas guéri que des maladies. Il a aussi redonné la vue à un aveugle de naissance, louïe à un sourd, la parole à un muet. Il a rendu lusage de leurs membres à une femme ne pouvant plus marcher ainsi quà un homme paralysé de la main. Il a guéri un épileptique. De même, le théurge peut guérir un handicap de ce type, au moyen dune longue prière et dune imposition des mains sur lorgane ou le membre souffrant.",
"niveau": 2,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Permanente",
"portee": "",
"concentration": "10 minutes (test de Théurgie + ESP ou PRES SD 14)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Marche sur leau",
"description": "Comme dans lépisode célèbre du Nouveau Testament où Jésus marche sur la mer de Galilée, la prière du théurge lui permet de se déplacer à la surface dune étendue deau profonde, y compris celle de la mer, comme sil sagissait dun sol plus ou moins solide en fonction de la MR. Avec une MR de 0 ou 1, il senfoncera comme dans un marais (jusquaux genoux). Avec une MR de 7, il pourra courir comme sur de la terre battue.",
"niveau": 2,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une scène ou 1 heure maximum",
"portee": "Soi-même",
"concentration": "1 minute (test de Théurgie + ESP ou PRES SD 14)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Ailes divines",
"description": "Le théurge est capable de voler ou de faire voler une cible, consentante ou non. Lêtre volant va à la même vitesse que nimporte quelle fée munie dailes (Mouvement + 2). Sil est amené à devoir faire des tests de vol, il utilisera la Compétence Mouvement.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une scène",
"portee": "Si la cible nest pas le théurge lui-même, elle doit être à portée de voix et de vue",
"concentration": "1 minute (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Multiplication des pains",
"description": "Comme le relate Saint-Matthieu, Jésus multiplia une petite quantité de pain en un nombre suffisant pour nourrir une foule de plusieurs milliers dhommes. Le théurge peut de même bénir des pains et en multiplier le nombre par sa MR.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Un repas",
"portee": "",
"concentration": "3 minutes (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Pêche miraculeuse",
"description": "Comme Jésus le fit au lac Génésareth, le théurge bénit un filet de pêche qui se gorgera de poissons quand il sera déployé au milieu dun lac ou en pleine mer. Plus la MR est élevée, plus la quantité de poissons sera importante.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une scène ; possible une fois par mois",
"portee": "",
"concentration": "3 minutes (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "Un filet de pêche",
"resistance": "",
"coutactivation": ""
},
{
"name": "Pentacle de protection",
"description": "Le théurge trace un pentacle à laide de sel consacré contenant du chlorure dargent, en psalmodiant sans sarrêter une litanie de démonologie. Ce sel spécial est, grâce au rituel, dix fois plus lourd que la normale et résiste au vent et au piétinement. Surtout, il provoque une répulsion liée à largent. Une fois achevé, le pentacle peut être dissimulé sous un tapis, des décorations, etc. Les Faux-Semblants y pénétrant subiront 4 points de dégâts et seront pris de nausées et vomissements leur causant un malus de - 3, qui disparaîtra un tour après être sorti du pentacle. En outre, tout Pouvoir féérique utilisé sur une personne se situant à lintérieur du pentacle souffrira dun malus de - 2. Les deux malus sont cumulables. Toucher le sel consacré pour rompre le pentacle causera 8 points de dégâts (mieux vaut utiliser un outil).",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Tant que le pentacle est intact",
"portee": "",
"concentration": "5 minutes ou plus (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "Sel consacré contenant du chlorure dargent",
"resistance": "Psychique",
"coutactivation": ""
},
{
"name": "Baiser au lépreux",
"description": "Cest la variante la plus puissante des Miracles de guérison. Le théurge, en posant ses lèvres sur le patient après avoir récité sa prière, est capable de guérir nimporte quelle maladie (même réputée incurable ou magique), empoisonnement ou blessure, mais aussi de faire repousser des membres ou des organes, etc.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Définitive",
"portee": "Contact avec la bouche",
"concentration": "30 secondes avant le baiser (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Bouclier de la foi",
"description": "La foi du théurge en Jésus est si forte quelle le protège, lui et ses alliés. Toute attaque de Mêlée ou Tir contre eux est ralentie et cause la moitié des points de dégâts normaux. En cas de réussite critique, les alliés du théurge ne subissent aucune blessure physique.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une scène",
"portee": "5 mètres autour du théurge",
"concentration": "1 tour avant le test (test de Théurgie + ESP ou PRES SD 16)",
"critique": "En cas de réussite critique, les alliés du théurge ne subissent aucune blessure physique.",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Brûle tel le Buisson ardent !",
"description": "Le théurge finit sa prière en nommant la personne, la chose ou le lieu quil désire embraser. Sil sagit dune chose ou dun lieu qui ne possède pas de vrai nom, le théurge doit être à portée de vue ; sinon, il lui suffit de prononcer le vrai nom de la personne, du lieu ou de la chose à embraser. Si la cible est un être vivant, elle perd 3 points de vie par tour, jusquà ce quelle nait plus quun point de vie et soit pratiquement invalide. Ce Miracle ne tue pas complètement sa cible. Note : ce feu magique reproduisant un Miracle de Jésus affecte les fées normalement insensibles au feu comme les phénix, à leur grande stupéfaction. En outre, la notion de « vrai nom » a un lien avec le Grand Langage, comme pour certains sorts de Druidisme.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Jusquà consomption totale ; si la cible est vivante, jusquà ce quelle nait plus quun point de vie",
"portee": "À vue si la chose à consumer ne possède pas de vrai nom",
"concentration": "2 tours avant le test (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "",
"resistance": "Physique ou psychique, au choix",
"coutactivation": ""
},
{
"name": "Eau de vérité",
"description": "Le théurge qui contemple un bénitier peut espionner un lieu quil connaît et quil a déjà visité au moins une fois. La vision divine lui permet de voir ce quil désire voir, sous langle quil désire adopter. En revanche, il nentend pas ce qui se dit dans lendroit observé.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Jusquà ce que le théurge quitte le bénitier des yeux",
"portee": "",
"concentration": "3 minutes (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "Un bénitier",
"resistance": "",
"coutactivation": ""
},
{
"name": "Insensibilité des martyrs",
"description": "Une fois sa prière récitée, le théurge est capable, pour une durée limitée, de supporter des souffrances physiques intenses. La douleur nest pas complètement effacée, mais devient tolérable, et il est possible den faire abstraction moyennant un test de Fortitude ou Ressort + Sang-froid SD 12. Quand la durée du Miracle a cessé, si la cause des souffrances subies na pas disparu, un océan de douleur submergera le théurge. Il devra réussir le test cité précédemment avec un SD 18 ou sévanouir immédiatement. Note : une version spécifique de ce Miracle a été développée par les Croisés païens pour supporter le contact de largent. Les rougeurs qui apparaissent normalement sur la peau touchée par le métal sont fortement atténuées.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "1 heure (2 grâce à une réussite critique)",
"portee": "Soi-même",
"concentration": "1 minute (test de Théurgie + ESP ou PRES SD 16)",
"critique": "2 grâce à une réussite critique",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Miracle de Lazare",
"description": "Le théurge est capable de ressusciter un mort décédé depuis moins dune semaine. Le cadavre doit être pur de toute intervention nécromantique. Lindividu retrouvera toutes ses facultés, mais aura de légères pertes de mémoire concernant ses derniers jours, pendant une semaine. Ce Miracle fonctionne différemment pour les morts plus anciens. Dans une crypte ou un cimetière sacré, le théurge peut invoquer jusquà [MR x 2] cadavres ou squelettes des défunts présents (Rang Larbin, aucun malus de blessure, 21 points de vie) pour le protéger temporairement. Ils retourneront dans leur tombe après la scène. Ces cadavres mettront 1 tour à sextraire de la terre en commençant par sortir leurs mains, causant une certaine épouvante (test de Ressort ou Fortitude + SAN SD 13 pour ne pas avoir la « peur au ventre »).",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "",
"portee": "À portée de voix et de vue du cadavre à ressusciter",
"concentration": "3 tours (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Pentacle demprisonnement",
"description": "Les théurges démonologues sont passés maîtres dans lart de capturer les « démons ». Une fois quils en ont neutralisé un, ils peuvent tracer un pentacle avec un sel consacré (constitué de chlorure dargent et de sodium), allumer un cierge au sommet des cinq branches de létoile inscrite dans le pentacle et psalmodier des paroles demprisonnement. Si le pentacle est réussi, le Faux-Semblant qui sy trouve ne peut en sortir, est incapable de se démasquer et ne peut utiliser aucun Pouvoir féérique. Le sel consacré agit comme une barrière répulsive et douloureuse pour lui. Sen approcher à moins de 10 cm est très difficile et cause une douleur affreuse (brûlure due à largent ; sapprocher du sel cause 4 points de dégâts et le toucher 8 points). Souffler sur le sel ne fonctionne pas, car lenchantement rend ce sel dix fois plus lourd que la normale. Le Faux-Semblant a deux moyens de se libérer : tenter de surmonter la force de répulsion en balayant le sel de la main ou du pied (perte de 8 points de vie et nécessité de réussir un test de Ressort ou Fortitude + FOR SD 18) ou bien résister psychiquement au renouvellement de la puissance magique du pentacle qui a lieu chaque jour à minuit, contre un SD égal au test effectué par le lanceur du sort (minimum 18). Dissiper ainsi la puissance magique du pentacle dispersera le sel en une poussière inoffensive.",
"niveau": 3,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Tant que le pentacle est intact",
"portee": "",
"concentration": "3 à 5 minutes (test de Théurgie + ESP ou PRES SD 16)",
"critique": "",
"ingredients": "Sel consacré (chlorure dargent et de sodium), cierge",
"resistance": "Psychique (à minuit seulement) et physique pour surmonter la répulsion du sel",
"coutactivation": ""
},
{
"name": "Invocation de Séraphin",
"description": "Le théurge invoque, pour lassister, une créature angélique, semi-éthérée, auréolée de lumière et dotée de trois paires dailes enflammées. Celle-ci est de rang Pointure et se bat avec une arme enflammée (lance, épée ou fouet), causant 6 points de dégâts combinés. LApôtre peut en invoquer jusquà trois à la fois. Les séraphins ont une grande résistance à la magie et bénéficient dun bonus de + 5 lorsquils sont directement ou indirectement visés par un sort ou tout Pouvoir féérique.",
"niveau": 4,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Une journée",
"portee": "",
"concentration": "3 tours (test de Théurgie + ESP ou PRES SD 18)",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
},
{
"name": "Résurrection christique",
"description": "Comme Jésus, le théurge de niveau Apôtre est capable de revenir à la vie au bout de deux jours. Après avoir appris ce Miracle, dès quil prononce la longue prière qui y est associée, il bénéficie de sa protection jusquà la fin de ses jours. Son effet ninterviendra que sil meurt autrement que de vieillesse. Il ne peut recourir à ce Miracle quune seule fois dans son existence.",
"niveau": 4,
"competence": "Théurgie",
"carac1": "esp",
"carac2": "pres",
"duree": "Jusquà la fin de ses jours",
"portee": "Soi-même",
"concentration": "",
"critique": "",
"ingredients": "",
"resistance": "",
"coutactivation": ""
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"id": "fvtt-les-heritiers", "id": "fvtt-les-heritiers",
"description": "Les Héritiers pour FoundryVTT", "description": "Les Héritiers pour FoundryVTT",
"version": "13.0.0", "version": "13.0.1",
"authors": [ "authors": [
{ {
"name": "Uberwald/LeRatierBretonnien", "name": "Uberwald/LeRatierBretonnien",
@@ -21,7 +21,7 @@
}, },
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-13.0.0.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-les-heritiers/archive/fvtt-les-heritiers-13.0.1.zip",
"languages": [ "languages": [
{ {
"lang": "fr", "lang": "fr",
@@ -49,7 +49,8 @@
"desavantages", "desavantages",
"pouvoirs", "pouvoirs",
"profils", "profils",
"archetypes-fees" "archetypes-fees",
"magie-sorts"
], ],
"folders": [] "folders": []
}, },
@@ -63,8 +64,9 @@
"folders": [] "folders": []
} }
], ],
"packs": "packs": [
["scenes"] "scenes"
]
} }
], ],
"packs": [ "packs": [
@@ -128,6 +130,18 @@
"ASSISTANT": "OWNER" "ASSISTANT": "OWNER"
} }
}, },
{
"type": "Item",
"label": "Sorts",
"name": "magie-sorts",
"path": "packs/magie-sorts",
"system": "fvtt-les-heritiers",
"flags": {},
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
},
{ {
"type": "Item", "type": "Item",
"label": "Fées", "label": "Fées",
@@ -201,5 +215,21 @@
"compatibility": { "compatibility": {
"minimum": "13", "minimum": "13",
"verified": "13" "verified": "13"
},
"flags": {
"hotReload": {
"extensions": [
"css",
"html",
"hbs",
"json"
],
"paths": [
"styles",
"./",
"templates",
"lang/fr.json"
]
}
} }
} }

View File

@@ -100,7 +100,7 @@
}, },
"pres": { "pres": {
"label": "Prestance", "label": "Prestance",
"labelnorm": "prestance", "labelnorm": "pres",
"abbrev": "pres", "abbrev": "pres",
"kind": "mental", "kind": "mental",
"value": 1, "value": 1,
@@ -309,7 +309,7 @@
"effet": "", "effet": "",
"duree": "", "duree": "",
"portee": "", "portee": "",
"resistance": "", "resistance": "",
"resistanceautre":"", "resistanceautre":"",
"isvirulence": false, "isvirulence": false,
"virulence":"", "virulence":"",
@@ -329,7 +329,7 @@
"cibles": "", "cibles": "",
"effet": "", "effet": "",
"portee": "", "portee": "",
"resistance": "", "resistance": "",
"resistanceautre":"", "resistanceautre":"",
"pointsusagecourant": -1, "pointsusagecourant": -1,
"isvirulence": false, "isvirulence": false,
@@ -355,9 +355,10 @@
] ]
}, },
"sort": { "sort": {
"niveau": "novice", "niveau": "1",
"competence": "Druidisme", "competence": "Druidisme",
"carac": "esp", "carac1": "esp",
"carac2": "none",
"duree": "", "duree": "",
"portee": "", "portee": "",
"concentration": "", "concentration": "",

View File

@@ -17,9 +17,11 @@
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" <h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
data-key="{{key}}">{{carac.label}}</a></h4> data-key="{{key}}">{{carac.label}}</a></h4>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short" <input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" /> name="system.caracteristiques.{{key}}.value" data-tooltip="Valeur actuelle" value="{{carac.value}}"
data-dtype="Number" />
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short" <input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" /> name="system.caracteristiques.{{key}}.rang" data-tooltip="Rang" value="{{carac.rang}}"
data-dtype="Number" />
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
@@ -34,9 +36,11 @@
<h4 class="item-name-label competence-name roll-style"><a class="roll-carac" <h4 class="item-name-label competence-name roll-style"><a class="roll-carac"
data-key="{{key}}">{{carac.label}}</a></h4> data-key="{{key}}">{{carac.label}}</a></h4>
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short" <input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-dtype="Number" /> name="system.caracteristiques.{{key}}.value" value="{{carac.value}}" data-tooltip="Valeur actuelle"
data-dtype="Number" />
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short" <input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-dtype="Number" /> name="system.caracteristiques.{{key}}.rang" value="{{carac.rang}}" data-tooltip="Rang"
data-dtype="Number" />
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
@@ -233,7 +237,7 @@
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<button class="roll-assomer-arme button-sheet-roll">Assomer</button> <button class="roll-assomer-arme button-sheet-roll">Assommer</button>
</span> </span>
{{#if arme.system.isMelee}} {{#if arme.system.isMelee}}
@@ -492,12 +496,11 @@
<div class="flexrow"> <div class="flexrow">
<ul> <ul>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-medium roll-style"><a class="item-field-label-short" <label class="item-field-label-medium roll-style">Point d'Ame</label>
data-rang-key="feerie">Point d'Ame</a></label>
<input type="text" class="item-field-label-short" name="system.magie.pointsame.value" <input type="text" class="item-field-label-short" name="system.magie.pointsame.value"
value="{{system.magie.pointsame.value}}" data-dtype="Number" /> value="{{system.magie.pointsame.value}}" data-dtype="Number" />
<input type="text" class="item-field-label-short" name="system.magie.pointsame.max" <input type="text" class="item-field-label-short" name="system.magie.pointsame.max"
value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if issGM}} {{else}} disabled {{/if}} /> value="{{system.magie.pointsame.max}}" data-dtype="Number" {{#if isGM}} {{else}} disabled {{/if}} />
</li> </li>
</ul> </ul>
</div> </div>
@@ -505,12 +508,12 @@
{{#each magieList as |magie idx|}} {{#each magieList as |magie idx|}}
<li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence"> <li class="item flexrow " data-item-id="{{magie.competence._id}}" data-item-type="competence">
<h2 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short" <h2 class="flexrow"><label class="items-title-text "><a class="roll-competence item-field-label-short"
data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label> data-attr-key="tochoose">{{magie.name}} {{magie.competence.system.niveau}} </a> </label>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a> <a class="item-control item-edit" title="Editer l'item"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Supprimer l'item"><i class="fas fa-trash"></i></a>
</div> </div>
</h2> </h2>
</li> </li>
<div class="sheet-box color-bg-archetype"> <div class="sheet-box color-bg-archetype">
@@ -524,8 +527,10 @@
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-add" data-type="sort" title="Ajouter un sort"><i {{#if @root.isGM}}
class="fas fa-plus"></i></a> <a class="item-control item-add" data-type="sort" data-sort-competence={{magie.name}}
title="Ajouter un sort"><i class="fas fa-plus"></i></a>
{{/if}}
</div> </div>
</li> </li>
{{#each sorts as |sort key|}} {{#each sorts as |sort key|}}
@@ -657,41 +662,47 @@
</div> </div>
<div class="flexrow"> <div class="flexrow">
<ul> <div class="grid-2col">
<li class="flexrow item"> <ul>
<label class="item-field-label-long2">Nom humain</label> <input type="text" class="" <li class="flexrow item">
name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" /> <label class="item-field-label-long2">Nom humain</label> <input type="text" class=""
</li> name="system.biodata.nomhumain" value="{{system.biodata.nomhumain}}" data-dtype="String" />
<li class="flexrow item"> </li>
<label class="item-field-label-long2">Activités</label> <input type="text" class="" <li class="flexrow item">
name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" /> <label class="item-field-label-long2">Activités</label> <input type="text" class=""
</li> name="system.biodata.activites" value="{{system.biodata.activites}}" data-dtype="String" />
<li class="flexrow item"> </li>
<label class="item-field-label-long2">Apparence masquée</label> <input type="text" class="" <li class="flexrow item">
name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}" data-dtype="String" /> <label class="item-field-label-long2">Apparence masquée</label> <input type="text" class=""
</li> name="system.biodata.apparencemasquee" value="{{system.biodata.apparencemasquee}}"
<li class="flexrow item"> data-dtype="String" />
<label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class="" </li>
name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}" <li class="flexrow item">
data-dtype="String" /> <label class="item-field-label-long2">Apparence démasquée</label> <input type="text" class=""
</li> name="system.biodata.apparencedemasquee" value="{{system.biodata.apparencedemasquee}}"
<li class="flexrow item"> data-dtype="String" />
<label class="item-field-label-long2">Titre et Famille</label> <input type="text" class="" </li>
name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" /> </ul>
</li> <ul>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-long2">Factions féériques</label> <input type="text" class="" <label class="item-field-label-long2">Titre et Famille</label> <input type="text" class=""
name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}" data-dtype="String" /> name="system.biodata.titrefamille" value="{{system.biodata.titrefamille}}" data-dtype="String" />
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class="" <label class="item-field-label-long2">Factions féériques</label> <input type="text" class=""
name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}" data-dtype="String" /> name="system.biodata.factionfeerique" value="{{system.biodata.factionfeerique}}" data-dtype="String" />
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-long2">Langues</label> <input type="text" class="" <label class="item-field-label-long2">Traits de caractères dominants</label> <input type="text" class=""
name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" /> name="system.biodata.traitscaracteres" value="{{system.biodata.traitscaracteres}}"
</li> data-dtype="String" />
</ul> </li>
<li class="flexrow item">
<label class="item-field-label-long2">Langues</label> <input type="text" class=""
name="system.biodata.langues" value="{{system.biodata.langues}}" data-dtype="String" />
</li>
</ul>
</div>
</div> </div>
<div class="grid grid-3col"> <div class="grid grid-3col">
@@ -721,6 +732,7 @@
{{/if}} {{/if}}
</ul> </ul>
</div> </div>
<div> <div>
<ul> <ul>
<li class="item flexrow"> <li class="item flexrow">
@@ -772,6 +784,16 @@
</ul> </ul>
</div> </div>
</div> </div>
{{#if isGM}}
{{#if system.biodata.magie}}
<div class="magie-text-helper"><strong>Magie activée : </strong>Glissez/Déplacez la/les compétences de Magie
nécessaires
depuis le compendium dans l'onglet "Magie", puis faites de même pour les sorts.
</div>
{{/if}}
{{/if}}
</div> </div>
<div class="tab notes" data-group="primary" data-tab="notes"> <div class="tab notes" data-group="primary" data-tab="notes">

View File

@@ -12,7 +12,7 @@
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
{{log this}} {{log this}}
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label item-field-label-long2">Compétence de Magie </label> <label class="generic-label item-field-label-long2">Compétence de Magie </label>
<select class="status-small-label color-class-common item-field-label-long" type="text" <select class="status-small-label color-class-common item-field-label-long" type="text"
name="system.competence" value="{{system.competence}}" data-dtype="String"> name="system.competence" value="{{system.competence}}" data-dtype="String">
@@ -21,10 +21,19 @@
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label item-field-label-long2">Carac </label> <label class="generic-label item-field-label-long2">Carac 1 </label>
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.carac" <select class="status-small-label color-class-common item-field-label-long" type="text" name="system.carac1"
value="{{system.carac}}" data-dtype="string"> value="{{system.carac1}}" data-dtype="string">
{{selectOptions config.caracList selected=system.carac}} {{selectOptions config.caracList selected=system.carac1}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long2">Carac 2 </label>
<select class="status-small-label color-class-common item-field-label-long" type="text" name="system.carac2"
value="{{system.carac2}}" data-dtype="string">
<option value="none">Aucune</option>
{{selectOptions config.caracList selected=system.carac2}}
</select> </select>
</li> </li>

View File

@@ -14,35 +14,42 @@
<span class="roll-dialog-label">{{rang.value}}</span> <span class="roll-dialog-label">{{rang.value}}</span>
</div> </div>
{{/if}} {{/if}}
{{#if (eq mode "carac")}} {{#if (eq mode "carac")}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Caracteristique</span> <span class="roll-dialog-label">Caracteristique</span>
<span class="roll-dialog-label">{{carac.label}} ({{carac.value}})</span> <span class="roll-dialog-label">{{carac.label}} ({{carac.value}})</span>
</div> </div>
{{else}} {{else}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Caracteristique</span> <span class="roll-dialog-label">Caracteristique</span>
<select class="status-small-label color-class-common" id="caracKey" type="text" name="caracKey" value="caracKey" data-dtype="string" > <select class="status-small-label color-class-common" id="caracKey" type="text" name="caracKey" value="caracKey"
{{selectOptions caracList selected=caracKey valueAttr="abbrev" nameAttr="abbrev" labelAttr="label"}} data-dtype="string">
</select> {{selectOptions caracList selected=caracKey valueAttr="abbrev" nameAttr="abbrev" labelAttr="label"}}
</div> </select>
</div>
{{/if}}
{{#if caracMessage}}
<div class="flexrow">
<span class="roll-dialog-label">{{caracMessage}}</span>
</div>
{{/if}} {{/if}}
{{#if competence}} {{#if competence}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">{{competence.name}}</span> <span class="roll-dialog-label">{{competence.name}}</span>
<span class="small-label roll-dialog-label">{{competence.system.niveau}}</span> <span class="small-label roll-dialog-label">{{competence.system.niveau}}</span>
</div> </div>
{{#if competence.nbSpec}} {{#if competence.nbSpec}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Spécialités : {{competence.specList}}</span> <span class="roll-dialog-label">Spécialités : {{competence.specList}}</span>
</div> </div>
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Bonus de spécialité ?</span> <span class="roll-dialog-label">Bonus de spécialité ?</span>
<input type="checkbox" class="item-field-label-short" id="useSpecialite" {{checked useSpecialite}}/> <input type="checkbox" class="item-field-label-short" id="useSpecialite" {{checked useSpecialite}} />
</div> </div>
{{/if}} {{/if}}
{{/if}} {{/if}}
{{#if pouvoir}} {{#if pouvoir}}
@@ -54,19 +61,20 @@
<span class="roll-dialog-label">Activation : </span> <span class="roll-dialog-label">Activation : </span>
<span class="small-label roll-dialog-label">{{pouvoir.system.activation}}</span> <span class="small-label roll-dialog-label">{{pouvoir.system.activation}}</span>
</div> </div>
{{#if pouvoirBase}} {{#if pouvoirBase}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">{{pouvoirBase.label}} : </span> <span class="roll-dialog-label">{{pouvoirBase.label}} : </span>
<span class="small-label roll-dialog-label">{{pouvoirBase.value}}</span> <span class="small-label roll-dialog-label">{{pouvoirBase.value}}</span>
</div> </div>
{{/if}} {{/if}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Points d'usage consommés : </span> <span class="roll-dialog-label">Points d'usage consommés : </span>
<select class="status-small-label color-class-common" id="pouvoirPointsUsage" type="Number" name="pouvoirPointsUsage" value="pouvoirPointsUsage" data-dtype="Number" > <select class="status-small-label color-class-common" id="pouvoirPointsUsage" type="Number"
{{selectOptions config.pointsUsageList selected=pouvoirPointsUsage}} name="pouvoirPointsUsage" value="pouvoirPointsUsage" data-dtype="Number">
</select> {{selectOptions config.pointsUsageList selected=pouvoirPointsUsage}}
</div> </select>
{{/if}} </div>
{{/if}}
{{#each rulesMalus as |malus key|}} {{#each rulesMalus as |malus key|}}
<div class="flexrow"> <div class="flexrow">
@@ -80,34 +88,35 @@
<span class="roll-dialog-label">Attaque à plusieurs </span> <span class="roll-dialog-label">Attaque à plusieurs </span>
<select class="roll-dialog-label" id="bonus-attaque-plusieurs" type="text" value="{{bonusAttaquePlusieurs}}" <select class="roll-dialog-label" id="bonus-attaque-plusieurs" type="text" value="{{bonusAttaquePlusieurs}}"
data-dtype="Number"> data-dtype="Number">
{{selectOptions config.attaquePlusieursList selected=pouvoirPointsUsage}} {{selectOptions config.attaquePlusieursList selected=pouvoirPointsUsage}}
</select> </select>
</div> </div>
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Attaque dans le dos ?</span> <span class="roll-dialog-label">Attaque dans le dos ?</span>
<input type="checkbox" class="item-field-label-short" id="attaqueDos" {{checked attaqueDos}}/> <input type="checkbox" class="item-field-label-short" id="attaqueDos" {{checked attaqueDos}} />
</div>
<div class="flexrow">
<span class="roll-dialog-label">Attaque à deux armes </span>
<select class="roll-dialog-label" id="bonus-attaque-deux-armes" type="text" value="{{attaqueDeuxArmes}}"
data-dtype="Number">
{{selectOptions config.attaque2ArmesListe selected=attaqueDeuxArmes valueAttr="value" nameAttr="value"
labelAttr="label"}}
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Seconde arme</span>
<select class="roll-dialog-label" id="bonus-attaque-seconde-arme" type="text" value="{{secondeArme}}"
data-dtype="String">
{{selectOptions armes selected=secondeArme valueAttr="id" nameAttr="id" labelAttr="name"}}
</select>
</div> </div>
<div class="flexrow">
<span class="roll-dialog-label">Attaque à deux armes </span>
<select class="roll-dialog-label" id="bonus-attaque-deux-armes" type="text" value="{{attaqueDeuxArmes}}"
data-dtype="Number">
{{selectOptions config.attaque2ArmesListe selected=attaqueDeuxArmes valueAttr="value" nameAttr="value" labelAttr="label"}}
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">Seconde arme</span>
<select class="roll-dialog-label" id="bonus-attaque-seconde-arme" type="text" value="{{secondeArme}}"
data-dtype="String">
{{selectOptions armes selected=secondeArme valueAttr="id" nameAttr="id" labelAttr="name"}}
</select>
</div>
{{/if}} {{/if}}
{{#if arme}} {{#if arme}}
<li class="flexrow item"> <li class="flexrow item">
<label class="roll-dialog-label">Ataque ciblée : </label> <label class="roll-dialog-label">Ataque ciblée : </label>
<select class="roll-dialog-label" type="text" id="attaque-cible" value="{{attaqueCible}}" data-dtype="String"> <select class="roll-dialog-label" type="text" id="attaque-cible" value="{{attaqueCible}}" data-dtype="String">
{{selectOptions config.attaqueCible selected=attaqueCible}} {{selectOptions config.attaqueCible selected=attaqueCible}}
</select> </select>
</li> </li>
{{/if}} {{/if}}
@@ -135,7 +144,8 @@
<span class="roll-dialog-label">Bonus/Malus </span> <span class="roll-dialog-label">Bonus/Malus </span>
<select class="roll-dialog-label" id="bonus-malus-context" type="text" value="{{bonusMalusContext}}" <select class="roll-dialog-label" id="bonus-malus-context" type="text" value="{{bonusMalusContext}}"
data-dtype="Number"> data-dtype="Number">
{{selectOptions config.bonusMalusContext selected=bonusMalusContext valueAttr="value" nameAttr="value" labelAttr="label"}} {{selectOptions config.bonusMalusContext selected=bonusMalusContext valueAttr="value" nameAttr="value"
labelAttr="label"}}
</select> </select>
</div> </div>
@@ -146,7 +156,8 @@
{{else}} {{else}}
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Difficulté</span> <span class="roll-dialog-label">Difficulté</span>
<select class="status-small-label color-class-common" id ="sdValue" type="text" name="sdValue" value="sdValue" data-dtype="string" > <select class="status-small-label color-class-common" id="sdValue" type="text" name="sdValue" value="sdValue"
data-dtype="string">
{{selectOptions sdList selected=sdValue}} {{selectOptions sdList selected=sdValue}}
</select> </select>
</div> </div>