Skip to content

Instantly share code, notes, and snippets.

@Corvimae
Last active March 4, 2021 16:15
Show Gist options
  • Save Corvimae/9cf96aac214ce280839adaec60c67c66 to your computer and use it in GitHub Desktop.
Save Corvimae/9cf96aac214ce280839adaec60c67c66 to your computer and use it in GitHub Desktop.
p! o! k! e! m! on!
import { BelongsTo, BelongsToMany, Column, CreatedAt, Default, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript';
import { PokemonAbility } from './pokemonAbility';
import { PokemonCapability } from './pokemonCapability';
import { PokemonEdge } from './pokemonEdge';
import { PokemonHeldItem } from './pokemonHeldItem';
import { PokemonMove } from './pokemonMove';
import { PokemonSkill } from './pokemonSkill';
import { RulebookAbility } from './rulebookAbility';
import { RulebookCapability } from './rulebookCapability';
import { RulebookEdge } from './rulebookEdge';
import { RulebookHeldItem } from './rulebookHeldItem';
import { RulebookMove } from './rulebookMove';
import { RulebookNature } from './rulebookNature';
import { RulebookSkill } from './rulebookSkill';
import { RulebookSpecies } from './rulebookSpecies';
import { Trainer } from './trainer';
export type PokemonGender = 'male' | 'female' | 'neutral';
@Table({ tableName: 'Pokemon' })
export class Pokemon extends Model {
@Column
name: string;
@ForeignKey(() => Trainer)
@Column
trainerId: number;
@ForeignKey(() => RulebookSpecies)
@Column
speciesId: number;
@Column
experience: number;
@ForeignKey(() => RulebookNature)
@Column
natureId: number;
@Column
gender: PokemonGender;
@Column
type1: string;
@Column
type2: string;
@Column
notes: string;
@Column
gmNotes: string;
@Column
currentHealth: number;
@Column
sortOrder: number;
@Default(false)
@Column
active: boolean;
@Default(1)
@Column
loyalty: number;
@Default(0)
@Column
baseHP: number;
@Default(0)
@Column
baseAttack: number;
@Default(0)
@Column
baseDefense: number;
@Default(0)
@Column
baseSpAttack: number;
@Default(0)
@Column
baseSpDefense: number;
@Default(0)
@Column
baseSpeed: number;
@Default(0)
@Column
addedHP: number;
@Default(0)
@Column
addedAttack: number;
@Default(0)
@Column
addedDefense: number;
@Default(0)
@Column
addedSpAttack: number;
@Default(0)
@Column
addedSpDefense: number;
@Default(0)
@Column
addedSpeed: number;
@Default(0)
@Column
bonusTutorPoints: number;
@Default(0)
@Column
spentTutorPoints: number;
@BelongsTo(() => Trainer)
trainer: Trainer;
@BelongsTo(() => RulebookSpecies)
species: RulebookSpecies;
@BelongsTo(() => RulebookNature)
nature: RulebookNature;
@BelongsToMany(() => RulebookAbility, () => PokemonAbility)
abilities: RulebookAbility[];
@BelongsToMany(() => RulebookHeldItem, () => PokemonHeldItem)
heldItems: RulebookHeldItem[];
@BelongsToMany(() => RulebookCapability, () => PokemonCapability)
capabilities: Array<RulebookCapability & { PokemonCapability: PokemonCapability }>;
@BelongsToMany(() => RulebookMove, () => PokemonMove)
moves: Array<RulebookMove & { PokemonMove: PokemonMove }>;
@BelongsToMany(() => RulebookSkill, () => PokemonSkill)
skills: Array<RulebookSkill & { PokemonSkill: PokemonSkill }>;
@BelongsToMany(() => RulebookEdge, () => PokemonEdge)
edges: RulebookEdge[];
@CreatedAt
createdAt: Date;
@UpdatedAt
updatedAt: Date;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment