31 lines
866 B
TypeScript
31 lines
866 B
TypeScript
// A softball player
|
|
|
|
export type Player = {
|
|
readonly gender: "m" | "f" | "nb";
|
|
readonly firstname: string;
|
|
readonly lastname: string;
|
|
readonly hometown: string;
|
|
readonly skillset: Skillset;
|
|
}
|
|
|
|
type Skillset = {
|
|
readonly batting: number;
|
|
readonly pitching: PitchingSkillset;
|
|
readonly running: number;
|
|
readonly fielding: number; // micro; muscle memory, movement, athleticism, etc.
|
|
readonly gamesense: number; // macro
|
|
}
|
|
|
|
type PitchingSkillset = { // the skill a player has in pitching
|
|
// Player.pitching.armStrength, for example
|
|
readonly armStrength: number;
|
|
readonly gripStrength: number;
|
|
readonly fourSeam: number; // starts at 0. a skill above 1 means a player "knows" a pitch.
|
|
readonly twoSeam: number;
|
|
readonly changeup: number;
|
|
readonly curveball: number;
|
|
readonly slider: number;
|
|
readonly splitter: number;
|
|
readonly knuckleball: number;
|
|
}
|