BLADEBURNER: FIX #3508 Add GetActionCurrentTime() to Bitburner API

Add GetActionCurrentTime() to Bitburner API.
Slightly tweak BItburner.resetAction() to also reset time counters.
This commit is contained in:
borisflagell 2022-05-22 06:40:08 +02:00
parent b2659318c8
commit 8e0af049d9
4 changed files with 29 additions and 1 deletions

@ -287,6 +287,8 @@ export class Bladeburner implements IBladeburner {
resetAction(): void {
this.action = new ActionIdentifier({ type: ActionTypes.Idle });
this.actionTimeCurrent = 0;
this.actionTimeToComplete = 0;
}
clearConsole(): void {

@ -226,6 +226,7 @@ const bladeburner: IMap<any> = {
stopBladeburnerAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 2,
getCurrentAction: RamCostConstants.ScriptBladeburnerApiBaseRamCost / 4,
getActionTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,
getActionCurrentTime: RamCostConstants.ScriptBladeburnerApiBaseRamCost,
getActionEstimatedSuccessChance: RamCostConstants.ScriptBladeburnerApiBaseRamCost,
getActionRepGain: RamCostConstants.ScriptBladeburnerApiBaseRamCost,
getActionCountRemaining: RamCostConstants.ScriptBladeburnerApiBaseRamCost,

@ -137,6 +137,20 @@ export function NetscriptBladeburner(player: IPlayer, workerScript: WorkerScript
throw ctx.makeRuntimeErrorMsg(e);
}
},
getActionCurrentTime: (ctx: NetscriptContext) => (): number => {
checkBladeburnerAccess(ctx);
const bladeburner = player.bladeburner;
if (bladeburner === null) throw new Error("Should not be called without Bladeburner");
try {
const timecomputed = Math.min(
bladeburner.actionTimeCurrent + bladeburner.actionTimeOverflow,
bladeburner.actionTimeToComplete,
) * 1000 ;
return timecomputed;
} catch (e: any) {
throw ctx.makeRuntimeErrorMsg(e);
}
},
getActionEstimatedSuccessChance:
(ctx: NetscriptContext) =>
(_type: unknown, _name: unknown): [number, number] => {

@ -2884,7 +2884,7 @@ export interface Bladeburner {
* @remarks
* RAM cost: 4 GB
*
* Returns the number of seconds it takes to complete the specified action
* Returns the number of milliseconds it takes to complete the specified action
*
* @param type - Type of action.
* @param name - Name of action. Must be an exact match.
@ -2892,6 +2892,17 @@ export interface Bladeburner {
*/
getActionTime(type: string, name: string): number;
/**
* Get the time elapsed on current action.
* @remarks
* RAM cost: 4 GB
*
* Returns the number of milliseconds it takes to complete the specified action
*
* @returns Number of milliseconds already spent on the current action.
*/
getActionCurrentTime(): number;
/**
* Get estimate success chance of an action.
* @remarks