You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
import {schema} from "../schemata/SchemaData.js";
|
|
|
|
export enum Persona {
|
|
HEART = "Heart",
|
|
SUCCUBUS = "Succubus",
|
|
CHILD = "Child",
|
|
NURSE = "Nurse",
|
|
SORCERESS = "Sorceress",
|
|
LADY = "Lady",
|
|
SHADOW = "Shadow",
|
|
}
|
|
export const PERSONAS: Persona[] = [Persona.HEART, Persona.SUCCUBUS, Persona.CHILD, Persona.NURSE, Persona.SORCERESS, Persona.LADY, Persona.SHADOW]
|
|
export type PersonaJTD = typeof PersonaJTD
|
|
export const PersonaJTD = schema({
|
|
schema: {
|
|
enum: PERSONAS
|
|
},
|
|
key: "persona",
|
|
references: [],
|
|
})
|
|
|
|
export interface PersonaPrompt {
|
|
readonly persona?: Persona
|
|
}
|
|
|
|
export function personaPronoun(persona: Persona | undefined): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return "you"
|
|
default:
|
|
return "she"
|
|
}
|
|
}
|
|
|
|
export function personaPronounPossessive(persona: Persona | undefined): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return "your"
|
|
default:
|
|
return "her"
|
|
}
|
|
}
|
|
|
|
export function personaPronounObject(persona: Persona | undefined): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return "you"
|
|
default:
|
|
return "her"
|
|
}
|
|
}
|
|
|
|
export function personaName(persona: Persona | undefined): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return "you"
|
|
case Persona.HEART:
|
|
return "Reya Heart"
|
|
default:
|
|
return persona + " Reya"
|
|
}
|
|
}
|
|
|
|
export function personaPossessive(persona: Persona | undefined): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return "your"
|
|
case Persona.HEART:
|
|
return "Reya Heart's"
|
|
default:
|
|
return persona + " Reya's"
|
|
}
|
|
}
|
|
|
|
export function personaVerb(persona: Persona | undefined, secondPerson: string, thirdPerson: string): string {
|
|
switch (persona) {
|
|
case undefined:
|
|
return secondPerson
|
|
default:
|
|
return thirdPerson
|
|
}
|
|
} |