bitburner-src/src/Bladeburner/IAction.tsx

71 lines
1.9 KiB
TypeScript
Raw Normal View History

2021-05-01 09:17:31 +02:00
import { IBladeburner } from "./IBladeburner";
interface IStatsMultiplier {
2021-09-05 01:09:30 +02:00
[key: string]: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
hack: number;
str: number;
def: number;
dex: number;
agi: number;
cha: number;
int: number;
2021-05-01 09:17:31 +02:00
}
export interface ISuccessChanceParams {
2021-09-05 01:09:30 +02:00
est: boolean;
2021-05-01 09:17:31 +02:00
}
export interface IAction {
2021-09-05 01:09:30 +02:00
name: string;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
// Difficulty scales with level. See getDifficulty() method
level: number;
maxLevel: number;
autoLevel: boolean;
baseDifficulty: number;
difficultyFac: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
// Rank increase/decrease is affected by this exponent
rewardFac: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
successes: number;
failures: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
// All of these scale with level/difficulty
rankGain: number;
rankLoss: number;
hpLoss: number;
hpLost: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
// Action Category. Current categories are stealth and kill
isStealth: boolean;
isKill: boolean;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
/**
* Number of this contract remaining, and its growth rate
* Growth rate is an integer and the count will increase by that integer every "cycle"
*/
count: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
// Weighting of each stat in determining action success rate
weights: IStatsMultiplier;
// Diminishing returns of stats (stat ^ decay where 0 <= decay <= 1)
decays: IStatsMultiplier;
teamCount: number;
2021-05-01 09:17:31 +02:00
2021-09-05 01:09:30 +02:00
getDifficulty(): number;
attempt(inst: IBladeburner): boolean;
getActionTimePenalty(): number;
getActionTime(inst: IBladeburner): number;
getTeamSuccessBonus(inst: IBladeburner): number;
getActionTypeSkillSuccessBonus(inst: IBladeburner): number;
2021-09-09 05:47:34 +02:00
getChaosCompetencePenalty(inst: IBladeburner, params: ISuccessChanceParams): number;
2021-09-05 01:09:30 +02:00
getChaosDifficultyBonus(inst: IBladeburner): number;
getEstSuccessChance(inst: IBladeburner): number[];
getSuccessChance(inst: IBladeburner, params: ISuccessChanceParams): number;
getSuccessesNeededForNextLevel(baseSuccessesPerLevel: number): number;
setMaxLevel(baseSuccessesPerLevel: number): void;
toJSON(): any;
}