2021-05-01 09:17:31 +02:00
|
|
|
import { IBladeburner } from "./IBladeburner";
|
|
|
|
|
2021-10-15 01:31:17 +02:00
|
|
|
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;
|
2021-11-04 01:19:52 +01:00
|
|
|
getEstSuccessChance(inst: IBladeburner): [number, number];
|
2021-09-05 01:09:30 +02:00
|
|
|
getSuccessChance(inst: IBladeburner, params: ISuccessChanceParams): number;
|
|
|
|
getSuccessesNeededForNextLevel(baseSuccessesPerLevel: number): number;
|
|
|
|
setMaxLevel(baseSuccessesPerLevel: number): void;
|
|
|
|
toJSON(): any;
|
|
|
|
}
|