SYMBOL INDEX (452 symbols across 112 files) FILE: apps/cli/src/Game.ts type GameContext (line 18) | interface GameContext { class Game (line 40) | class Game { method constructor (line 48) | constructor(runDirectoryPath: string, practiceLevel: number | undefine... method buildContext (line 55) | buildContext(): GameContext { method createProfile (line 102) | createProfile(warriorName: string, language: 'javascript' | 'typescrip... method isExistingProfile (line 110) | isExistingProfile(profile: Profile): boolean { method getProfiles (line 117) | getProfiles(): Profile[] { method getProfileDirectoriesPaths (line 124) | getProfileDirectoriesPaths(): string[] { method ensureGameDirectory (line 130) | ensureGameDirectory(): void { method prepareNextLevel (line 146) | prepareNextLevel(): void { method generateProfileFiles (line 151) | generateProfileFiles(): void { method prepareEpicMode (line 157) | prepareEpicMode(): void { FILE: apps/cli/src/GameError.ts class GameError (line 1) | class GameError extends Error { method constructor (line 2) | constructor(message: string) { FILE: apps/cli/src/Profile.ts class Profile (line 13) | class Profile { method load (line 28) | static load(profileDirectoryPath: string, towers: Tower[]): Profile | ... method isProfileDirectory (line 60) | static isProfileDirectory(profileDirectoryPath: string): boolean { method read (line 79) | static read(profileFilePath: string): string | null { method decode (line 91) | static decode(encodedProfile: string): Record { method constructor (line 105) | constructor( method makeProfileDirectory (line 125) | makeProfileDirectory(): void { method readPlayerCode (line 129) | readPlayerCode(): string | null { method getPlayerCodeFilePath (line 141) | getPlayerCodeFilePath(): string { method getReadmeFilePath (line 146) | getReadmeFilePath(): string { method goToNextLevel (line 150) | goToNextLevel(): void { method requestClue (line 156) | requestClue(): void { method isShowingClue (line 161) | isShowingClue(): boolean { method enableEpicMode (line 165) | enableEpicMode(): void { method isEpic (line 170) | isEpic(): boolean { method tallyPoints (line 174) | tallyPoints(levelNumber: number, totalScore: number, grade?: number): ... method getEpicScoreWithGrade (line 183) | getEpicScoreWithGrade(): string { method updateEpicScore (line 191) | updateEpicScore(): void { method calculateAverageGrade (line 200) | calculateAverageGrade(): number | null { method save (line 209) | save(): void { method getProfileFilePath (line 213) | getProfileFilePath(): string { method encode (line 217) | encode(): string { method toJSON (line 221) | toJSON(): Record { method toString (line 235) | toString(): string { FILE: apps/cli/src/ProfileGenerator.ts class ProfileGenerator (line 10) | class ProfileGenerator { method constructor (line 14) | constructor(profile: Profile, levelConfig: LevelConfig) { method generate (line 19) | generate(): void { method generateReadmeFile (line 29) | generateReadmeFile(): void { method generatePlayerCodeFile (line 34) | generatePlayerCodeFile(): void { method generateTypesFile (line 39) | generateTypesFile(): void { FILE: apps/cli/src/Tower.ts class Tower (line 3) | class Tower { method constructor (line 10) | constructor( method hasLevel (line 24) | hasLevel(levelNumber: number): boolean { method getLevel (line 28) | getLevel(levelNumber: number): LevelDefinition | undefined { method toString (line 32) | toString(): string { FILE: apps/cli/src/cli.ts function run (line 13) | async function run(args: string[]): Promise { FILE: apps/cli/src/loadTowers.ts type TowerInfo (line 16) | interface TowerInfo { function getInternalTowersInfo (line 21) | function getInternalTowersInfo(): TowerInfo[] { function getExternalTowersInfo (line 28) | function getExternalTowersInfo(): TowerInfo[] { function loadTowers (line 58) | function loadTowers(): Tower[] { FILE: apps/cli/src/parseArgs.ts type ParsedArgs (line 3) | interface ParsedArgs { function parseArgs (line 13) | function parseArgs(args: string[]): ParsedArgs { FILE: apps/cli/src/ui/components/App.tsx type AppProps (line 9) | interface AppProps { function App (line 13) | function App({ context }: AppProps): React.ReactElement { FILE: apps/cli/src/ui/components/ConfirmPrompt.tsx type ConfirmPromptProps (line 5) | interface ConfirmPromptProps { function ConfirmPrompt (line 11) | function ConfirmPrompt({ FILE: apps/cli/src/ui/components/Divider.tsx function Divider (line 4) | function Divider(): React.ReactElement { FILE: apps/cli/src/ui/components/ErrorMessage.tsx type ErrorMessageProps (line 5) | interface ErrorMessageProps { function ErrorMessage (line 10) | function ErrorMessage({ FILE: apps/cli/src/ui/components/FloorMap.tsx type FloorSpace (line 4) | interface FloorSpace { type FloorMapProps (line 9) | interface FloorMapProps { constant STAIR_CHAR (line 13) | const STAIR_CHAR = '>'; function getSpaceColor (line 15) | function getSpaceColor(space: FloorSpace): string | undefined { function FloorMap (line 22) | function FloorMap({ floorMap }: FloorMapProps): React.ReactElement { FILE: apps/cli/src/ui/components/GameMenu.test.tsx function createMockTower (line 14) | function createMockTower(name: string, overrides: Partial = {}): ... function createMockProfile (line 27) | function createMockProfile(name: string, overrides: Partial = {... function createMockContext (line 44) | function createMockContext(overrides: Partial = {}): GameCo... FILE: apps/cli/src/ui/components/GameMenu.tsx type GameMenuProps (line 17) | interface GameMenuProps { function GameMenu (line 22) | function GameMenu({ context, onStart }: GameMenuProps): React.ReactEleme... FILE: apps/cli/src/ui/components/Header.tsx type HeaderProps (line 4) | interface HeaderProps { function Header (line 11) | function Header({ FILE: apps/cli/src/ui/components/LevelCompleteScreen.tsx function buildMenuItems (line 18) | function buildMenuItems(levelReport: LevelReport): { label: string; valu... type LevelCompleteScreenProps (line 38) | interface LevelCompleteScreenProps { function LevelCompleteScreen (line 45) | function LevelCompleteScreen({ FILE: apps/cli/src/ui/components/LogArea.tsx type LogAreaProps (line 7) | interface LogAreaProps { type LogLine (line 13) | interface LogLine { function buildUnitColorMap (line 19) | function buildUnitColorMap(turns: TurnEvent[][]): Map { constant STAT_RE (line 31) | const STAT_RE = /\d+ damage|\d+ HP/; function buildColorizeRegex (line 33) | function buildColorizeRegex(unitColors: Map): RegExp { function colorizeMessage (line 41) | function colorizeMessage( function LogArea (line 71) | function LogArea({ FILE: apps/cli/src/ui/components/PlayLayout.test.tsx function makeEvent (line 8) | function makeEvent(overrides: Partial = {}): TurnEvent { FILE: apps/cli/src/ui/components/PlayLayout.tsx type PlayLayoutProps (line 9) | interface PlayLayoutProps { function PlayLayout (line 18) | function PlayLayout({ FILE: apps/cli/src/ui/components/PlayScreen.tsx type PlayScreenProps (line 14) | interface PlayScreenProps { function PlayScreen (line 26) | function PlayScreen({ FILE: apps/cli/src/ui/components/PlaySession.tsx type PlaySessionProps (line 13) | interface PlaySessionProps { function PlaySession (line 19) | function PlaySession({ FILE: apps/cli/src/ui/components/ProfileWizard.test.tsx function createMockTower (line 10) | function createMockTower(name: string): Tower { function createMockProfile (line 16) | function createMockProfile(name: string): Profile { function createMockContext (line 23) | function createMockContext(overrides: Partial = {}): GameCo... FILE: apps/cli/src/ui/components/ProfileWizard.tsx type WizardStep (line 13) | type WizardStep = type ProfileWizardProps (line 31) | interface ProfileWizardProps { function ProfileWizard (line 40) | function ProfileWizard({ FILE: apps/cli/src/ui/components/ResultScreen.tsx type ResultScreenProps (line 5) | interface ResultScreenProps { function ResultScreen (line 16) | function ResultScreen({ FILE: apps/cli/src/ui/components/Scrubber.tsx type ScrubberProps (line 4) | interface ScrubberProps { function Scrubber (line 12) | function Scrubber({ FILE: apps/cli/src/ui/components/SelectPrompt.tsx type SelectChoice (line 5) | interface SelectChoice { type SelectSeparator (line 11) | interface SelectSeparator { type SelectItem (line 15) | type SelectItem = SelectChoice | SelectSeparator; type SelectPromptProps (line 17) | interface SelectPromptProps { function SelectPrompt (line 25) | function SelectPrompt({ FILE: apps/cli/src/ui/components/TextPrompt.tsx type TextPromptProps (line 5) | interface TextPromptProps { function TextPrompt (line 13) | function TextPrompt({ FILE: apps/cli/src/ui/components/TowerCompleteScreen.tsx type TowerCompleteScreenProps (line 5) | interface TowerCompleteScreenProps { function TowerCompleteScreen (line 10) | function TowerCompleteScreen({ FILE: apps/cli/src/ui/components/WarriorArt.tsx function WarriorArt (line 14) | function WarriorArt(): React.ReactElement { FILE: apps/cli/src/ui/components/WarriorStatus.tsx type WarriorStatusProps (line 4) | interface WarriorStatusProps { function WarriorStatus (line 10) | function WarriorStatus({ FILE: apps/cli/src/ui/components/WelcomeScreen.tsx type WelcomeScreenProps (line 7) | interface WelcomeScreenProps { function WelcomeScreen (line 12) | function WelcomeScreen({ FILE: apps/cli/src/ui/hooks/usePlaySession.test.ts function createMockProfile (line 35) | function createMockProfile(overrides: Partial> =... function createMockContext (line 62) | function createMockContext(overrides: Partial = {}): GameCo... type HookRef (line 122) | interface HookRef { function renderHook (line 128) | function renderHook(params: { function setupWithResultScreen (line 692) | function setupWithResultScreen() { FILE: apps/cli/src/ui/hooks/usePlaySession.ts type UsePlaySessionParams (line 17) | interface UsePlaySessionParams { type UsePlaySessionReturn (line 24) | interface UsePlaySessionReturn { type LevelOutcome (line 30) | interface LevelOutcome { function executeLevel (line 36) | function executeLevel(profile: Profile, levelNumber: number, context: Ga... function evaluateLevel (line 87) | function evaluateLevel( function usePlaySession (line 141) | function usePlaySession({ FILE: apps/cli/src/ui/hooks/usePlayback.ts type PlaybackState (line 4) | interface PlaybackState { type PlaybackAction (line 12) | type PlaybackAction = constant SPEEDS (line 22) | const SPEEDS = [1, 2, 4]; function playbackReducer (line 24) | function playbackReducer(state: PlaybackState, action: PlaybackAction): ... function usePlayback (line 80) | function usePlayback( FILE: apps/cli/src/ui/testing.ts function getLastContentFrame (line 6) | function getLastContentFrame(frames: string[]): string { function makeLevelRun (line 13) | function makeLevelRun(overrides: Partial = {}): LevelRun { function makeLevelReport (line 40) | function makeLevelReport(overrides: Partial = {}): LevelRep... FILE: apps/cli/src/ui/types.ts type LevelConfig (line 7) | interface LevelConfig { type TurnEvent (line 14) | interface TurnEvent { type LevelResult (line 21) | interface LevelResult { type LevelRun (line 27) | interface LevelRun { type LevelReport (line 37) | interface LevelReport { type LevelEvaluation (line 50) | interface LevelEvaluation { type LevelCompleteChoice (line 58) | type LevelCompleteChoice = type LevelCompleteAction (line 66) | type LevelCompleteAction = type PlaySessionState (line 73) | type PlaySessionState = type GameMenuStep (line 84) | type GameMenuStep = FILE: apps/cli/src/ui/utils/buildLevelReport.test.ts function makeEvent (line 6) | function makeEvent(score: number, floorMap: { unit?: unknown }[][] = [[]... FILE: apps/cli/src/ui/utils/buildLevelReport.ts type BuildLevelReportParams (line 5) | interface BuildLevelReportParams { function buildLevelReport (line 15) | function buildLevelReport({ FILE: apps/cli/src/utils/formatDirectory.ts function formatDirectory (line 4) | function formatDirectory(directory: string): string { FILE: apps/cli/src/utils/getFloorMap.ts type FloorSpace (line 1) | interface FloorSpace { function getFloorMap (line 6) | function getFloorMap(map: FloorSpace[][]): string { FILE: apps/cli/src/utils/getFloorMapKey.ts type FloorSpace (line 1) | interface FloorSpace { function getFloorMapKey (line 9) | function getFloorMapKey(map: FloorSpace[][]): string { FILE: apps/cli/src/utils/getTowerId.ts function getTowerId (line 3) | function getTowerId(towerPackageName: string): string { FILE: apps/cli/src/utils/getWarriorNameSuggestions.ts function getWarriorNameSuggestions (line 56) | function getWarriorNameSuggestions(): string[] { FILE: apps/cli/src/utils/renderPlayerCode.ts function renderPlayerCode (line 5) | function renderPlayerCode(profile: Profile, _levelConfig: LevelConfig): ... FILE: apps/cli/src/utils/renderReadme.ts type Ability (line 7) | interface Ability { function renderHeader (line 12) | function renderHeader(profile: Profile): string { function renderTowerDescription (line 16) | function renderTowerDescription(description: string): string { function renderLevelInfo (line 21) | function renderLevelInfo(level: any): string { function renderClue (line 25) | function renderClue(profile: Profile, clue: string): string { function renderFloorMap (line 30) | function renderFloorMap(level: any): string { function renderAbilityList (line 34) | function renderAbilityList(abilities: Ability[]): string { function renderActions (line 38) | function renderActions(actions: Ability[]): string { function renderSenses (line 42) | function renderSenses(senses: Ability[]): string { function renderAbilities (line 47) | function renderAbilities(level: any): string { function renderNextSteps (line 56) | function renderNextSteps(profile: Profile): string { function renderReadme (line 61) | function renderReadme(profile: Profile, levelConfig: LevelConfig): string { FILE: apps/cli/src/utils/renderTypes.test.ts class MockWalk (line 6) | class MockWalk extends Action { method perform (line 12) | perform() {} class MockFeel (line 15) | class MockFeel extends Sense { method perform (line 21) | perform() {} class MockHealth (line 24) | class MockHealth extends Sense { method perform (line 30) | perform() {} function makeLevelConfig (line 35) | function makeLevelConfig(abilities: Record): any { class RestAction (line 128) | class RestAction extends Action { method perform (line 134) | perform() {} FILE: apps/cli/src/utils/renderTypes.ts type MethodEntry (line 5) | interface MethodEntry { function renderHeader (line 12) | function renderHeader(): string { function renderDirectionType (line 16) | function renderDirectionType(): string { function renderSpaceInterfaces (line 20) | function renderSpaceInterfaces(): string { function renderMethod (line 48) | function renderMethod(method: MethodEntry): string { function renderWarriorInterface (line 52) | function renderWarriorInterface(methods: MethodEntry[]): string { function instantiateAbility (line 60) | function instantiateAbility(entry: AbilityEntry): Ability { function renderTypes (line 69) | function renderTypes(_profile: Profile, levelConfig: LevelConfig): string { FILE: apps/website/utils/getDocUrl.js function getDocUrl (line 5) | function getDocUrl(doc, language) { FILE: apps/website/utils/getImgUrl.js function getImgUrl (line 5) | function getImgUrl(img) { FILE: libs/abilities/src/Attack.ts type AttackConfig (line 8) | interface AttackConfig { class Attack (line 12) | class Attack extends Action { method constructor (line 21) | constructor(unit: Unit, { power }: AttackConfig) { method perform (line 27) | perform(direction: RelativeDirection = defaultDirection): void { method with (line 39) | static with(config: AttackConfig): AbilityBinding { FILE: libs/abilities/src/Bind.ts class Bind (line 8) | class Bind extends Action { method perform (line 16) | perform(direction: RelativeDirection = defaultDirection): void { FILE: libs/abilities/src/Detonate.ts type DetonateConfig (line 14) | interface DetonateConfig { class Detonate (line 19) | class Detonate extends Action { method constructor (line 29) | constructor(unit: Unit, { targetPower, surroundingPower }: DetonateCon... method perform (line 36) | perform(direction: RelativeDirection = defaultDirection): void { method bomb (line 47) | private bomb(space: Space, power: number): void { method with (line 58) | static with(config: DetonateConfig): AbilityBinding { FILE: libs/abilities/src/DirectionOf.ts class DirectionOf (line 6) | class DirectionOf extends Sense { method perform (line 14) | perform(space: SensedSpace) { FILE: libs/abilities/src/DirectionOfStairs.ts class DirectionOfStairs (line 6) | class DirectionOfStairs extends Sense { method perform (line 14) | perform() { FILE: libs/abilities/src/DistanceOf.ts class DistanceOf (line 5) | class DistanceOf extends Sense { method perform (line 12) | perform(space: SensedSpace) { FILE: libs/abilities/src/Feel.ts class Feel (line 8) | class Feel extends Sense { method perform (line 16) | perform(direction: RelativeDirection = defaultDirection) { FILE: libs/abilities/src/Health.ts class Health (line 5) | class Health extends Sense { method perform (line 12) | perform() { FILE: libs/abilities/src/Listen.ts class Listen (line 6) | class Listen extends Sense { method perform (line 14) | perform() { FILE: libs/abilities/src/Look.ts type LookConfig (line 8) | interface LookConfig { class Look (line 12) | class Look extends Sense { method constructor (line 21) | constructor(unit: Unit, { range }: LookConfig) { method perform (line 27) | perform(direction: RelativeDirection = defaultDirection) { method with (line 34) | static with(config: LookConfig): AbilityBinding { FILE: libs/abilities/src/MaxHealth.ts class MaxHealth (line 5) | class MaxHealth extends Sense { method perform (line 12) | perform() { FILE: libs/abilities/src/Pivot.ts class Pivot (line 8) | class Pivot extends Action { method perform (line 15) | perform(direction: RelativeDirection = defaultDirection): void { FILE: libs/abilities/src/Rescue.ts class Rescue (line 8) | class Rescue extends Action { method perform (line 16) | perform(direction: RelativeDirection = defaultDirection): void { FILE: libs/abilities/src/Rest.ts type RestConfig (line 5) | interface RestConfig { class Rest (line 9) | class Rest extends Action { method constructor (line 18) | constructor(unit: Unit, { healthGain }: RestConfig) { method perform (line 24) | perform(): void { method with (line 34) | static with(config: RestConfig): AbilityBinding { FILE: libs/abilities/src/Shoot.ts type ShootConfig (line 8) | interface ShootConfig { class Shoot (line 13) | class Shoot extends Action { method constructor (line 23) | constructor(unit: Unit, { power, range }: ShootConfig) { method perform (line 30) | perform(direction: RelativeDirection = defaultDirection): void { method with (line 43) | static with(config: ShootConfig): AbilityBinding { FILE: libs/abilities/src/Think.ts class Think (line 6) | class Think extends Sense { method perform (line 13) | perform(...args: unknown[]) { FILE: libs/abilities/src/Walk.ts class Walk (line 8) | class Walk extends Action { method perform (line 16) | perform(direction: RelativeDirection = defaultDirection): void { FILE: libs/abilities/src/types.ts type Space (line 4) | interface Space { type Unit (line 13) | interface Unit { type AbilityParam (line 39) | interface AbilityParam { type AbilityMeta (line 46) | interface AbilityMeta { FILE: libs/core/src/Ability.test.ts class ConcreteAction (line 7) | class ConcreteAction extends Action { class ConcreteSense (line 13) | class ConcreteSense extends Sense { FILE: libs/core/src/Ability.ts type AbilityParam (line 1) | interface AbilityParam { type AbilityMeta (line 8) | interface AbilityMeta { type AbilityClass (line 13) | interface AbilityClass { type AbilityBinding (line 17) | type AbilityBinding = [AbilityClass, object]; type AbilityEntry (line 19) | type AbilityEntry = AbilityBinding | AbilityClass; method constructor (line 27) | constructor(unit: any, _config?: Record) { FILE: libs/core/src/Action.test.ts class TestAction (line 7) | class TestAction extends Action { method with (line 12) | static with(config: { power: number }) { FILE: libs/core/src/Effect.test.ts class TestEffect (line 5) | class TestEffect extends Effect { method with (line 10) | static with(config: { time: number }) { FILE: libs/core/src/Effect.ts type EffectClass (line 1) | interface EffectClass { type EffectBinding (line 5) | type EffectBinding = [EffectClass, object]; type EffectEntry (line 7) | type EffectEntry = EffectBinding | EffectClass; method constructor (line 14) | constructor(unit: any, _config?: Record) { FILE: libs/core/src/Floor.ts class Floor (line 9) | class Floor { method constructor (line 16) | constructor(width: number, height: number, stairsLocation: Location) { method getMap (line 24) | getMap(): Space[][] { method isOutOfBounds (line 36) | isOutOfBounds([x, y]: Location): boolean { method isStairs (line 40) | isStairs([x, y]: Location): boolean { method getStairsSpace (line 45) | getStairsSpace(): Space { method getSpaceAt (line 49) | getSpaceAt(location: Location): Space { method addWarrior (line 53) | addWarrior(warrior: Warrior, position: PositionConfig): void { method addUnit (line 58) | addUnit(unit: Unit, { x, y, facing }: PositionConfig): void { method getUnitAt (line 65) | getUnitAt(location: Location): Unit | undefined { method getUnits (line 69) | getUnits(): Unit[] { FILE: libs/core/src/Level.ts class Level (line 6) | class Level { method constructor (line 13) | constructor(number: number, description: string, tip: string, clue: st... method play (line 21) | play(turns: number = maxTurns): { method wasPassed (line 48) | wasPassed(): boolean { method wasFailed (line 53) | wasFailed(): boolean { method toJSON (line 57) | toJSON(): any { FILE: libs/core/src/Logger.ts type TurnEvent (line 4) | interface TurnEvent { method play (line 25) | play(floor: Floor) { method turn (line 37) | turn() { method unit (line 42) | unit(unit: Unit, message: string) { FILE: libs/core/src/Position.ts class Position (line 19) | class Position { method constructor (line 24) | constructor(floor: Floor, location: Location, orientation: string) { method isAt (line 31) | isAt([x, y]: Location): boolean { method getSpace (line 36) | getSpace(): Space { method getRelativeSpace (line 40) | getRelativeSpace(direction: RelativeDirection, relativeOffset: Relativ... method getDistanceOf (line 49) | getDistanceOf(space: Space): number { method getRelativeDirectionOf (line 53) | getRelativeDirectionOf(space: Space): RelativeDirection { method move (line 60) | move(direction: RelativeDirection, relativeOffset: RelativeOffset): vo... method rotate (line 68) | rotate(direction: RelativeDirection): void { FILE: libs/core/src/Sense.test.ts class TestSense (line 7) | class TestSense extends Sense { FILE: libs/core/src/Space.ts type SensedSpace (line 21) | interface SensedSpace { type SensedUnit (line 30) | interface SensedUnit { class Space (line 36) | class Space { method from (line 40) | static from(sensedSpace: SensedSpace, unit: Unit): Space { method constructor (line 47) | constructor(floor: Floor, location: Location) { method getCharacter (line 52) | getCharacter(): string { method isEmpty (line 93) | isEmpty(): boolean { method isStairs (line 97) | isStairs(): boolean { method isWall (line 101) | isWall(): boolean { method isUnit (line 105) | isUnit(): boolean { method getUnit (line 109) | getUnit(): Unit | undefined { method as (line 113) | as(unit: Unit): SensedSpace { method toString (line 128) | toString(): string { method toJSON (line 140) | toJSON(): { character: string; unit: Unit | undefined } { FILE: libs/core/src/Unit.test.ts class MockAction (line 9) | class MockAction extends Action { class MockSense (line 15) | class MockSense extends Sense { FILE: libs/core/src/Unit.ts type Turn (line 11) | type Turn = Record any>; type TurnState (line 13) | interface TurnState { type UnitClass (line 18) | interface UnitClass { class Unit (line 23) | class Unit { method constructor (line 39) | constructor( method getNextTurn (line 63) | getNextTurn(): TurnState { method playTurn (line 85) | playTurn(_turn: Turn): void {} method prepareTurn (line 87) | prepareTurn(): void { method performTurn (line 92) | performTurn(): void { method heal (line 102) | heal(amount: number): void { method takeDamage (line 109) | takeDamage(amount: number): void { method damage (line 124) | damage(receiver: Unit, amount: number): void { method isAlive (line 135) | isAlive(): boolean { method release (line 139) | release(receiver: Unit): void { method unbind (line 150) | unbind(): void { method bind (line 155) | bind(): void { method isBound (line 159) | isBound(): boolean { method earnPoints (line 163) | earnPoints(points: number): void { method losePoints (line 167) | losePoints(points: number): void { method addAbility (line 171) | addAbility(name: string, ability: Ability): void { method addEffect (line 175) | addEffect(name: string, effect: Effect): void { method triggerEffect (line 179) | triggerEffect(name: string): void { method isUnderEffect (line 186) | isUnderEffect(name: string): boolean { method getOtherUnits (line 190) | getOtherUnits(): Unit[] { method getSpace (line 194) | getSpace(): Space { method getSensedSpaceAt (line 198) | getSensedSpaceAt( method getSpaceAt (line 206) | getSpaceAt(direction: RelativeDirection, forward: number = 1, right: n... method getDirectionOfStairs (line 210) | getDirectionOfStairs(): RelativeDirection { method getDirectionOf (line 214) | getDirectionOf(sensedSpace: SensedSpace): RelativeDirection { method getDistanceOf (line 219) | getDistanceOf(sensedSpace: SensedSpace): number { method move (line 224) | move(direction: RelativeDirection, forward: number = 1, right: number ... method rotate (line 228) | rotate(direction: RelativeDirection): void { method vanish (line 232) | vanish(): void { method log (line 236) | log(message: string): void { method as (line 240) | as(unit: Unit): SensedUnit { method toString (line 248) | toString(): string { method toJSON (line 252) | toJSON(): { name: string; color: string; maxHealth: number } { FILE: libs/core/src/Warrior.test.ts class MockAction (line 7) | class MockAction extends Action { method constructor (line 10) | constructor(unit: any, description: string) { class MockSense (line 17) | class MockSense extends Sense { method constructor (line 20) | constructor(unit: any, description: string) { FILE: libs/core/src/Warrior.ts type AbilityInfo (line 4) | interface AbilityInfo { class Warrior (line 10) | class Warrior extends Unit { method constructor (line 11) | constructor(name?: string, character?: string, color?: string, maxHeal... method performTurn (line 15) | performTurn(): void { method earnPoints (line 23) | earnPoints(points: number): void { method losePoints (line 28) | losePoints(points: number): void { method getAbilities (line 33) | getAbilities(): { method getStatus (line 55) | getStatus(): { health: number; score: number } { FILE: libs/core/src/getLevel.test.ts class TestWalk (line 11) | class TestWalk extends Action { method perform (line 17) | perform() {} class TestAttack (line 20) | class TestAttack extends Action { method constructor (line 26) | constructor(unit: any, { power }: { power: number }) { method perform (line 30) | perform() {} method with (line 31) | static with(config: { power: number }) { class TestFeel (line 36) | class TestFeel extends Sense { method perform (line 43) | perform() {} class TestSludge (line 46) | class TestSludge extends Unit { method constructor (line 52) | constructor() { FILE: libs/core/src/getLevel.ts function getLevel (line 4) | function getLevel(levelConfig: LevelConfig): any { FILE: libs/core/src/getLevelConfig.ts function deepClone (line 3) | function deepClone(obj: T): T { function getLevelConfig (line 29) | function getLevelConfig( FILE: libs/core/src/loadLevel.ts function loadAbilities (line 10) | function loadAbilities(unit: Unit, abilities: Record = ... function loadWarrior (line 34) | function loadWarrior( function loadUnit (line 47) | function loadUnit({ unit: UnitClass, effects, position }: UnitConfig, fl... function loadLevel (line 58) | function loadLevel( FILE: libs/core/src/loadPlayer.ts function loadPlayer (line 9) | function loadPlayer( FILE: libs/core/src/runLevel.test.ts class TestWalk (line 11) | class TestWalk extends Action { method perform (line 17) | perform(direction = FORWARD) { class TestAttack (line 28) | class TestAttack extends Action { method constructor (line 35) | constructor(unit: any, { power }: { power: number }) { method perform (line 40) | perform(direction = FORWARD) { method with (line 50) | static with(config: { power: number }) { class TestFeel (line 55) | class TestFeel extends Sense { method perform (line 61) | perform(direction = FORWARD) { class TestSludge (line 66) | class TestSludge extends Unit { method constructor (line 72) | constructor() { FILE: libs/core/src/runLevel.ts function runLevel (line 5) | function runLevel( FILE: libs/core/src/types.ts type Size (line 8) | type Size = { width: number; height: number }; type LocationConfig (line 11) | type LocationConfig = { x: number; y: number }; type PositionConfig (line 14) | type PositionConfig = LocationConfig & { facing: AbsoluteDirection }; type UnitConfig (line 16) | interface UnitConfig { type WarriorConfig (line 22) | interface WarriorConfig { type LevelConfig (line 31) | interface LevelConfig { type WarriorDefinition (line 46) | interface WarriorDefinition { type WarriorOverrides (line 52) | interface WarriorOverrides { type LevelDefinition (line 58) | interface LevelDefinition { type TowerDefinition (line 72) | interface TowerDefinition { FILE: libs/effects/src/Ticking.ts type TickingConfig (line 3) | interface TickingConfig { class Ticking (line 7) | class Ticking extends Effect { method constructor (line 12) | constructor(unit: any, { time }: TickingConfig) { method passTurn (line 17) | passTurn(): void { method trigger (line 29) | trigger(): void { method with (line 36) | static with(config: TickingConfig): EffectBinding { FILE: libs/scoring/src/getClearBonus.ts function getClearBonus (line 12) | function getClearBonus(turns: unknown[][], warriorScore: number, timeBon... FILE: libs/scoring/src/getGradeLetter.ts function getGradeLetter (line 7) | function getGradeLetter(grade: number): string { FILE: libs/scoring/src/getLastEvent.ts function getLastEvent (line 7) | function getLastEvent(turns: unknown[][]): Record { FILE: libs/scoring/src/getLevelScore.ts type LevelResult (line 5) | interface LevelResult { type LevelConfig (line 10) | interface LevelConfig { type LevelScore (line 14) | interface LevelScore { function getLevelScore (line 27) | function getLevelScore( FILE: libs/scoring/src/getRemainingTimeBonus.ts function getRemainingTimeBonus (line 10) | function getRemainingTimeBonus(turns: unknown[][], timeBonus: number): n... FILE: libs/scoring/src/getTurnCount.ts function getTurnCount (line 7) | function getTurnCount(turns: unknown[][]): number { FILE: libs/scoring/src/getWarriorScore.ts function getWarriorScore (line 9) | function getWarriorScore(turns: unknown[][]): number { FILE: libs/scoring/src/isFloorClear.ts type Space (line 1) | interface Space { function isFloorClear (line 13) | function isFloorClear(floorMap: Space[][]): boolean { FILE: libs/spatial/src/absoluteDirections.ts constant NORTH (line 4) | const NORTH = 'north'; constant EAST (line 5) | const EAST = 'east'; constant SOUTH (line 6) | const SOUTH = 'south'; constant WEST (line 7) | const WEST = 'west'; constant ABSOLUTE_DIRECTIONS (line 12) | const ABSOLUTE_DIRECTIONS = [NORTH, EAST, SOUTH, WEST] as const; type AbsoluteDirection (line 15) | type AbsoluteDirection = (typeof ABSOLUTE_DIRECTIONS)[number]; function verifyAbsoluteDirection (line 24) | function verifyAbsoluteDirection(direction: string): asserts direction i... function getAbsoluteDirection (line 41) | function getAbsoluteDirection( function getAbsoluteOffset (line 59) | function getAbsoluteOffset( FILE: libs/spatial/src/location.ts type Location (line 4) | type Location = [number, number]; type AbsoluteOffset (line 7) | type AbsoluteOffset = [number, number]; type RelativeOffset (line 10) | type RelativeOffset = [number, number]; function translateLocation (line 20) | function translateLocation([x, y]: Location, [deltaX, deltaY]: AbsoluteO... function getDirectionOfLocation (line 33) | function getDirectionOfLocation([x1, y1]: Location, [x2, y2]: Location):... function getDistanceOfLocation (line 58) | function getDistanceOfLocation([x1, y1]: Location, [x2, y2]: Location): ... FILE: libs/spatial/src/relativeDirections.ts constant FORWARD (line 4) | const FORWARD = 'forward'; constant RIGHT (line 5) | const RIGHT = 'right'; constant BACKWARD (line 6) | const BACKWARD = 'backward'; constant LEFT (line 7) | const LEFT = 'left'; constant RELATIVE_DIRECTIONS (line 12) | const RELATIVE_DIRECTIONS = [FORWARD, RIGHT, BACKWARD, LEFT] as const; type RelativeDirection (line 15) | type RelativeDirection = (typeof RELATIVE_DIRECTIONS)[number]; function verifyRelativeDirection (line 24) | function verifyRelativeDirection(direction: string): asserts direction i... function getRelativeDirection (line 41) | function getRelativeDirection( function getRelativeOffset (line 63) | function getRelativeOffset( function rotateRelativeOffset (line 93) | function rotateRelativeOffset( FILE: libs/units/src/Archer.ts class Archer (line 5) | class Archer extends RangedUnit { method constructor (line 11) | constructor() { FILE: libs/units/src/Captive.ts class Captive (line 3) | class Captive extends Unit { method constructor (line 4) | constructor() { FILE: libs/units/src/MeleeUnit.test.ts class TestMeleeUnit (line 6) | class TestMeleeUnit extends MeleeUnit { method constructor (line 7) | constructor() { FILE: libs/units/src/MeleeUnit.ts method playTurn (line 5) | playTurn(turn: Turn) { FILE: libs/units/src/RangedUnit.test.ts class TestRangedUnit (line 6) | class TestRangedUnit extends RangedUnit { method constructor (line 7) | constructor() { FILE: libs/units/src/RangedUnit.ts method playTurn (line 5) | playTurn(turn: Turn) { FILE: libs/units/src/Sludge.ts class Sludge (line 5) | class Sludge extends MeleeUnit { method constructor (line 11) | constructor() { FILE: libs/units/src/ThickSludge.ts class ThickSludge (line 5) | class ThickSludge extends MeleeUnit { method constructor (line 11) | constructor() { FILE: libs/units/src/Wizard.ts class Wizard (line 5) | class Wizard extends RangedUnit { method constructor (line 11) | constructor() {