2021-09-16 01:50:44 +02:00
|
|
|
import { TextFile } from "../TextFile";
|
|
|
|
import { Script } from "../Script/Script";
|
|
|
|
import { IPlayer } from "../PersonObjects/IPlayer";
|
|
|
|
import { IEngine } from "../IEngine";
|
|
|
|
|
2021-09-16 20:43:39 +02:00
|
|
|
export class Output {
|
2021-09-16 08:52:45 +02:00
|
|
|
text: string;
|
|
|
|
color: "inherit" | "initial" | "primary" | "secondary" | "error" | "textPrimary" | "textSecondary" | undefined;
|
2021-09-16 20:43:39 +02:00
|
|
|
constructor(
|
|
|
|
text: string,
|
|
|
|
color: "inherit" | "initial" | "primary" | "secondary" | "error" | "textPrimary" | "textSecondary" | undefined,
|
|
|
|
) {
|
|
|
|
this.text = text;
|
|
|
|
this.color = color;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export class Link {
|
|
|
|
hostname: string;
|
|
|
|
constructor(hostname: string) {
|
|
|
|
this.hostname = hostname;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export class TTimer {
|
|
|
|
time: number;
|
|
|
|
timeLeft: number;
|
|
|
|
action: "h" | "b" | "a";
|
|
|
|
|
|
|
|
constructor(time: number, action: "h" | "b" | "a") {
|
|
|
|
this.time = time;
|
|
|
|
this.timeLeft = time;
|
|
|
|
this.action = action;
|
|
|
|
}
|
2021-09-16 08:52:45 +02:00
|
|
|
}
|
|
|
|
|
2021-09-16 01:50:44 +02:00
|
|
|
export interface ITerminal {
|
2021-09-16 20:43:39 +02:00
|
|
|
action: TTimer | null;
|
2021-09-16 02:06:48 +02:00
|
|
|
|
|
|
|
commandHistory: string[];
|
|
|
|
commandHistoryIndex: number;
|
|
|
|
|
2021-09-16 20:43:39 +02:00
|
|
|
outputHistory: (Output | Link)[];
|
2021-09-16 08:52:45 +02:00
|
|
|
|
2021-09-16 02:06:48 +02:00
|
|
|
// True if a Coding Contract prompt is opened
|
|
|
|
contractOpen: boolean;
|
|
|
|
|
|
|
|
// Full Path of current directory
|
|
|
|
// Excludes the trailing forward slash
|
|
|
|
currDir: string;
|
|
|
|
|
2021-09-16 01:50:44 +02:00
|
|
|
print(s: string, config?: any): void;
|
|
|
|
error(s: string): void;
|
|
|
|
|
2021-09-16 08:52:45 +02:00
|
|
|
clear(): void;
|
2021-09-16 01:50:44 +02:00
|
|
|
startAnalyze(): void;
|
|
|
|
startBackdoor(player: IPlayer): void;
|
|
|
|
startHack(player: IPlayer): void;
|
|
|
|
finishHack(player: IPlayer, cancelled?: boolean): void;
|
|
|
|
finishBackdoor(player: IPlayer, cancelled?: boolean): void;
|
|
|
|
finishAnalyze(player: IPlayer, cancelled?: boolean): void;
|
|
|
|
finishAction(player: IPlayer, cancelled?: boolean): void;
|
|
|
|
getFilepath(filename: string): string;
|
|
|
|
getFile(player: IPlayer, filename: string): Script | TextFile | string | null;
|
|
|
|
getScript(player: IPlayer, filename: string): Script | null;
|
|
|
|
getTextFile(player: IPlayer, filename: string): TextFile | null;
|
|
|
|
getLitFile(player: IPlayer, filename: string): string | null;
|
|
|
|
cwd(): string;
|
|
|
|
setcwd(dir: string): void;
|
|
|
|
runContract(player: IPlayer, name: string): void;
|
|
|
|
executeScanAnalyzeCommand(player: IPlayer, depth?: number, all?: boolean): void;
|
|
|
|
connectToServer(player: IPlayer, server: string): void;
|
|
|
|
executeCommand(engine: IEngine, player: IPlayer, command: string): void;
|
|
|
|
executeCommands(engine: IEngine, player: IPlayer, commands: string): void;
|
2021-09-16 08:52:45 +02:00
|
|
|
// If there was any changes, will return true, once.
|
|
|
|
pollChanges(): boolean;
|
2021-09-16 20:43:39 +02:00
|
|
|
process(player: IPlayer, cycles: number): void;
|
|
|
|
prestige(): void;
|
|
|
|
getProgressText(): string;
|
2021-09-16 01:50:44 +02:00
|
|
|
}
|