diff --git a/src/components/dialogs/ProgramSettings.vue b/src/components/dialogs/ProgramSettings.vue
index 68dcc78..26807fc 100644
--- a/src/components/dialogs/ProgramSettings.vue
+++ b/src/components/dialogs/ProgramSettings.vue
@@ -323,6 +323,22 @@
v-model="options.preventAutoScroll"
/>
+
+
- If you are working with project created (or added via Merge) before version 0.1.6, this process might significantly improve your performance.
+ If you are working with project created (or added via Merge) before version 0.1.7, this process might significantly improve your performance.
However, before proceeding, please export your current project first to prevent a
POSSIBLE CORRUPTION of your current project data!
@@ -175,12 +175,28 @@ export default class RepairProjectDialog extends DialogBase {
const optionsSnapShot = extend(true, {}, this.SGET_options)
// @ts-ignore
- optionsSnapShot.pre016check = false
+ optionsSnapShot.pre017check = false
// @ts-ignore
this.SSET_options(optionsSnapShot)
}
async remapDocument (document: I_ShortenedDocument, blueprint: I_Blueprint) {
+ const statFieldIDS = [
+ "strength",
+ "constitution",
+ "dexterity",
+ "intellect",
+ "wisdom",
+ "charisma"
+ ]
+
+ const transeferedStats = {
+ id: "statsList",
+ value: []
+ }
+
+ const obsoleteFieldIDs: string[] = []
+
const allSingleToNoneFields = blueprint.extraFields.filter(e => e.type === "singleToNoneRelationship")
const allSingleToSingleFields = blueprint.extraFields.filter(e => e.type === "singleToSingleRelationship")
const allSingleToManyFields = blueprint.extraFields.filter(e => e.type === "singleToManyRelationship")
@@ -212,9 +228,6 @@ export default class RepairProjectDialog extends DialogBase {
allManyToSingleFields.find(e => e.id === field.id) ||
allManyToManyFields.find(e => e.id === field.id)) {
if (field.value && field.value.value) {
- if (field.id === "pairedLocations") {
- console.log(field.value.value)
- }
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
for (const [i, subValue] of field.value.value.entries()) {
const blueprintField = blueprint.extraFields.find(e => e.id === field.id)
@@ -229,8 +242,50 @@ export default class RepairProjectDialog extends DialogBase {
}
}
}
+
+ // Fix stat fields
+ if (statFieldIDS.includes(field.id)) {
+ if (field.value.length > 0) {
+ transeferedStats.value.push({
+ // @ts-ignore
+ value: field.value,
+ // @ts-ignore
+ affix: field.id.charAt(0).toUpperCase() + field.id.slice(1)
+ })
+ }
+
+ obsoleteFieldIDs.push(field.id)
+ }
}
+ if (transeferedStats.value.length > 0) {
+ const statFieldIndex = document.extraFields.findIndex(e => e.id === "statsList")
+ // If new stats/attributes field doesn't exist yet, create a new one
+ if (statFieldIndex === -1) {
+ document.extraFields.push(transeferedStats)
+ }
+ // If the field already exists
+ else {
+ document.extraFields[statFieldIndex].value = [
+ ...document.extraFields[statFieldIndex].value,
+ ...transeferedStats.value]
+ }
+ }
+
+ if (document._id === "e1e24951-e2af-4513-8e4c-50fb93fd94d9") {
+ console.log(obsoleteFieldIDs)
+ }
+
+ // Clean out obsolete fields that will cause bugs if left alone
+ obsoleteFieldIDs.forEach(i => {
+ const fieldIndex = document.extraFields.findIndex(e => e.id === i)
+ // Cut out the legacy field
+ document.extraFields.splice(fieldIndex, 1)
+ })
+
+ if (document._id === "e1e24951-e2af-4513-8e4c-50fb93fd94d9") {
+ console.log(document.extraFields)
+ }
this.processedDocument++
await this.sleep(25)
diff --git a/src/components/fields/Field_List.vue b/src/components/fields/Field_List.vue
index 2cf8b2e..5d066b3 100644
--- a/src/components/fields/Field_List.vue
+++ b/src/components/fields/Field_List.vue
@@ -25,10 +25,10 @@
- {{input.value}}
+ {{(isReversed) ? localInput[index].affix : input.value}}
- ({{localInput[index].affix}})
+ {{(!isReversed) ? `(${localInput[index].affix})` : ` - ${input.value}`}}
@@ -85,10 +85,24 @@
+
+
+
+
+
+
-
+
- If you are working with a pre-0.1.6 version project, then please
+ If you are working with a pre-0.1.7 version project, then please
-
+
@@ -173,7 +173,7 @@ export default class DocumentLayout extends BaseClass {
*/
splitterModel = 375
- pre016check = false
+ pre017check = false
/**
* Special class for the splitter
@@ -202,7 +202,7 @@ export default class DocumentLayout extends BaseClass {
this.hideHierarchyTree = options.hideHierarchyTree
// @ts-ignore
- this.pre016check = options.pre016check
+ this.pre017check = options.pre017check
if (options.treeWidth && !this.hideHierarchyTree) {
this.splitterModel = options.treeWidth
@@ -232,9 +232,9 @@ export default class DocumentLayout extends BaseClass {
*/
optionsSnapShot = {} as OptionsStateInteface
- close016Notification () {
+ close017Notification () {
this.optionsSnapShot = extend(true, {}, this.SGET_options)
- this.optionsSnapShot.pre016check = false
+ this.optionsSnapShot.pre017check = false
this.SSET_options(this.optionsSnapShot)
}
diff --git a/src/pages/DocumentDisplay.vue b/src/pages/DocumentDisplay.vue
index 8b7598b..5537a40 100644
--- a/src/pages/DocumentDisplay.vue
+++ b/src/pages/DocumentDisplay.vue
@@ -125,6 +125,11 @@
+
+
+
+
+
diff --git a/src/scripts/databaseManager/blueprints/characters.ts b/src/scripts/databaseManager/blueprints/characters.ts
index f36507d..efd82c5 100644
--- a/src/scripts/databaseManager/blueprints/characters.ts
+++ b/src/scripts/databaseManager/blueprints/characters.ts
@@ -207,48 +207,6 @@ export const charactersBlueprint: I_Blueprint = {
extraSelectValueList: RPGSystemsStats
}
},
- {
- id: "strength",
- name: "Strength",
- type: "text",
- icon: "fas fa-dumbbell",
- sizing: 2
- },
- {
- id: "constitution",
- name: "Constitution",
- type: "text",
- icon: "mdi-shield",
- sizing: 2
- },
- {
- id: "dexterity",
- name: "Dexterity",
- type: "text",
- icon: "mdi-run-fast",
- sizing: 2
- },
- {
- id: "intellect",
- name: "Intellect",
- type: "text",
- icon: "mdi-brain",
- sizing: 2
- },
- {
- id: "wisdom",
- name: "Wisdom/Willpower",
- type: "text",
- icon: "fas fa-yin-yang",
- sizing: 2
- },
- {
- id: "charisma",
- name: "Charisma",
- type: "text",
- icon: "mdi-drama-masks",
- sizing: 2
- },
{
id: "pairedOriginLocation",
name: "Place of origin",
diff --git a/src/scripts/databaseManager/blueprints/items.ts b/src/scripts/databaseManager/blueprints/items.ts
index f48fba9..159f594 100644
--- a/src/scripts/databaseManager/blueprints/items.ts
+++ b/src/scripts/databaseManager/blueprints/items.ts
@@ -177,48 +177,6 @@ export const itemsBlueprint: I_Blueprint = {
extraSelectValueList: RPGSystemsStats
}
},
- {
- id: "strength",
- name: "Strength change",
- type: "text",
- icon: "fas fa-dumbbell",
- sizing: 2
- },
- {
- id: "constitution",
- name: "Constitution change",
- type: "text",
- icon: "mdi-shield",
- sizing: 2
- },
- {
- id: "dexterity",
- name: "Dexterity change",
- type: "text",
- icon: "mdi-run-fast",
- sizing: 2
- },
- {
- id: "intellect",
- name: "Intellect change",
- type: "text",
- icon: "mdi-brain",
- sizing: 2
- },
- {
- id: "wisdom",
- name: "Wisdom/Willpower change",
- type: "text",
- icon: "fas fa-yin-yang",
- sizing: 2
- },
- {
- id: "charisma",
- name: "Charisma change",
- type: "text",
- icon: "mdi-drama-masks",
- sizing: 2
- },
{
id: "pairedItems",
name: "Connected to other Items",
diff --git a/src/scripts/databaseManager/blueprints/races.ts b/src/scripts/databaseManager/blueprints/races.ts
index 54ddfce..87c14ad 100644
--- a/src/scripts/databaseManager/blueprints/races.ts
+++ b/src/scripts/databaseManager/blueprints/races.ts
@@ -260,48 +260,6 @@ export const racesBlueprint: I_Blueprint = {
extraSelectValueList: RPGSystemsStats
}
},
- {
- id: "strength",
- name: "Strength",
- type: "text",
- icon: "fas fa-dumbbell",
- sizing: 2
- },
- {
- id: "constitution",
- name: "Constitution",
- type: "text",
- icon: "mdi-shield",
- sizing: 2
- },
- {
- id: "dexterity",
- name: "Dexterity",
- type: "text",
- icon: "mdi-run-fast",
- sizing: 2
- },
- {
- id: "intellect",
- name: "Intellect",
- type: "text",
- icon: "mdi-brain",
- sizing: 2
- },
- {
- id: "wisdom",
- name: "Wisdom/Willpower",
- type: "text",
- icon: "fas fa-yin-yang",
- sizing: 2
- },
- {
- id: "charisma",
- name: "Charisma",
- type: "text",
- icon: "mdi-drama-masks",
- sizing: 2
- },
{
id: "traits",
name: "Defining Features & Traits",
diff --git a/src/scripts/databaseManager/extraFieldLists/RPGSystemsStats.ts b/src/scripts/databaseManager/extraFieldLists/RPGSystemsStats.ts
index ebc2252..104cdf2 100644
--- a/src/scripts/databaseManager/extraFieldLists/RPGSystemsStats.ts
+++ b/src/scripts/databaseManager/extraFieldLists/RPGSystemsStats.ts
@@ -243,13 +243,9 @@ export const RPGSystemsStats = [
title: "GURPS (3rd & 4th edition)",
values: [
"Strength",
- "Agility",
- "Wits",
- "Empathy",
- "Damage",
- "Fatigue",
- "Confusion",
- "Doubt"
+ "Dexterity",
+ "Health",
+ "Intelligence"
]
},
{
@@ -370,6 +366,134 @@ export const RPGSystemsStats = [
"Banality"
]
},
+ {
+ title: "Microlite20 (expert rules)",
+ values: [
+ "Strength",
+ "Dexterity",
+ "Intellect",
+ "Charisma",
+ "Physical",
+ "Knowledge",
+ "Subterfuge",
+ "Communication",
+ "Survival",
+ "Hit Points",
+ "Armor Class"
+ ]
+ },
+ {
+ title: "Conspiracy X",
+ values: [
+ "Strength",
+ "Size",
+ "Agility",
+ "Reflexes",
+ "Intelligence",
+ "Willpower",
+ "Perception",
+ "Good Luck",
+ "Bad Luck",
+ "Influence"
+ ]
+ },
+ {
+ title: "Call of Cthulu - Characteristics/Stats (7th edition)",
+ values: [
+ "Strength",
+ "Constitution",
+ "Power",
+ "Dexterity",
+ "Appearance",
+ "Size",
+ "Intelligence",
+ "Education",
+ "Movement Rate",
+ "Hit Points",
+ "Sanity",
+ "Luck",
+ "Magic Points",
+ "Damage Bonus",
+ "Build",
+ "Dodge"
+ ]
+ },
+ {
+ title: "Call of Cthulu - Investigator Skills (7th edition)",
+ values: [
+ "Accounting",
+ "Anthropology",
+ "Appraise",
+ "Archaeology",
+ "Art/Craft",
+ "Charm",
+ "Climb",
+ "Credit Rating",
+ "Cthulu Mythos",
+ "Disguise",
+ "Dodge",
+ "Drive Auto",
+ "Electric Repair",
+ "Fast Talk",
+ "Fighting (brawl)",
+ "Firearms (handgun)",
+ "Firearms (rifle/shotgun)",
+ "First Aid",
+ "History",
+ "Intimidate",
+ "Jump",
+ "Language (other)",
+ "Language (own)",
+ "Law",
+ "Library Use",
+ "Listen",
+ "Locksmith",
+ "Mechanical Repair",
+ "Medicine",
+ "Natural World",
+ "Navigate",
+ "Occult",
+ "Operate Heavy",
+ "Machine",
+ "Persuade",
+ "Pilot",
+ "Psychology",
+ "Psychoanalysis",
+ "Ride",
+ "Science",
+ "Sleight of Hand",
+ "Spot Hidden",
+ "Stealth",
+ "Survival",
+ "Swim",
+ "Throw",
+ "Track"
+ ]
+ },
+ {
+ title: "Mork Borg",
+ values: [
+ "Melee",
+ "Ranged",
+ "Defence",
+ "Agility - Defend",
+ "Agility - Balance",
+ "Agility - Swim",
+ "Agility - Flee",
+ "Presence - Perceive",
+ "Presence - Aim",
+ "Presence - Charm",
+ "Presence - Wield Powers",
+ "Strength - Crush",
+ "Strength - Lift",
+ "Strength - Strike",
+ "Strength - Grapple",
+ "Toughness - Resist Poison",
+ "Toughness - Resist Cold",
+ "Toughness - Resist Heat",
+ "Toughness - Survive Falling"
+ ]
+ },
"Absorption",
"Alertness",
diff --git a/src/scripts/utilities/tipsTricks.ts b/src/scripts/utilities/tipsTricks.ts
index 3449812..0c9ac7b 100644
--- a/src/scripts/utilities/tipsTricks.ts
+++ b/src/scripts/utilities/tipsTricks.ts
@@ -3,15 +3,13 @@
* Toggles dev tools in the current window
*/
export const tipsTricks: string[] = [
- "It is possible to search through all documents and all of their fields at once using the following in either the Quick search popup or any of the relationship searches: \"%:whatever-you-need\"",
+ "Any field in the document editing mode with the small dropdown arrow allows for custom values! Just close the menu of predefined values with ESC, type your desired value and confirm with ENTER.",
+ "It is possible to search through all documents and all of their fields at once using the following in either the Quick search popup or any of the relationship searches: \"%field-name:whatever-you-need\"",
"There is a whole list of really helpful keybinds that can make your use of FA a lot quicker and easier!",
"The settings menu contains a whole assortment of both big and small tweaks to tailor the app to your needs!",
"FA has a Dark Mode that is no mere afterthought and is fully serviceable!",
"Many parts of the app react to a middle-mouse click. For example, you can close document tabs or open hierarchical tree items with it directly!",
- "Any field in the document editing mode with the small dropdown arrow that is not a Relationship field allows for custom values! Just close the menu of predefined values with ESC, type your desired value and confirm with ENTER.",
"Fantasia Archive is free; no strings attached: No ads, no trackers, no crypto-mining happening on your PC and all your data is all yours!",
- "This software is actually a local website pretending to be a desktop application! Technology is crazy!",
- "If you ever need a good, offline map-making software, look at Wonderdraft and Dungeondraft by Megasploot!",
"If these tips annoy you, there is a switch to turn them off in the program settings.",
"The Relationship searching functionality is packed to the brim with extra features you can use to find what you need! Read all about it in the \"Advanced search guide\" in the Help menu!",
"Your project gets auto-saved on exit, but it is recommended to use the \"Export\" function once in a while to make sure the data stays safe.",
@@ -19,7 +17,9 @@ export const tipsTricks: string[] = [
"Don't hesitate to add as many sub-categories as you want. You can always move stuff around later and reorganize your project structure.",
"Tags are a very powerful feature that allow you to add semi-categories to the project tree and create additional search parameters to aid navigation.",
"There is a roadmap of planned features on Patreon! If you are curious about what will eventually come, feel free to read it.",
- "DISCLAIMER: No magical creatures were harmed during the making of this software.",
+ "This software is actually a local website pretending to be a desktop application! Technology is crazy!",
+ "If you ever need a good, offline map-making software, look at Wonderdraft and Dungeondraft by Megasploot!",
"The adorable little arcane dragon you might have seen while using the app is called Fantasia and she is the official mascot of FA!",
- "If you ever feel like sponsoring the development, there is Patreon. If you can't/don't want to; that is perfectly fine too - just have fun with the app and build something cool with it!"
+ "If you ever feel like sponsoring the development, there is Patreon. If you can't/don't want to; that is perfectly fine too - just have fun with the app and build something cool with it!",
+ "DISCLAIMER: No magical creatures were harmed during the making of this software."
]
diff --git a/src/store/module-options/state.ts b/src/store/module-options/state.ts
index 60c6c37..4295f50 100644
--- a/src/store/module-options/state.ts
+++ b/src/store/module-options/state.ts
@@ -34,10 +34,11 @@ export interface OptionsStateInteface {
hideTreeIconEdit: boolean
hideTreeIconView: boolean
hidePlushes: boolean
+ showDocumentID: boolean
userKeybindList: any[]
treeWidth?: number
- pre016check?: boolean
+ pre017check?: boolean
}
function state (): OptionsStateInteface {
@@ -76,9 +77,10 @@ function state (): OptionsStateInteface {
hideTreeIconAddUnder: false,
hideTreeIconEdit: false,
hideTreeIconView: false,
+ showDocumentID: false,
treeWidth: 374,
userKeybindList: [],
- pre016check: true
+ pre017check: true
}
}