mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-19 15:54:09 +02:00
work on sleeve new work system
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { IPlayer } from "../../IPlayer";
|
||||
import { Generic_fromJSON, Generic_toJSON, IReviverValue, Reviver } from "../../../utils/JSONReviver";
|
||||
import { Sleeve } from "../Sleeve";
|
||||
import { Work, WorkType } from "./Work";
|
||||
|
||||
export const isSleeveRecoveryWork = (w: Work | null): w is SleeveRecoveryWork =>
|
||||
w !== null && w.type === WorkType.RECOVERY;
|
||||
|
||||
export class SleeveRecoveryWork extends Work {
|
||||
constructor() {
|
||||
super(WorkType.RECOVERY);
|
||||
}
|
||||
|
||||
process(player: IPlayer, sleeve: Sleeve, cycles: number): number {
|
||||
sleeve.shock = Math.min(100, sleeve.shock + 0.0002 * cycles);
|
||||
if (sleeve.shock >= 100) sleeve.currentWork = null;
|
||||
return 0;
|
||||
}
|
||||
|
||||
APICopy(): Record<string, unknown> {
|
||||
return {
|
||||
type: this.type,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize the current object to a JSON save state.
|
||||
*/
|
||||
toJSON(): IReviverValue {
|
||||
return Generic_toJSON("SleeveRecoveryWork", this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiatizes a RecoveryWork object from a JSON save state.
|
||||
*/
|
||||
static fromJSON(value: IReviverValue): SleeveRecoveryWork {
|
||||
return Generic_fromJSON(SleeveRecoveryWork, value.data);
|
||||
}
|
||||
}
|
||||
|
||||
Reviver.constructors.SleeveRecoveryWork = SleeveRecoveryWork;
|
||||
Reference in New Issue
Block a user