Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
270471f137 | |||
da9d0e41a5 | |||
42f25aa186 | |||
5f9057db37 | |||
82731c2d40 | |||
a75a3bf157 | |||
e6e6de35df | |||
7341580a7b |
1
assets/icons/icon_fist.svg
Normal file
1
assets/icons/icon_fist.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><defs><filter id="shadow-1" height="300%" width="300%" x="-100%" y="-100%"><feFlood flood-color="rgba(255, 255, 255, 1)" result="flood"></feFlood><feComposite in="flood" in2="SourceGraphic" operator="atop" result="composite"></feComposite><feGaussianBlur in="composite" stdDeviation="15" result="blur"></feGaussianBlur><feOffset dx="0" dy="0" result="offset"></feOffset><feComposite in="SourceGraphic" in2="offset" operator="over"></feComposite></filter></defs><g class="" style="" transform="translate(0,0)"><path d="M227.227 21.777c-1.845 0-3.704.05-5.567.157-15.314.875-30.76 5.305-39.494 10.863l-.008 73.15c2.884-.094 5.777-.147 8.676-.142 23.382.036 47.104 3.286 68.47 9.513l.01-87.507c-7.034-3.518-19.178-6.03-32.087-6.033zm80.74 9.16c-11.925.15-23.077 2.364-29.967 5.596l-.008 77.602v7.658c38.486 15.67 64.814 42.48 58.735 78.764l-.96 5.73-5.562 1.674c-17.45 5.253-34.872 9.703-52.225 13.335V246.53c25.562-.704 51.327-2.687 77.145-6.098l.02-197.928c-8.284-5.563-23.508-10.243-38.842-11.328-2.792-.198-5.584-.273-8.336-.238zM143.223 46.294c-1.176-.015-2.374-.01-3.588.02-4.175.1-8.533.468-12.903 1.152-15.67 2.454-31.477 8.565-40.406 15.402l-.01 72.955c18.808-15.81 46.704-25.143 77.15-28.54l.007-57.966c-4.82-1.752-12.018-2.916-20.25-3.023zm258.394 3.46c-10.804.117-20.722 1.93-27.043 4.655l-.02 183.182c25.074-4.02 50.16-9.412 75.122-16.358l1.99-158.447c-8.352-5.9-23.648-11.025-39.05-12.553-3.698-.366-7.398-.517-11-.478zm-222.775 74.202c-53.72.702-101.407 20.365-97.887 66.6 15.836-3.918 30.84-5.893 44.94-6.1 34.84-.51 64.213 9.704 87.318 27.613 34.608-3.11 69.852-10 105.412-20.314.14-41.287-74.098-68.657-139.783-67.8zm-48.877 78.65c-1.296-.003-2.603.012-3.92.045-17.256.436-36.45 4.03-57.566 11.037 5.79 53.808 26.325 106.41 58.5 143.346 6.226 7.15 12.856 13.712 19.875 19.615 29.303 9.282 69.26 12.917 110.534 12.14 3.777-55.805-8.717-108.357-36.193-142.74-21.265-26.61-51.064-43.39-91.232-43.444zm129.326 22.282c-9.358 1.637-18.69 3.016-27.995 4.15 1.54 1.74 3.043 3.52 4.502 5.346 3.146 3.937 6.094 8.062 8.873 12.334 9.916.144 19.868.125 29.857-.106H259.29v-21.723zm191.817 15.343c-65.406 17.826-131.462 25.41-195.85 25.315 16.998 35.144 23.828 78.093 21.013 122.6 42.482-2.08 85.03-8.23 118.187-15.983 26.693-32.78 47.37-77.118 56.65-131.932zM400.51 389.9c-38.334 9.145-87.95 16.056-136.873 17.454-47.67 1.36-94.336-2.228-129.448-15.262l-.01 78.93c27.187 12.568 76.414 20.205 127.318 20.298 51.224.094 104.214-7.173 139-20.773l.012-80.647z" fill="#a7de9a" fill-opacity="1" filter="url(#shadow-1)"></path></g></svg>
|
After Width: | Height: | Size: 2.6 KiB |
@ -290,6 +290,24 @@ i.fvtt-cthulhu-eternal {
|
||||
width: auto;
|
||||
border: none;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-hp {
|
||||
gap: 2px;
|
||||
align-items: center;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-hp input {
|
||||
flex: none;
|
||||
width: 2rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-hp .damage-bonus {
|
||||
font-size: calc(var(--font-size-standard) * 0.8);
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-hp .hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-dv .form-fields,
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-left .protagonist-dmax .form-fields {
|
||||
flex: none;
|
||||
@ -395,44 +413,9 @@ i.fvtt-cthulhu-eternal {
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos label {
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right label {
|
||||
min-width: 120px;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp {
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
align-items: center;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-value .form-fields input {
|
||||
flex: none;
|
||||
width: 50px;
|
||||
margin-left: 4px;
|
||||
font-size: calc(var(--font-size-standard) * 1.4);
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-max {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin: 3px 0;
|
||||
align-items: center;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .protagonist-hp-max input {
|
||||
width: 50px;
|
||||
text-align: center;
|
||||
font-size: calc(var(--font-size-standard) * 1.4);
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc .protagonist-right .protagonist-infos .protagonist-hp .hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-pc-play {
|
||||
min-width: 500px;
|
||||
}
|
||||
@ -462,6 +445,10 @@ i.fvtt-cthulhu-eternal {
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .char-text {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .d100 {
|
||||
flex: 0;
|
||||
max-width: 0.6rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-main .protagonist-characteristics .protagonist-characteristic .form-group {
|
||||
flex: 0;
|
||||
padding-left: 5px;
|
||||
@ -523,31 +510,6 @@ i.fvtt-cthulhu-eternal {
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-biography .motivations {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .protagonist-biography .motivations .motivation .item-img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-skills {
|
||||
background-color: var(--color-light-1);
|
||||
display: grid;
|
||||
@ -566,8 +528,9 @@ i.fvtt-cthulhu-eternal {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 10rem;
|
||||
max-width: 10rem;
|
||||
margin-left: 4px;
|
||||
min-width: 12rem;
|
||||
max-width: 12rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill .rollable:hover,
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill .rollable:focus {
|
||||
@ -579,8 +542,8 @@ i.fvtt-cthulhu-eternal {
|
||||
max-width: 2rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill .name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
min-width: 11rem;
|
||||
max-width: 11rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-skills .skills .skill .item-img {
|
||||
width: 24px;
|
||||
@ -605,8 +568,8 @@ i.fvtt-cthulhu-eternal {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 16rem;
|
||||
max-width: 16rem;
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .controls {
|
||||
min-width: 2rem;
|
||||
@ -617,8 +580,8 @@ i.fvtt-cthulhu-eternal {
|
||||
max-width: 12rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .type {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
min-width: 6rem;
|
||||
max-width: 6rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .bonds .bond .level {
|
||||
min-width: 2rem;
|
||||
@ -629,6 +592,31 @@ i.fvtt-cthulhu-eternal {
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .motivations {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .motivations .motivation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .motivations .motivation .controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .motivations .motivation .name {
|
||||
min-width: 12rem;
|
||||
max-width: 12rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .motivations .motivation .item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
@ -638,8 +626,8 @@ i.fvtt-cthulhu-eternal {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 16rem;
|
||||
max-width: 16rem;
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .controls {
|
||||
min-width: 2rem;
|
||||
@ -649,6 +637,10 @@ i.fvtt-cthulhu-eternal {
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .cured {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
}
|
||||
.fvtt-cthulhu-eternal .tab.protagonist-status .mentaldisorders .mentaldisorder .item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
|
@ -37,6 +37,9 @@
|
||||
},
|
||||
"Protagonist": {
|
||||
"FIELDS": {
|
||||
"damageBonus": {
|
||||
"label": "Dmg.Bonus"
|
||||
},
|
||||
"resources": {
|
||||
"permanentRating": {
|
||||
"label": "Permanent Rating"
|
||||
@ -325,6 +328,9 @@
|
||||
"veryHarsh": "Very Harsh"
|
||||
},
|
||||
"Label": {
|
||||
"Unarmed": "Unarmed",
|
||||
"Cured": "Cured",
|
||||
"Uncured": "Uncured",
|
||||
"nudgedRoll": "Nudged Roll",
|
||||
"selectNewValue": "Select the new value",
|
||||
"wpCost": "WP Cost",
|
||||
|
@ -115,13 +115,13 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
||||
context.injuries.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.mentaldisorders = doc.itemTypes.mentaldisorder
|
||||
context.mentaldisorders.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.motivations = doc.itemTypes.motivation
|
||||
context.motivations.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.bonds = doc.itemTypes.bond
|
||||
context.bonds.sort((a, b) => a.name.localeCompare(b.name))
|
||||
break
|
||||
case "biography":
|
||||
context.tab = context.tabs.biography
|
||||
context.motivations = doc.itemTypes.motivation
|
||||
context.motivations.sort((a, b) => a.name.localeCompare(b.name))
|
||||
context.enrichedDescription = await TextEditor.enrichHTML(doc.system.description, { async: true })
|
||||
context.enrichedNotes = await TextEditor.enrichHTML(doc.system.notes, { async: true })
|
||||
break
|
||||
@ -210,6 +210,7 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
||||
case "damage":
|
||||
li = $(event.currentTarget).parents(".item");
|
||||
item = this.actor.items.get(li.data("item-id"));
|
||||
item.damageBonus = this.actor.system.damageBonus
|
||||
break
|
||||
case "san":
|
||||
item = foundry.utils.duplicate(this.actor.system.san)
|
||||
@ -234,5 +235,4 @@ export default class CthulhuEternalProtagonistSheet extends CthulhuEternalActorS
|
||||
}
|
||||
}
|
||||
|
||||
// #endregion
|
||||
}
|
||||
|
@ -113,6 +113,8 @@ export const RESOURCE_BREAKDOWN = [
|
||||
{ value: 20, hand: 6, stowed: 6, storage: 8, checks: 3}
|
||||
]
|
||||
|
||||
export const DAMAGE_BONUS = [ -2, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]
|
||||
|
||||
export const VEHICLE_SPEED = {
|
||||
"none": "CTHULHUETERNAL.Label.None",
|
||||
"slow": "CTHULHUETERNAL.Label.Slow",
|
||||
@ -258,5 +260,6 @@ export const SYSTEM = {
|
||||
VEHICLE_SPEED,
|
||||
MODIFIER_CHOICES,
|
||||
MULTIPLIER_CHOICES,
|
||||
ASCII
|
||||
ASCII,
|
||||
DAMAGE_BONUS
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ export default class CthulhuEternalActor extends Actor {
|
||||
data.items.push(skill.toObject())
|
||||
}
|
||||
}
|
||||
data.items.push({ type:"weapon", img: "systems/fvtt-cthulhu-eternal/assets/icons/icon_fist.svg",
|
||||
name: game.i18n.localize("CTHULHUETERNAL.Label.Unarmed"), system: { damage: "1d4-1", weaponType: "unarmed" } })
|
||||
}
|
||||
|
||||
return super.create(data, options);
|
||||
@ -52,6 +54,13 @@ export default class CthulhuEternalActor extends Actor {
|
||||
continue
|
||||
}
|
||||
}
|
||||
if (i.type === "bond") {
|
||||
if (i.system.bondType === "individual") {
|
||||
i.system.value = this.system.characteristics.cha.value
|
||||
} else {
|
||||
i.system.value = Math.floor(this.system.resources.permanentRating / 2)
|
||||
}
|
||||
}
|
||||
newData.push(i)
|
||||
}
|
||||
return super.createEmbeddedDocuments(embeddedName, newData, operation)
|
||||
|
@ -1,7 +1,7 @@
|
||||
export const defaultItemImg = {
|
||||
weapon: "systems/fvtt-cthulhu-eternal/assets/icons/icon_weapon.svg",
|
||||
armor: "systems/fvtt-cthulhu-eternal/assets/icons/icon_armor.svg",
|
||||
gear: "systems/fvtt-cthulhu-eternal/assets/icons/icon_gear.svg",
|
||||
gear: "systems/fvtt-cthulhu-eternal/assets/icons/icon_equipment.svg",
|
||||
skill: "systems/fvtt-cthulhu-eternal/assets/icons/icon_skill.svg",
|
||||
archetype: "systems/fvtt-cthulhu-eternal/assets/icons/icon_archetype.svg",
|
||||
bond: "systems/fvtt-cthulhu-eternal/assets/icons/icon_bond.svg",
|
||||
|
@ -147,6 +147,9 @@ export default class CthulhuEternalRoll extends Roll {
|
||||
break
|
||||
case "damage":
|
||||
let formula = options.rollItem.system.damage
|
||||
if ( options.rollItem.system.weaponType === "melee" || options.rollItem.system.weaponType === "unarmed") {
|
||||
formula += ` + ${options.rollItem.damageBonus}`
|
||||
}
|
||||
let damageRoll = new Roll(formula)
|
||||
await damageRoll.evaluate()
|
||||
await damageRoll.toMessage({
|
||||
|
@ -5,7 +5,8 @@ export default class CthulhuEternalArchetype extends foundry.abstract.TypeDataMo
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.description = new fields.HTMLField({
|
||||
required: false,
|
||||
@ -19,4 +20,5 @@ export default class CthulhuEternalArchetype extends foundry.abstract.TypeDataMo
|
||||
|
||||
/** @override */
|
||||
static LOCALIZATION_PREFIXES = ["CTHULHUETERNAL.Archetype"]
|
||||
|
||||
}
|
||||
|
@ -6,7 +6,10 @@ export default class CthulhuEternalArmor extends foundry.abstract.TypeDataModel
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.protection = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
|
||||
|
@ -7,7 +7,10 @@ export default class CthulhuEternalGHear extends foundry.abstract.TypeDataModel
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.resourceLevel = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||
schema.state = new fields.StringField({ required: true, initial: "pristine", choices: SYSTEM.EQUIPMENT_STATES })
|
||||
|
||||
|
@ -165,7 +165,6 @@ export default class CthulhuEternalProtagonist extends foundry.abstract.TypeData
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
isLowWP() {
|
||||
return this.wp.value <= 2
|
||||
}
|
||||
|
@ -6,7 +6,9 @@ export default class CthulhuEternalSkill extends foundry.abstract.TypeDataModel
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.base = new fields.StringField({ required: true, initial: "0" })
|
||||
schema.bonus = new fields.NumberField({ ...requiredInteger, required: true, initial: 0, min: 0 })
|
||||
|
@ -7,7 +7,8 @@ export default class CthulhuEternalVehicle extends foundry.abstract.TypeDataMode
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
const schema = {}
|
||||
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.hp = new fields.SchemaField({
|
||||
value: new fields.NumberField({ ...requiredInteger, initial: 1, min: 0 }),
|
||||
|
@ -7,7 +7,9 @@ export default class LethalFantasySkill extends foundry.abstract.TypeDataModel {
|
||||
const requiredInteger = { required: true, nullable: false, integer: true }
|
||||
|
||||
schema.description = new fields.HTMLField({ required: true, textSearch: true })
|
||||
schema.settings = new fields.StringField({ required: true, initial: "modern", choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
let setting = game.settings.get("fvtt-cthulhu-eternal", "settings-era") || "modern"
|
||||
schema.settings = new fields.StringField({ required: true, initial: setting, choices: SYSTEM.AVAILABLE_SETTINGS })
|
||||
|
||||
schema.weaponType = new fields.StringField({ required: true, initial: "melee", choices: SYSTEM.WEAPON_TYPE })
|
||||
schema.damage = new fields.StringField({required: true, initial: "1d6"})
|
||||
|
@ -1 +1 @@
|
||||
MANIFEST-000100
|
||||
MANIFEST-000112
|
||||
|
@ -1,8 +1,8 @@
|
||||
2025/02/01-21:14:17.990919 7fd1caffd6c0 Recovering log #98
|
||||
2025/02/01-21:14:18.007782 7fd1caffd6c0 Delete type=3 #96
|
||||
2025/02/01-21:14:18.007839 7fd1caffd6c0 Delete type=0 #98
|
||||
2025/02/01-21:17:36.962718 7fd1c93ff6c0 Level-0 table #103: started
|
||||
2025/02/01-21:17:36.962748 7fd1c93ff6c0 Level-0 table #103: 0 bytes OK
|
||||
2025/02/01-21:17:36.968886 7fd1c93ff6c0 Delete type=0 #101
|
||||
2025/02/01-21:17:36.975842 7fd1c93ff6c0 Manual compaction at level-0 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/01-21:17:36.986064 7fd1c93ff6c0 Manual compaction at level-1 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/06-21:12:01.561879 7ffae7fff6c0 Recovering log #110
|
||||
2025/02/06-21:12:01.618398 7ffae7fff6c0 Delete type=3 #108
|
||||
2025/02/06-21:12:01.618459 7ffae7fff6c0 Delete type=0 #110
|
||||
2025/02/06-22:37:39.915470 7ffae6bff6c0 Level-0 table #115: started
|
||||
2025/02/06-22:37:39.915518 7ffae6bff6c0 Level-0 table #115: 0 bytes OK
|
||||
2025/02/06-22:37:39.952549 7ffae6bff6c0 Delete type=0 #113
|
||||
2025/02/06-22:37:39.952742 7ffae6bff6c0 Manual compaction at level-0 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/06-22:37:39.952774 7ffae6bff6c0 Manual compaction at level-1 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
|
@ -1,8 +1,8 @@
|
||||
2025/02/01-13:04:37.403980 7fd1c9ffb6c0 Recovering log #94
|
||||
2025/02/01-13:04:37.414560 7fd1c9ffb6c0 Delete type=3 #92
|
||||
2025/02/01-13:04:37.414616 7fd1c9ffb6c0 Delete type=0 #94
|
||||
2025/02/01-21:09:42.547683 7fd1c93ff6c0 Level-0 table #99: started
|
||||
2025/02/01-21:09:42.547729 7fd1c93ff6c0 Level-0 table #99: 0 bytes OK
|
||||
2025/02/01-21:09:42.554673 7fd1c93ff6c0 Delete type=0 #97
|
||||
2025/02/01-21:09:42.570630 7fd1c93ff6c0 Manual compaction at level-0 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/01-21:09:42.570661 7fd1c93ff6c0 Manual compaction at level-1 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/06-21:10:37.808165 7ffae77fe6c0 Recovering log #106
|
||||
2025/02/06-21:10:37.818622 7ffae77fe6c0 Delete type=3 #104
|
||||
2025/02/06-21:10:37.818703 7ffae77fe6c0 Delete type=0 #106
|
||||
2025/02/06-21:11:20.037362 7ffae6bff6c0 Level-0 table #111: started
|
||||
2025/02/06-21:11:20.037398 7ffae6bff6c0 Level-0 table #111: 0 bytes OK
|
||||
2025/02/06-21:11:20.043269 7ffae6bff6c0 Delete type=0 #109
|
||||
2025/02/06-21:11:20.043465 7ffae6bff6c0 Manual compaction at level-0 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
2025/02/06-21:11:20.043496 7ffae6bff6c0 Manual compaction at level-1 from '!folders!DD8331Hda4rhvEf9' @ 72057594037927935 : 1 .. '!items!zplzTG30QXHURusr' @ 0 : 0; will stop at (end)
|
||||
|
Binary file not shown.
BIN
packs-system/skills/MANIFEST-000112
Normal file
BIN
packs-system/skills/MANIFEST-000112
Normal file
Binary file not shown.
@ -34,6 +34,25 @@
|
||||
}
|
||||
}
|
||||
|
||||
.protagonist-hp {
|
||||
gap: 2px;
|
||||
align-items: center;
|
||||
input {
|
||||
flex: none;
|
||||
width: 2rem;
|
||||
margin-left: 4px;
|
||||
}
|
||||
.damage-bonus {
|
||||
font-size: calc(var(--font-size-standard) * 0.8);
|
||||
}
|
||||
.hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.protagonist-dv,
|
||||
.protagonist-dmax {
|
||||
.form-fields {
|
||||
@ -82,7 +101,7 @@
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
}
|
||||
.button {
|
||||
min-width: 4rem;
|
||||
max-width: 4rem;
|
||||
@ -141,54 +160,14 @@
|
||||
min-width: 5rem;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.checkbox {
|
||||
.checkbox {
|
||||
flex-grow: 0;
|
||||
min-width: 1rem;
|
||||
max-width: 1rem;
|
||||
}
|
||||
|
||||
}
|
||||
.protagonist-infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
|
||||
label {
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.protagonist-hp {
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
align-items: center;
|
||||
.protagonist-hp-value {
|
||||
.form-fields input {
|
||||
flex: none;
|
||||
width: 50px;
|
||||
margin-left: 4px;
|
||||
font-size: calc(var(--font-size-standard) * 1.4);
|
||||
}
|
||||
}
|
||||
.protagonist-hp-max {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin: 3px 0;
|
||||
align-items: center;
|
||||
input {
|
||||
width: 50px;
|
||||
text-align: center;
|
||||
font-size: calc(var(--font-size-standard) * 1.4);
|
||||
}
|
||||
}
|
||||
.hp-separator {
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
label {
|
||||
min-width: 120px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -223,6 +202,10 @@
|
||||
.char-text {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.d100 {
|
||||
flex: 0;
|
||||
max-width: 0.6rem;
|
||||
}
|
||||
.form-group {
|
||||
flex: 0;
|
||||
padding-left: 5px;
|
||||
@ -255,7 +238,7 @@
|
||||
.field-label {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
|
||||
.adapted {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
@ -264,7 +247,7 @@
|
||||
min-width: 20rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.resources {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
@ -280,40 +263,14 @@
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 8px;
|
||||
label {
|
||||
min-width: 3.0rem;
|
||||
min-width: 3rem;
|
||||
}
|
||||
.feature {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
}
|
||||
}
|
||||
|
||||
.motivations {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.motivation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
.controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -336,8 +293,9 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 10rem;
|
||||
max-width: 10rem;
|
||||
margin-left: 4px;
|
||||
min-width: 12rem;
|
||||
max-width: 12rem;
|
||||
.rollable:hover,
|
||||
.rollable:focus {
|
||||
text-shadow: 0 0 8px var(--color-shadow-primary);
|
||||
@ -348,8 +306,8 @@
|
||||
max-width: 2rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 8rem;
|
||||
max-width: 8rem;
|
||||
min-width: 11rem;
|
||||
max-width: 11rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
@ -370,6 +328,7 @@
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.bonds {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
@ -378,8 +337,8 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 16rem;
|
||||
max-width: 16rem;
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
.controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
@ -389,8 +348,8 @@
|
||||
max-width: 12rem;
|
||||
}
|
||||
.type {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
min-width: 6rem;
|
||||
max-width: 6rem;
|
||||
}
|
||||
.level {
|
||||
min-width: 2rem;
|
||||
@ -403,23 +362,24 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.mentaldisorders {
|
||||
|
||||
.motivations {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.mentaldisorder {
|
||||
.motivation {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 16rem;
|
||||
max-width: 16rem;
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
.controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
min-width: 12rem;
|
||||
max-width: 12rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
@ -428,6 +388,37 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mentaldisorders {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
.mentaldisorder {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
min-width: 18rem;
|
||||
max-width: 18rem;
|
||||
.controls {
|
||||
min-width: 2rem;
|
||||
max-width: 2rem;
|
||||
}
|
||||
.name {
|
||||
min-width: 14rem;
|
||||
max-width: 14rem;
|
||||
}
|
||||
.cured {
|
||||
min-width: 5rem;
|
||||
max-width: 5rem;
|
||||
}
|
||||
.item-img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.injuries {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
|
@ -9,13 +9,16 @@
|
||||
<img class="protagonist-img" src="{{actor.img}}" data-edit="img" data-action="editImage"
|
||||
data-tooltip="{{actor.name}}" />
|
||||
</div>
|
||||
<fieldset>
|
||||
<fieldset class="protagonist-hp">
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.HP"}}</legend>
|
||||
<div class="flexrow">
|
||||
{{formField systemFields.hp.fields.value value=system.hp.value}}
|
||||
/
|
||||
<span class="hp-separator">/</span>
|
||||
{{formField systemFields.hp.fields.max value=system.hp.max rootId=partId disabled=true}}
|
||||
</div>
|
||||
<div class="flexrow ">
|
||||
{{formField systemFields.damageBonus value=system.damageBonus classes="damage-bonus"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
@ -32,8 +35,9 @@
|
||||
<fieldset class="san">
|
||||
<legend>{{localize "CTHULHUETERNAL.Label.SAN"}}</legend>
|
||||
<div class="flexrow">
|
||||
<img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
<label class="label-field rollable" data-roll-type="san" >{{localize "CTHULHUETERNAL.Label.current"}}</label>
|
||||
|
||||
<label class="label-field rollable" data-roll-type="san" ><img src="systems/fvtt-cthulhu-eternal/assets/ui/d100.svg" class="d100" />
|
||||
{{localize "CTHULHUETERNAL.Label.current"}}</label>
|
||||
{{formInput systemFields.san.fields.value value=system.san.value}}
|
||||
|
||||
<span class="label-field label-recovery">{{localize "CTHULHUETERNAL.Label.recovery"}}</span>
|
||||
|
@ -12,7 +12,7 @@
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="type">
|
||||
{{item.system.bondType}}
|
||||
{{upperFirst item.system.bondType}}
|
||||
</div>
|
||||
<div class="level">
|
||||
{{item.system.value}}
|
||||
@ -56,6 +56,13 @@
|
||||
<div class="name" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</div>
|
||||
<div class="cured">
|
||||
{{#if item.system.cured}}
|
||||
{{localize 'CTHULHUETERNAL.Label.Cured'}}
|
||||
{{else}}
|
||||
{{localize 'CTHULHUETERNAL.Label.Uncured'}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="controls">
|
||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Edit'}}" data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
|
||||
<a data-tooltip="{{localize 'CTHULHUETERNAL.Delete'}}" data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
|
||||
|
Reference in New Issue
Block a user