mirror of
https://github.com/Elvanos/fantasia-archive.git
synced 2024-09-29 16:51:21 +13:00
0.1.7 - Added reveresed lists and stats
This commit is contained in:
parent
117e9bfd4f
commit
883a9175e1
7 changed files with 730 additions and 47 deletions
|
@ -39,7 +39,10 @@
|
||||||
v-for="(singleInput,index) in localInput"
|
v-for="(singleInput,index) in localInput"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<div class="col-sm-12 col-md flex">
|
<div
|
||||||
|
class="col-sm-12 col-md flex"
|
||||||
|
>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
round
|
round
|
||||||
|
@ -81,28 +84,13 @@
|
||||||
Move the item one place down
|
Move the item one place down
|
||||||
</q-tooltip>
|
</q-tooltip>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
<template v-if="isReversed">
|
||||||
<q-input
|
|
||||||
v-model="localInput[index].value"
|
|
||||||
class="grow-1"
|
|
||||||
:class="`listField_input${index}_${inputDataBluePrint.id}`"
|
|
||||||
dense
|
|
||||||
@keydown="processInput"
|
|
||||||
:outlined="!isDarkMode"
|
|
||||||
:filled="isDarkMode"
|
|
||||||
>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="q-ml-lg justify-end flex"
|
|
||||||
style="max-width: 220px; width: 220px;"
|
|
||||||
v-if="hasExtraInput">
|
|
||||||
<q-select
|
<q-select
|
||||||
style="width: 100%;"
|
style="min-width: 300px; width: 300px;"
|
||||||
dense
|
dense
|
||||||
class="listAtributeSelect"
|
v-if="hasExtraInput"
|
||||||
:options="localExtraInput"
|
class="listAtributeSelect q-mr-lg"
|
||||||
|
:options="filteredLocalExtraInput"
|
||||||
use-input
|
use-input
|
||||||
:hide-dropdown-icon="!editMode"
|
:hide-dropdown-icon="!editMode"
|
||||||
:outlined="editMode && !isDarkMode"
|
:outlined="editMode && !isDarkMode"
|
||||||
|
@ -112,22 +100,199 @@
|
||||||
input-debounce="0"
|
input-debounce="0"
|
||||||
new-value-mode="add"
|
new-value-mode="add"
|
||||||
dark
|
dark
|
||||||
|
:class="`listField_prefix${index}_${inputDataBluePrint.id}`"
|
||||||
|
@filter="filterFn"
|
||||||
@input="processInput"
|
@input="processInput"
|
||||||
@keydown="processInput"
|
@keydown="processInput"
|
||||||
:label="(inputAffix) ? inputAffix : ''"
|
:label="(inputAffix) ? inputAffix : ''"
|
||||||
v-model="localInput[index].affix"
|
v-model="localInput[index].affix"
|
||||||
/>
|
>
|
||||||
</div>
|
<template v-slot:option="scope">
|
||||||
|
<template v-if="typeof scope.opt === 'string'">
|
||||||
|
<q-item
|
||||||
|
class="list_specialItem"
|
||||||
|
:class="{'q-item--active': localInput[index].affix === scope.opt }"
|
||||||
|
@click="localInput[index].affix = scope.opt"
|
||||||
|
clickable
|
||||||
|
v-ripple
|
||||||
|
v-bind="scope.itemProps"
|
||||||
|
v-on="scope.itemEvents"
|
||||||
|
v-close-popup
|
||||||
|
>
|
||||||
|
{{scope.opt}}
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
<div style="width: 115px;" class="justify-end flex">
|
<template v-else>
|
||||||
|
<q-item
|
||||||
|
class="bg-gunmetal-light"
|
||||||
|
:label="scope.opt.title"
|
||||||
|
>
|
||||||
|
<q-item-section >{{ scope.opt.title }}</q-item-section>
|
||||||
|
<q-item-section side>
|
||||||
|
<q-btn
|
||||||
|
tabindex="-1"
|
||||||
|
round
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
dark
|
||||||
|
color="primary"
|
||||||
|
class="z-max q-ml-sm self-center"
|
||||||
|
icon="mdi-plus"
|
||||||
|
size="12px"
|
||||||
|
v-close-popup
|
||||||
|
@click="assignOptionGroupValues(scope.opt.title, index)"
|
||||||
|
>
|
||||||
|
<q-tooltip
|
||||||
|
:delay="300"
|
||||||
|
>
|
||||||
|
Add this category to the field.
|
||||||
|
</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
<q-item
|
||||||
|
v-for="value in scope.opt.values"
|
||||||
|
:key="`${value}_${scope.opt.title}`"
|
||||||
|
:class="{'q-item--active': localInput[index].affix === value }"
|
||||||
|
clickable
|
||||||
|
v-ripple
|
||||||
|
v-close-popup
|
||||||
|
@click="localInput[index].affix = value"
|
||||||
|
>
|
||||||
|
<q-item-section>
|
||||||
|
<q-item-label v-html="value" class="q-ml-md" ></q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</q-select>
|
||||||
|
|
||||||
|
<q-input
|
||||||
|
v-model="localInput[index].value"
|
||||||
|
class="grow-1 q-mr-lg"
|
||||||
|
:class="`listField_input${index}_${inputDataBluePrint.id}`"
|
||||||
|
dense
|
||||||
|
autogrow
|
||||||
|
@keydown="processInput"
|
||||||
|
:outlined="!isDarkMode"
|
||||||
|
:filled="isDarkMode"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-if="!isReversed">
|
||||||
|
<q-input
|
||||||
|
v-model="localInput[index].value"
|
||||||
|
class="grow-1 q-mr-lg"
|
||||||
|
:class="`listField_input${index}_${inputDataBluePrint.id}`"
|
||||||
|
dense
|
||||||
|
autogrow
|
||||||
|
@keydown="processInput"
|
||||||
|
:outlined="!isDarkMode"
|
||||||
|
:filled="isDarkMode"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
|
<q-select
|
||||||
|
v-if="hasExtraInput"
|
||||||
|
style="min-width: 300px; width: 300px;"
|
||||||
|
dense
|
||||||
|
class="listAtributeSelect q-mr-lg"
|
||||||
|
:options="filteredLocalExtraInput"
|
||||||
|
use-input
|
||||||
|
:hide-dropdown-icon="!editMode"
|
||||||
|
:outlined="editMode && !isDarkMode"
|
||||||
|
:borderless="!editMode"
|
||||||
|
:filled="editMode && isDarkMode"
|
||||||
|
:readonly="!editMode"
|
||||||
|
input-debounce="0"
|
||||||
|
new-value-mode="add"
|
||||||
|
dark
|
||||||
|
:class="`listField_prefix${index}_${inputDataBluePrint.id}`"
|
||||||
|
@filter="filterFn"
|
||||||
|
@input="processInput"
|
||||||
|
@keydown="processInput"
|
||||||
|
:label="(inputAffix) ? inputAffix : ''"
|
||||||
|
v-model="localInput[index].affix"
|
||||||
|
>
|
||||||
|
<template v-slot:option="scope">
|
||||||
|
<template v-if="typeof scope.opt === 'string'">
|
||||||
|
<q-item
|
||||||
|
class="list_specialItem"
|
||||||
|
:class="{'q-item--active': localInput[index].affix === scope.opt }"
|
||||||
|
@click="localInput[index].affix = scope.opt"
|
||||||
|
clickable
|
||||||
|
v-ripple
|
||||||
|
v-close-popup
|
||||||
|
v-bind="scope.itemProps"
|
||||||
|
v-on="scope.itemEvents"
|
||||||
|
>
|
||||||
|
{{scope.opt}}
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template v-else>
|
||||||
|
<q-item
|
||||||
|
class="bg-gunmetal-light"
|
||||||
|
:label="scope.opt.title"
|
||||||
|
>
|
||||||
|
<q-item-section >{{ scope.opt.title }}</q-item-section>
|
||||||
|
<q-item-section side>
|
||||||
|
<q-btn
|
||||||
|
tabindex="-1"
|
||||||
|
round
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
dark
|
||||||
|
color="primary"
|
||||||
|
class="z-max q-ml-sm self-center"
|
||||||
|
icon="mdi-plus"
|
||||||
|
size="12px"
|
||||||
|
v-close-popup
|
||||||
|
@click="assignOptionGroupValues(scope.opt.title, index)"
|
||||||
|
>
|
||||||
|
<q-tooltip
|
||||||
|
:delay="300"
|
||||||
|
>
|
||||||
|
Add this category to the field.
|
||||||
|
</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
<q-item
|
||||||
|
:class="{'q-item--active': localInput[index].affix === value }"
|
||||||
|
v-for="value in scope.opt.values"
|
||||||
|
:key="`${value}_${scope.opt.title}`"
|
||||||
|
clickable
|
||||||
|
v-ripple
|
||||||
|
v-close-popup
|
||||||
|
@click="localInput[index].affix = value"
|
||||||
|
>
|
||||||
|
<q-item-section>
|
||||||
|
<q-item-label v-html="value" class="q-ml-md" ></q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</q-select>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div style="width: 60px; align-self: center; height: 35px;" class="justify-end flex">
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="editMode"
|
v-if="editMode"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
:outline="isDarkMode"
|
:outline="isDarkMode"
|
||||||
|
icon="mdi-close"
|
||||||
|
tabindex="-1"
|
||||||
@click="removeFromList(index)"
|
@click="removeFromList(index)"
|
||||||
label="Remove" />
|
>
|
||||||
|
<q-tooltip :delay="500">
|
||||||
|
Remove
|
||||||
|
</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row q-mt-xs" v-if="editMode">
|
<div class="row q-mt-xs" v-if="editMode">
|
||||||
<div class="col justify-start flex">
|
<div class="col justify-start flex">
|
||||||
|
@ -135,7 +300,7 @@
|
||||||
color="primary"
|
color="primary"
|
||||||
:outline="isDarkMode"
|
:outline="isDarkMode"
|
||||||
label="Add new"
|
label="Add new"
|
||||||
@click="addNewInput" />
|
@click="addNewInput()" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -200,13 +365,34 @@ export default class Field_List extends FieldBase {
|
||||||
get hasExtraInput () {
|
get hasExtraInput () {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
this.localExtraInput = this.inputDataBluePrint?.predefinedListExtras?.extraSelectValueList
|
this.localExtraInput = this.inputDataBluePrint?.predefinedListExtras?.extraSelectValueList
|
||||||
|
this.filteredLocalExtraInput = extend(true, [], this.localExtraInput)
|
||||||
|
|
||||||
return this.inputDataBluePrint?.predefinedListExtras?.extraSelectValueList
|
return this.inputDataBluePrint?.predefinedListExtras?.extraSelectValueList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the input is reversed
|
||||||
|
*/
|
||||||
|
get isReversed () {
|
||||||
|
// @ts-ignore
|
||||||
|
return (this.inputDataBluePrint?.predefinedListExtras?.reverse)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of extra input values
|
* List of extra input values
|
||||||
*/
|
*/
|
||||||
localExtraInput:string[] = []
|
localExtraInput:string[] | {
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
} [] = []
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of extra input values - filtered
|
||||||
|
*/
|
||||||
|
filteredLocalExtraInput:string[] | {
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
} [] = []
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Label for the extra input
|
* Label for the extra input
|
||||||
|
@ -216,6 +402,59 @@ export default class Field_List extends FieldBase {
|
||||||
return (this.inputDataBluePrint?.predefinedListExtras?.affix) || ""
|
return (this.inputDataBluePrint?.predefinedListExtras?.affix) || ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filterFn (val:string, update: (e: () => void) => void) {
|
||||||
|
if (val === "") {
|
||||||
|
update(() => {
|
||||||
|
this.filteredLocalExtraInput = this.localExtraInput
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
update(() => {
|
||||||
|
const needle = val.toLowerCase()
|
||||||
|
|
||||||
|
const returnList: string[] | {
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
} [] = []
|
||||||
|
|
||||||
|
const localListCopy: [] = extend(true, [], this.localExtraInput)
|
||||||
|
|
||||||
|
localListCopy.forEach((value:string | {
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
}) => {
|
||||||
|
// For strings
|
||||||
|
if (typeof value === "string" && value.toLowerCase().includes(needle)) {
|
||||||
|
// @ts-ignore
|
||||||
|
returnList.push(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// For lists
|
||||||
|
if (typeof value !== "string") {
|
||||||
|
// If title matches
|
||||||
|
if (value.title.toLowerCase().includes(needle)) {
|
||||||
|
// @ts-ignore
|
||||||
|
returnList.push(value)
|
||||||
|
}
|
||||||
|
// Try matching child values
|
||||||
|
else {
|
||||||
|
const localFilteredSubvalues = value.values.filter(subValue => {
|
||||||
|
return subValue.toLowerCase().includes(needle)
|
||||||
|
})
|
||||||
|
if (localFilteredSubvalues.length > 0) {
|
||||||
|
value.values = localFilteredSubvalues
|
||||||
|
// @ts-ignore
|
||||||
|
returnList.push(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.filteredLocalExtraInput = returnList
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an existing row from the input list
|
* Remove an existing row from the input list
|
||||||
*/
|
*/
|
||||||
|
@ -227,13 +466,15 @@ export default class Field_List extends FieldBase {
|
||||||
/**
|
/**
|
||||||
* Adds new row to the input list
|
* Adds new row to the input list
|
||||||
*/
|
*/
|
||||||
async addNewInput () {
|
async addNewInput (affixValue = "") {
|
||||||
this.localInput.push({
|
this.localInput.push({
|
||||||
value: "",
|
value: "",
|
||||||
affix: ""
|
affix: affixValue
|
||||||
})
|
})
|
||||||
|
|
||||||
const targetRefStringNamer = `.listField_input${this.localInput.length - 1}_${this.inputDataBluePrint.id}`
|
const targetRefStringNamer = (!this.isReversed)
|
||||||
|
? `.listField_input${this.localInput.length - 1}_${this.inputDataBluePrint.id}`
|
||||||
|
: `.listField_prefix${this.localInput.length - 1}_${this.inputDataBluePrint.id}`
|
||||||
|
|
||||||
await this.$nextTick()
|
await this.$nextTick()
|
||||||
|
|
||||||
|
@ -288,6 +529,23 @@ export default class Field_List extends FieldBase {
|
||||||
|
|
||||||
return returnValue
|
return returnValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async assignOptionGroupValues (categoryTitle: string, callerIndex: number) {
|
||||||
|
const targetCategory:{
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
} = this.localExtraInput
|
||||||
|
// @ts-ignore
|
||||||
|
.find((e: {title: string}) => e.title === categoryTitle)
|
||||||
|
|
||||||
|
for (const value of targetCategory.values) {
|
||||||
|
await this.addNewInput(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.localInput[callerIndex].value === "" && this.localInput[callerIndex].affix === "") {
|
||||||
|
this.removeFromList(callerIndex)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -310,4 +568,8 @@ export default class Field_List extends FieldBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.list_specialItem {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -418,6 +418,7 @@
|
||||||
label="Note"
|
label="Note"
|
||||||
v-model="singleNote.value"
|
v-model="singleNote.value"
|
||||||
dense
|
dense
|
||||||
|
autogrow
|
||||||
@keydown="processInput()"
|
@keydown="processInput()"
|
||||||
:outlined="!isDarkMode"
|
:outlined="!isDarkMode"
|
||||||
:filled="isDarkMode"
|
:filled="isDarkMode"
|
||||||
|
|
|
@ -369,6 +369,7 @@
|
||||||
label="Note"
|
label="Note"
|
||||||
v-model="inputNote.value"
|
v-model="inputNote.value"
|
||||||
dense
|
dense
|
||||||
|
autogrow
|
||||||
@keydown="processInput"
|
@keydown="processInput"
|
||||||
:outlined="!isDarkMode"
|
:outlined="!isDarkMode"
|
||||||
:filled="isDarkMode"
|
:filled="isDarkMode"
|
||||||
|
|
|
@ -435,6 +435,7 @@ body .q-tooltip {
|
||||||
color: $dark;
|
color: $dark;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
z-index: 999999999 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.q-markdown {
|
.q-markdown {
|
||||||
|
|
|
@ -23,8 +23,12 @@ export interface I_ExtraFields {
|
||||||
"tags"
|
"tags"
|
||||||
|
|
||||||
predefinedListExtras?: {
|
predefinedListExtras?: {
|
||||||
|
reverse?: boolean
|
||||||
affix?: string
|
affix?: string
|
||||||
extraSelectValueList?: string[]
|
extraSelectValueList?: (string | {
|
||||||
|
title: string,
|
||||||
|
values: string[]
|
||||||
|
}) []
|
||||||
}
|
}
|
||||||
predefinedSelectValues?: string[]
|
predefinedSelectValues?: string[]
|
||||||
relationshipSettings?: {
|
relationshipSettings?: {
|
||||||
|
|
|
@ -194,6 +194,425 @@ export const charactersBlueprint: I_Blueprint = {
|
||||||
icon: "mdi-weight",
|
icon: "mdi-weight",
|
||||||
sizing: 3
|
sizing: 3
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "statsList",
|
||||||
|
name: "Stats/Attributes",
|
||||||
|
type: "list",
|
||||||
|
icon: "mdi-sword-cross",
|
||||||
|
sizing: 12,
|
||||||
|
predefinedListExtras: {
|
||||||
|
reverse: true,
|
||||||
|
affix: "Stat/Attribute",
|
||||||
|
extraSelectValueList: [
|
||||||
|
{
|
||||||
|
title: "Dungeons & Dragons (5th edition)",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Dexterity",
|
||||||
|
"Constitution",
|
||||||
|
"Intelligence",
|
||||||
|
"Wisdom",
|
||||||
|
"Charisma"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Dungeons & Dragons - Expanded (5th edition)",
|
||||||
|
values: [
|
||||||
|
"Hit points",
|
||||||
|
"Maximum hit points",
|
||||||
|
"Temporary points",
|
||||||
|
"Armor class",
|
||||||
|
"Innitiative",
|
||||||
|
"Piety",
|
||||||
|
"Renown",
|
||||||
|
"Proficiency bonus"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Dungeons & Dragons - Travel speeds (5th edition)",
|
||||||
|
values: [
|
||||||
|
"Movement speed",
|
||||||
|
"Fly speed",
|
||||||
|
"Swim speed",
|
||||||
|
"Climb speed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Dungeons & Dragons - Saving throws (5th edition)",
|
||||||
|
values: [
|
||||||
|
"Strength (saving)",
|
||||||
|
"Dexterity (saving)",
|
||||||
|
"Constitution (saving)",
|
||||||
|
"Intelligence (saving)",
|
||||||
|
"Wisdom (saving)",
|
||||||
|
"Charisma (saving)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Mass Effect (D20, 5e)",
|
||||||
|
values: [
|
||||||
|
"Strenght",
|
||||||
|
"Dexterity",
|
||||||
|
"Constitution",
|
||||||
|
"Intelligence ",
|
||||||
|
"Wisdom",
|
||||||
|
"Charisma",
|
||||||
|
"Defense (total)",
|
||||||
|
"Defense (size) ",
|
||||||
|
"Defense (cover) ",
|
||||||
|
"Shield/Shields ",
|
||||||
|
"Plating",
|
||||||
|
"Reduction ",
|
||||||
|
"Size",
|
||||||
|
"Age ",
|
||||||
|
"Level/Class Level ",
|
||||||
|
"Paragon ",
|
||||||
|
"Renegade ",
|
||||||
|
"Power",
|
||||||
|
"Biotics",
|
||||||
|
"Biotic Points ",
|
||||||
|
"Tech Points ",
|
||||||
|
"Attack (bab/base Attack) ",
|
||||||
|
"Rank ",
|
||||||
|
"Ranks ",
|
||||||
|
"Modifier",
|
||||||
|
"Mod ",
|
||||||
|
"Ability Modifier",
|
||||||
|
"Misc Modifier ",
|
||||||
|
"Bonus ",
|
||||||
|
"Total Bonus",
|
||||||
|
"Attack",
|
||||||
|
"Attack Bonus ",
|
||||||
|
"Action ",
|
||||||
|
"Range",
|
||||||
|
"Ammunition",
|
||||||
|
"Damage ",
|
||||||
|
"Critical ",
|
||||||
|
"Recoil",
|
||||||
|
"Armor ",
|
||||||
|
"Armor Special Qualities ",
|
||||||
|
"Head ",
|
||||||
|
"Shoulders",
|
||||||
|
"Arms",
|
||||||
|
"Chest ",
|
||||||
|
"Legs ",
|
||||||
|
"Others ",
|
||||||
|
"Cost",
|
||||||
|
"Thermal Clips ",
|
||||||
|
"Heat",
|
||||||
|
"Medi-Gel",
|
||||||
|
"Grenades",
|
||||||
|
"Repair Kits",
|
||||||
|
"Dc",
|
||||||
|
"Maintenance ",
|
||||||
|
"Cooldown",
|
||||||
|
"Activation",
|
||||||
|
"Load/Carry Capaccity (light) ",
|
||||||
|
"Load/Carry Capaccity (medium) ",
|
||||||
|
"Load/Carry Capaccity (heavy) ",
|
||||||
|
"Amount ",
|
||||||
|
"Credits"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Vampire: Masquerade (5th edition, World of Darkness)",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Dexterity",
|
||||||
|
"Stamina",
|
||||||
|
"Charisma",
|
||||||
|
"Manipulation",
|
||||||
|
"Composure",
|
||||||
|
"Intelligence",
|
||||||
|
"Wits",
|
||||||
|
"Resolve",
|
||||||
|
"Health",
|
||||||
|
"Willpower",
|
||||||
|
"Humanity"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Paranoia (Red Clearance)",
|
||||||
|
values: [
|
||||||
|
"Violence",
|
||||||
|
"Brains",
|
||||||
|
"Chutzpah",
|
||||||
|
"Mechanics",
|
||||||
|
"Athletics",
|
||||||
|
"Guns",
|
||||||
|
"Melee",
|
||||||
|
"Throw",
|
||||||
|
"Science",
|
||||||
|
"Psychology",
|
||||||
|
"Bureaucracy",
|
||||||
|
"Alpha Complex",
|
||||||
|
"Bluff",
|
||||||
|
"Charm",
|
||||||
|
"Intimdate",
|
||||||
|
"Stealth",
|
||||||
|
"Operate",
|
||||||
|
"Engineer",
|
||||||
|
"Program",
|
||||||
|
"Demolitions"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Shadowrun (6th edition)",
|
||||||
|
values: [
|
||||||
|
"Body",
|
||||||
|
"Agility",
|
||||||
|
"Reaction",
|
||||||
|
"Willpower",
|
||||||
|
"Intuition",
|
||||||
|
"Edge",
|
||||||
|
"Essence",
|
||||||
|
"Magic/Resonance",
|
||||||
|
"Initiative (matrix)",
|
||||||
|
"Initiative (astral)",
|
||||||
|
"Composure",
|
||||||
|
"Judge",
|
||||||
|
"Intentions",
|
||||||
|
"Memory",
|
||||||
|
"Lift/Carry",
|
||||||
|
"Movement",
|
||||||
|
"Dam",
|
||||||
|
"Damage",
|
||||||
|
"Acc",
|
||||||
|
"Accuracy",
|
||||||
|
"Ap",
|
||||||
|
"Action",
|
||||||
|
"Points",
|
||||||
|
"Rc",
|
||||||
|
"Ammo",
|
||||||
|
"Rating",
|
||||||
|
"Rtg",
|
||||||
|
"Nuyen",
|
||||||
|
"Funds",
|
||||||
|
"Currency"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Fading Suns",
|
||||||
|
values: [
|
||||||
|
"Body",
|
||||||
|
"Strength",
|
||||||
|
"Dexterity",
|
||||||
|
"Endurance",
|
||||||
|
"Mind",
|
||||||
|
"Wits",
|
||||||
|
"Perception",
|
||||||
|
"Tech",
|
||||||
|
"Spirit",
|
||||||
|
"Vitality",
|
||||||
|
"Wyrd",
|
||||||
|
"Charm",
|
||||||
|
"Dodge",
|
||||||
|
"Fight",
|
||||||
|
"Impress",
|
||||||
|
"Melee",
|
||||||
|
"Observe",
|
||||||
|
"Shoot",
|
||||||
|
"Sneak",
|
||||||
|
"Vigor"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Cyberpunk (RED)",
|
||||||
|
values: [
|
||||||
|
"Intelligence",
|
||||||
|
"Willpower",
|
||||||
|
"Cool",
|
||||||
|
"Empathy",
|
||||||
|
"Technique",
|
||||||
|
"Reflexes",
|
||||||
|
"Luck",
|
||||||
|
"Body",
|
||||||
|
"Dexterity",
|
||||||
|
"Movement"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Mutant: Year Zero",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Agility",
|
||||||
|
"Wits",
|
||||||
|
"Empathy",
|
||||||
|
"Damage",
|
||||||
|
"Fatigue",
|
||||||
|
"Confusion",
|
||||||
|
"Doubt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "GURPS (3rd & 4th edition)",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Agility",
|
||||||
|
"Wits",
|
||||||
|
"Empathy",
|
||||||
|
"Damage",
|
||||||
|
"Fatigue",
|
||||||
|
"Confusion",
|
||||||
|
"Doubt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "7th Sea (2nd edition)",
|
||||||
|
values: [
|
||||||
|
"Brawn",
|
||||||
|
"Finesse",
|
||||||
|
"Resolve",
|
||||||
|
"Wits",
|
||||||
|
"Panache"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "7th Sea - Villain (2nd edition)",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Influence"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Apocalypse World (2nd edition, Powered by the Apocalypse)",
|
||||||
|
values: [
|
||||||
|
"Cool",
|
||||||
|
"Hard",
|
||||||
|
"Hot",
|
||||||
|
"Sharp",
|
||||||
|
"Weird",
|
||||||
|
"HX"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Dresden Files RPG",
|
||||||
|
values: [
|
||||||
|
"Alertness",
|
||||||
|
"Athletics",
|
||||||
|
"Burglary",
|
||||||
|
"Contacts",
|
||||||
|
"Conviction",
|
||||||
|
"Craftsmanship",
|
||||||
|
"Deceit",
|
||||||
|
"Discipline",
|
||||||
|
"Driving",
|
||||||
|
"Empathy",
|
||||||
|
"Endurance",
|
||||||
|
"Fists",
|
||||||
|
"Guns",
|
||||||
|
"Intimidation",
|
||||||
|
"Investigation",
|
||||||
|
"Lore",
|
||||||
|
"Might",
|
||||||
|
"Performance",
|
||||||
|
"Presence",
|
||||||
|
"Rapport",
|
||||||
|
"Resources",
|
||||||
|
"Scholarship",
|
||||||
|
"Stealth",
|
||||||
|
"Survival",
|
||||||
|
"Weapons"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Traveller (2nd edition)",
|
||||||
|
values: [
|
||||||
|
"Strength",
|
||||||
|
"Dexterity",
|
||||||
|
"Endurace",
|
||||||
|
"Intelligence",
|
||||||
|
"Education",
|
||||||
|
"Social",
|
||||||
|
"Standing"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Cypher System",
|
||||||
|
values: [
|
||||||
|
"Intellect",
|
||||||
|
"Might",
|
||||||
|
"Speed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Blades in the Dark",
|
||||||
|
values: [
|
||||||
|
"Attune",
|
||||||
|
"Command",
|
||||||
|
"Consort",
|
||||||
|
"Finesse",
|
||||||
|
"Hunt",
|
||||||
|
"Prowl",
|
||||||
|
"Skirmish",
|
||||||
|
"Study",
|
||||||
|
"Survey",
|
||||||
|
"Sway",
|
||||||
|
"Tinker",
|
||||||
|
"Wreck",
|
||||||
|
"Insight",
|
||||||
|
"Prowess",
|
||||||
|
"Tesolve"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Absorption",
|
||||||
|
"Alertness",
|
||||||
|
"Attack",
|
||||||
|
"Avoidance",
|
||||||
|
"Awareness",
|
||||||
|
"Block",
|
||||||
|
"Brawn",
|
||||||
|
"Cautiousness",
|
||||||
|
"Chance",
|
||||||
|
"Damage",
|
||||||
|
"Defense",
|
||||||
|
"Deftness",
|
||||||
|
"Dodge",
|
||||||
|
"Ego",
|
||||||
|
"Endurance",
|
||||||
|
"Energy",
|
||||||
|
"Evasion",
|
||||||
|
"Fate",
|
||||||
|
"Fatigue",
|
||||||
|
"Finesse",
|
||||||
|
"Fortitude",
|
||||||
|
"Honor",
|
||||||
|
"Hit Points (HP)",
|
||||||
|
"Immunity",
|
||||||
|
"Level",
|
||||||
|
"Magic",
|
||||||
|
"Mana",
|
||||||
|
"Mana Points (MP)",
|
||||||
|
"Might",
|
||||||
|
"Mind",
|
||||||
|
"Morale",
|
||||||
|
"Parry",
|
||||||
|
"Personality",
|
||||||
|
"Precision",
|
||||||
|
"Presence",
|
||||||
|
"Psyche",
|
||||||
|
"Quickness",
|
||||||
|
"Rank",
|
||||||
|
"Rate",
|
||||||
|
"Recovery",
|
||||||
|
"Reduction",
|
||||||
|
"Reflexes",
|
||||||
|
"Resistence",
|
||||||
|
"Sanity",
|
||||||
|
"Sense",
|
||||||
|
"Soul",
|
||||||
|
"Speed",
|
||||||
|
"Spellpower",
|
||||||
|
"Spirit",
|
||||||
|
"Stamina",
|
||||||
|
"Swiftness",
|
||||||
|
"Tier",
|
||||||
|
"Vitality",
|
||||||
|
"Willpower",
|
||||||
|
"Wits"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "strength",
|
id: "strength",
|
||||||
name: "Strength",
|
name: "Strength",
|
||||||
|
@ -538,6 +957,7 @@ export const charactersBlueprint: I_Blueprint = {
|
||||||
"Erratic",
|
"Erratic",
|
||||||
"Escapist",
|
"Escapist",
|
||||||
"Esthetic",
|
"Esthetic",
|
||||||
|
"Evil",
|
||||||
"Excitable",
|
"Excitable",
|
||||||
"Exciting",
|
"Exciting",
|
||||||
"Expedient",
|
"Expedient",
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
## THE GM BATCH
|
## THE GM BATCH
|
||||||
|
|
||||||
|
- Add more stat systems
|
||||||
|
- Add stats to items (and anywhere else they might be needed)
|
||||||
|
- Add automatic-stats fixer to the repair tool from older versions
|
||||||
|
|
||||||
- Add hover/on-demand document preview to relationships
|
- Add hover/on-demand document preview to relationships
|
||||||
|
|
||||||
- Export for MD/PDF/ODT/DOCX
|
- Export for MD/PDF/ODT/DOCX
|
||||||
|
@ -8,18 +12,13 @@
|
||||||
|
|
||||||
## THE GM BATCH END
|
## THE GM BATCH END
|
||||||
|
|
||||||
- Add reverse list field option (dropdown first, value in bracket)
|
|
||||||
- Rework stats (via reverse list)
|
|
||||||
- Add option for project graph to filter out categories or show them separately
|
|
||||||
- Add HTML webcolor cheatsheet in floating window (look for JSON of them somewhere?)
|
- Add HTML webcolor cheatsheet in floating window (look for JSON of them somewhere?)
|
||||||
- Word count for editor fields
|
- Word count for editor fields
|
||||||
- Try to get field titles to show in full-screen edit of text editor fields
|
- Try to get field titles to show in full-screen edit of text editor fields
|
||||||
- List of last saved documents on project overview
|
- List of last saved documents on project overview
|
||||||
|
|
||||||
- Consider adding some kind of "Follower name" to different group types
|
|
||||||
- Consider reworking the save document mechanic (save doesnt close, open/exit edit mode instead)
|
|
||||||
- Add color support (text and background) to view and edit mode of document display
|
- Add color support (text and background) to view and edit mode of document display
|
||||||
- Add a toggle option for it (default off)
|
- Add a toggle option for it (default off)
|
||||||
|
|
||||||
- Mass tag rename/deletion (done via document saving!)
|
- Mass tag rename/deletion (done via document saving!)
|
||||||
- Context menu for tags
|
- Context menu for tags
|
||||||
|
@ -27,22 +26,17 @@
|
||||||
- Add new document type under tag
|
- Add new document type under tag
|
||||||
- Delete tag (unsets for all docs)
|
- Delete tag (unsets for all docs)
|
||||||
- Rename tag (resaves all docs with new tag)
|
- Rename tag (resaves all docs with new tag)
|
||||||
|
|
||||||
- Add "Predecessors", "Successors", "Date of start", "Date of end" and "How long it lasted" fields to locations and all other groups
|
|
||||||
|
|
||||||
- Add advanced search capabilities to the hierarchical tree
|
|
||||||
|
|
||||||
- "Save all" keybind and "Save all and exit" option on the exiting
|
- "Save all" keybind and "Save all and exit" option on the exiting
|
||||||
|
|
||||||
- Add "Open all search matches" button in the Quick-search that opens a new page with a list of items
|
- Consider adding color support for text shadow of individual documents
|
||||||
- Allow showing of document types under tags
|
|
||||||
- Add description tabs
|
- Add description tabs
|
||||||
|
- Add option for project graph to filter out categories or show them separately
|
||||||
|
|
||||||
|
- Add "Predecessors", "Successors", "Date of start", "Date of end" and "How long it lasted" fields to locations and all other groups
|
||||||
- Add category for materials/resources OR adapt Items category
|
- Add category for materials/resources OR adapt Items category
|
||||||
- Add category for diseases/curses/etc
|
- Add category for diseases/curses/etc
|
||||||
- Add category for classes/jobs
|
- Add category for classes/jobs
|
||||||
- Add support for individual document order hiding inside the hierarchical tree for each document
|
- Add advanced search capabilities to the hierarchical tree
|
||||||
- Consider adding color support for text shadow of individual documents
|
|
||||||
- Consider adding coloring to icons of documents separately
|
|
||||||
|
|
||||||
### Project settings
|
### Project settings
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue