@@ -0,0 +1,56 @@
|
||||
import HumanSkillsActorData from "./base/human-skills.js";
|
||||
import CharacterData from "./base/character.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, BooleanField } =
|
||||
foundry.data.fields;
|
||||
|
||||
export default class AgentData extends CharacterData {
|
||||
static defineSchema() {
|
||||
const superData = super.defineSchema();
|
||||
|
||||
return {
|
||||
...superData,
|
||||
...HumanSkillsActorData.defineSchema(),
|
||||
schemaVersion: new NumberField({ initial: 1.0 }),
|
||||
sanity: new SchemaField({
|
||||
value: new NumberField({ initial: 100 }),
|
||||
currentBreakingPoint: new NumberField({ initial: 101 }),
|
||||
adaptations: new SchemaField({
|
||||
violence: new SchemaField({
|
||||
incident1: new BooleanField({ initial: false }),
|
||||
incident2: new BooleanField({ initial: false }),
|
||||
incident3: new BooleanField({ initial: false }),
|
||||
}),
|
||||
helplessness: new SchemaField({
|
||||
incident1: new BooleanField({ initial: false }),
|
||||
incident2: new BooleanField({ initial: false }),
|
||||
incident3: new BooleanField({ initial: false }),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
physical: new SchemaField({
|
||||
description: new StringField({
|
||||
initial: "(Physical description of agent)",
|
||||
}),
|
||||
wounds: new StringField({ initial: "" }),
|
||||
firstAidAttempted: new BooleanField({ initial: false }),
|
||||
exhausted: new BooleanField({ initial: false }),
|
||||
exhaustedPenalty: new NumberField({ initial: -20 }),
|
||||
}),
|
||||
biography: new SchemaField({
|
||||
profession: new StringField({ initial: "" }),
|
||||
employer: new StringField({ initial: "" }),
|
||||
nationality: new StringField({ initial: "" }),
|
||||
sex: new StringField({ initial: "" }),
|
||||
age: new StringField({ initial: "" }),
|
||||
education: new StringField({ initial: "" }),
|
||||
}),
|
||||
corruption: new SchemaField({
|
||||
value: new NumberField({ initial: 0 }),
|
||||
haveSeenTheYellowSign: new BooleanField({ initial: false }),
|
||||
gift: new StringField({ initial: "" }),
|
||||
insight: new StringField({ initial: "" }),
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { resourceField, statisticsField } from "./general.js";
|
||||
|
||||
const { SchemaField } = foundry.data.fields;
|
||||
|
||||
export default class BaseActorData extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
health: resourceField(10, 10),
|
||||
wp: resourceField(10, 10),
|
||||
statistics: new SchemaField({
|
||||
str: statisticsField(10),
|
||||
con: statisticsField(10),
|
||||
dex: statisticsField(10),
|
||||
int: statisticsField(10),
|
||||
pow: statisticsField(10),
|
||||
cha: statisticsField(10),
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import BaseActorData from "./base-actor.js";
|
||||
import SheetSettingsActorData from "./sheet-settings.js";
|
||||
|
||||
export default class CharacterData extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
...BaseActorData.defineSchema(),
|
||||
...SheetSettingsActorData.defineSchema(),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
const { SchemaField, NumberField, StringField, BooleanField } =
|
||||
foundry.data.fields;
|
||||
|
||||
export function skillField(initialValue, label) {
|
||||
return new SchemaField({
|
||||
proficiency: new NumberField({ initial: initialValue }),
|
||||
label: new StringField({ initial: label }),
|
||||
failure: new BooleanField({ initial: false }),
|
||||
});
|
||||
}
|
||||
|
||||
export function resourceField(initialValue, initialMax) {
|
||||
return new SchemaField({
|
||||
min: new NumberField({ initial: 0 }),
|
||||
value: new NumberField({ initial: initialValue }),
|
||||
max: new NumberField({ initial: initialMax }),
|
||||
});
|
||||
}
|
||||
|
||||
export function statisticsField(initialValue) {
|
||||
return new SchemaField({
|
||||
value: new NumberField({ initial: initialValue }),
|
||||
distinguishing_feature: new StringField({ initial: "" }),
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
import { skillField } from "./general.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, ArrayField, ObjectField } =
|
||||
foundry.data.fields;
|
||||
const { TypeDataModel } = foundry.abstract;
|
||||
|
||||
export default class HumanSkillsActorData extends TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
skills: new SchemaField({
|
||||
accounting: skillField(10, "Accounting"),
|
||||
alertness: skillField(20, "Alertness"),
|
||||
anthropology: skillField(0, "Anthropology"),
|
||||
archeology: skillField(0, "Archeology"),
|
||||
artillery: skillField(0, "Artillery"),
|
||||
athletics: skillField(30, "Athletics"),
|
||||
bureaucracy: skillField(10, "Bureaucracy"),
|
||||
computer_science: skillField(0, "Computer Science"),
|
||||
criminology: skillField(10, "Criminology"),
|
||||
demolitions: skillField(0, "Demolitions"),
|
||||
disguise: skillField(10, "Disguise"),
|
||||
dodge: skillField(30, "Dodge"),
|
||||
drive: skillField(20, "Drive"),
|
||||
firearms: skillField(20, "Firearms"),
|
||||
first_aid: skillField(10, "First Aid"),
|
||||
forensics: skillField(0, "Forensics"),
|
||||
heavy_machiner: skillField(10, "Heavy Machinery"),
|
||||
heavy_weapons: skillField(0, "Heavy Weapons"),
|
||||
history: skillField(10, "History"),
|
||||
humint: skillField(10, "HUMINT"),
|
||||
law: skillField(0, "Law"),
|
||||
medicine: skillField(0, "Medicine"),
|
||||
melee_weapons: skillField(30, "Melee Weapons"),
|
||||
navigate: skillField(10, "Navigate"),
|
||||
occult: skillField(10, "Occult"),
|
||||
persuade: skillField(20, "Persuade"),
|
||||
pharmacy: skillField(0, "Pharmacy"),
|
||||
psychotherapy: skillField(10, "Psychotherapy"),
|
||||
ride: skillField(10, "Ride"),
|
||||
search: skillField(20, "Search"),
|
||||
sigint: skillField(0, "SIGINT"),
|
||||
stealth: skillField(10, "Stealth"),
|
||||
surgery: skillField(0, "Surgery"),
|
||||
survival: skillField(10, "Survival"),
|
||||
swim: skillField(20, "Swim"),
|
||||
unarmed_combat: skillField(40, "Unarmed Combat"),
|
||||
unnatural: new SchemaField({
|
||||
proficiency: new NumberField({ initial: 0 }),
|
||||
label: new StringField({ initial: "Unnatural" }),
|
||||
}),
|
||||
}),
|
||||
typedSkills: new ObjectField({}),
|
||||
specialTraining: new ArrayField(
|
||||
new SchemaField({
|
||||
attribute: new StringField(),
|
||||
id: new StringField(),
|
||||
name: new StringField(),
|
||||
}),
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
const { SchemaField, NumberField, BooleanField } = foundry.data.fields;
|
||||
const { TypeDataModel } = foundry.abstract;
|
||||
|
||||
export default class SheetSettingsActorData extends TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
settings: new SchemaField({
|
||||
sorting: new SchemaField({
|
||||
weaponSortAlphabetical: new BooleanField({ initial: false }),
|
||||
armorSortAlphabetical: new BooleanField({ initial: false }),
|
||||
gearSortAlphabetical: new BooleanField({ initial: false }),
|
||||
tomeSortAlphabetical: new BooleanField({ initial: false }),
|
||||
ritualSortAlphabetical: new BooleanField({ initial: false }),
|
||||
}),
|
||||
rolling: new SchemaField({
|
||||
defaultPercentileModifier: new NumberField({ initial: 20 }),
|
||||
}),
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
import { skillField } from "./general.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, ArrayField, ObjectField } =
|
||||
foundry.data.fields;
|
||||
const { TypeDataModel } = foundry.abstract;
|
||||
|
||||
export default class UnnaturalSkillsActorData extends TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
skills: new SchemaField({
|
||||
accounting: skillField(0, "Accounting"),
|
||||
alertness: skillField(50, "Alertness"),
|
||||
anthropology: skillField(0, "Anthropology"),
|
||||
archeology: skillField(0, "Archeology"),
|
||||
artillery: skillField(0, "Artillery"),
|
||||
athletics: skillField(50, "Athletics"),
|
||||
bureaucracy: skillField(0, "Bureaucracy"),
|
||||
computer_science: skillField(0, "Computer Science"),
|
||||
criminology: skillField(0, "Criminology"),
|
||||
demolitions: skillField(0, "Demolitions"),
|
||||
disguise: skillField(0, "Disguise"),
|
||||
dodge: skillField(50, "Dodge"),
|
||||
drive: skillField(0, "Drive"),
|
||||
firearms: skillField(0, "Firearms"),
|
||||
first_aid: skillField(0, "First Aid"),
|
||||
forensics: skillField(0, "Forensics"),
|
||||
heavy_machiner: skillField(0, "Heavy Machinery"),
|
||||
heavy_weapons: skillField(0, "Heavy Weapons"),
|
||||
history: skillField(0, "History"),
|
||||
humint: skillField(0, "HUMINT"),
|
||||
law: skillField(0, "Law"),
|
||||
medicine: skillField(0, "Medicine"),
|
||||
melee_weapons: skillField(50, "Melee Weapons"),
|
||||
navigate: skillField(0, "Navigate"),
|
||||
occult: skillField(0, "Occult"),
|
||||
persuade: skillField(0, "Persuade"),
|
||||
pharmacy: skillField(0, "Pharmacy"),
|
||||
psychotherapy: skillField(0, "Psychotherapy"),
|
||||
ride: skillField(0, "Ride"),
|
||||
search: skillField(0, "Search"),
|
||||
sigint: skillField(0, "SIGINT"),
|
||||
stealth: skillField(50, "Stealth"),
|
||||
surgery: skillField(0, "Surgery"),
|
||||
survival: skillField(0, "Survival"),
|
||||
swim: skillField(0, "Swim"),
|
||||
unarmed_combat: skillField(50, "Unarmed Combat"),
|
||||
unnatural: new SchemaField({
|
||||
proficiency: new NumberField({ initial: 0 }),
|
||||
label: new StringField({ initial: "Unnatural" }),
|
||||
}),
|
||||
}),
|
||||
typedSkills: new ObjectField({}),
|
||||
specialTraining: new ArrayField(
|
||||
new SchemaField({
|
||||
attribute: new StringField(),
|
||||
id: new StringField(),
|
||||
name: new StringField(),
|
||||
}),
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import HumanSkillsActorData from "./base/human-skills.js";
|
||||
import CharacterData from "./base/character.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, BooleanField } =
|
||||
foundry.data.fields;
|
||||
|
||||
export default class NPCData extends CharacterData {
|
||||
static defineSchema() {
|
||||
const superData = super.defineSchema();
|
||||
|
||||
return {
|
||||
...superData,
|
||||
...HumanSkillsActorData.defineSchema(),
|
||||
schemaVersion: new NumberField({ initial: 1.0 }),
|
||||
sanity: new SchemaField({
|
||||
value: new NumberField({ initial: 100 }),
|
||||
currentBreakingPoint: new NumberField({ initial: 101 }),
|
||||
}),
|
||||
notes: new StringField({ initial: "" }),
|
||||
shortDescription: new StringField({ initial: "" }),
|
||||
showUntrainedSkills: new BooleanField({ initial: true }),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
import UnnaturalSkillsActorData from "./base/unnatural-skills.js";
|
||||
import CharacterData from "./base/character.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, BooleanField } =
|
||||
foundry.data.fields;
|
||||
|
||||
export default class UnnaturalData extends CharacterData {
|
||||
static defineSchema() {
|
||||
const superData = super.defineSchema();
|
||||
|
||||
return {
|
||||
...superData,
|
||||
...UnnaturalSkillsActorData.defineSchema(),
|
||||
sanity: new SchemaField({
|
||||
notes: new StringField({ initial: "" }),
|
||||
failedLoss: new StringField({ initial: "1D4" }),
|
||||
successLoss: new StringField({ initial: "1" }),
|
||||
}),
|
||||
schemaVersion: new NumberField({ initial: 1.0 }),
|
||||
notes: new StringField({ initial: "" }),
|
||||
shortDescription: new StringField({ initial: "" }),
|
||||
showUntrainedSkills: new BooleanField({ initial: true }),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import SheetSettingsActorData from "./base/sheet-settings.js";
|
||||
|
||||
const { SchemaField, NumberField, StringField, ArrayField } =
|
||||
foundry.data.fields;
|
||||
|
||||
export default class VehicleData extends foundry.abstract.TypeDataModel {
|
||||
static defineSchema() {
|
||||
return {
|
||||
...SheetSettingsActorData.defineSchema(),
|
||||
name: new StringField({ initial: "" }),
|
||||
description: new StringField({ initial: "" }),
|
||||
shortDescription: new StringField({ initial: "" }),
|
||||
health: new SchemaField({
|
||||
value: new NumberField({ initial: 10 }),
|
||||
min: new NumberField({ initial: 0 }),
|
||||
max: new NumberField({ initial: 10 }),
|
||||
}),
|
||||
speed: new StringField({ initial: "" }),
|
||||
expense: new StringField({ initial: "Standard" }),
|
||||
passengers: new ArrayField(new StringField()),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user