mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-16 06:18:42 +02:00
API: Added external api which returns gainExperience (#1955)
This commit is contained in:
13
markdown/bitburner.gangmemberexpgain.agi_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.agi_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [agi\_exp](./bitburner.gangmemberexpgain.agi_exp.md)
|
||||
|
||||
## GangMemberExpGain.agi\_exp property
|
||||
|
||||
Agi EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
agi_exp: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberexpgain.cha_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.cha_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [cha\_exp](./bitburner.gangmemberexpgain.cha_exp.md)
|
||||
|
||||
## GangMemberExpGain.cha\_exp property
|
||||
|
||||
Cha EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
cha_exp: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberexpgain.def_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.def_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [def\_exp](./bitburner.gangmemberexpgain.def_exp.md)
|
||||
|
||||
## GangMemberExpGain.def\_exp property
|
||||
|
||||
Def EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
def_exp: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberexpgain.dex_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.dex_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [dex\_exp](./bitburner.gangmemberexpgain.dex_exp.md)
|
||||
|
||||
## GangMemberExpGain.dex\_exp property
|
||||
|
||||
Dex EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
dex_exp: number;
|
||||
```
|
||||
13
markdown/bitburner.gangmemberexpgain.hack_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.hack_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [hack\_exp](./bitburner.gangmemberexpgain.hack_exp.md)
|
||||
|
||||
## GangMemberExpGain.hack\_exp property
|
||||
|
||||
Hack EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
hack_exp: number;
|
||||
```
|
||||
24
markdown/bitburner.gangmemberexpgain.md
Normal file
24
markdown/bitburner.gangmemberexpgain.md
Normal file
@@ -0,0 +1,24 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md)
|
||||
|
||||
## GangMemberExpGain interface
|
||||
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
interface GangMemberExpGain
|
||||
```
|
||||
|
||||
## Properties
|
||||
|
||||
| Property | Modifiers | Type | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| [agi\_exp](./bitburner.gangmemberexpgain.agi_exp.md) | | number | Agi EXP gain for a member after a given task |
|
||||
| [cha\_exp](./bitburner.gangmemberexpgain.cha_exp.md) | | number | Cha EXP gain for a member after a given task |
|
||||
| [def\_exp](./bitburner.gangmemberexpgain.def_exp.md) | | number | Def EXP gain for a member after a given task |
|
||||
| [dex\_exp](./bitburner.gangmemberexpgain.dex_exp.md) | | number | Dex EXP gain for a member after a given task |
|
||||
| [hack\_exp](./bitburner.gangmemberexpgain.hack_exp.md) | | number | Hack EXP gain for a member after a given task |
|
||||
| [str\_exp](./bitburner.gangmemberexpgain.str_exp.md) | | number | Str EXP gain for a member after a given task |
|
||||
|
||||
13
markdown/bitburner.gangmemberexpgain.str_exp.md
Normal file
13
markdown/bitburner.gangmemberexpgain.str_exp.md
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberExpGain](./bitburner.gangmemberexpgain.md) > [str\_exp](./bitburner.gangmemberexpgain.str_exp.md)
|
||||
|
||||
## GangMemberExpGain.str\_exp property
|
||||
|
||||
Str EXP gain for a member after a given task
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
str_exp: number;
|
||||
```
|
||||
15
markdown/bitburner.gangmemberinfo.expgain.md
Normal file
15
markdown/bitburner.gangmemberinfo.expgain.md
Normal file
@@ -0,0 +1,15 @@
|
||||
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||
|
||||
[Home](./index.md) > [bitburner](./bitburner.md) > [GangMemberInfo](./bitburner.gangmemberinfo.md) > [expGain](./bitburner.gangmemberinfo.expgain.md)
|
||||
|
||||
## GangMemberInfo.expGain property
|
||||
|
||||
Per Cycle Exp object for each stat for this gang member.
|
||||
|
||||
null in the event that the member does not have a given task.
|
||||
|
||||
**Signature:**
|
||||
|
||||
```typescript
|
||||
expGain: GangMemberExpGain | null;
|
||||
```
|
||||
@@ -37,6 +37,7 @@ interface GangMemberInfo
|
||||
| [dex\_mult](./bitburner.gangmemberinfo.dex_mult.md) | | number | Dexterity multiplier from equipment |
|
||||
| [dex](./bitburner.gangmemberinfo.dex.md) | | number | Dexterity skill level |
|
||||
| [earnedRespect](./bitburner.gangmemberinfo.earnedrespect.md) | | number | Amount of Respect earned by member since they last Ascended |
|
||||
| [expGain](./bitburner.gangmemberinfo.expgain.md) | | [GangMemberExpGain](./bitburner.gangmemberexpgain.md) \| null | <p>Per Cycle Exp object for each stat for this gang member.</p><p>null in the event that the member does not have a given task.</p> |
|
||||
| [hack\_asc\_mult](./bitburner.gangmemberinfo.hack_asc_mult.md) | | number | Hack multiplier from ascensions |
|
||||
| [hack\_asc\_points](./bitburner.gangmemberinfo.hack_asc_points.md) | | number | Total Hack Ascension points accumulated |
|
||||
| [hack\_exp](./bitburner.gangmemberinfo.hack_exp.md) | | number | Current hack experience |
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
| [GangFormulas](./bitburner.gangformulas.md) | Gang formulas |
|
||||
| [GangGenInfo](./bitburner.ganggeninfo.md) | Gang general info. |
|
||||
| [GangMemberAscension](./bitburner.gangmemberascension.md) | |
|
||||
| [GangMemberExpGain](./bitburner.gangmemberexpgain.md) | |
|
||||
| [GangMemberInfo](./bitburner.gangmemberinfo.md) | |
|
||||
| [GangMemberInstall](./bitburner.gangmemberinstall.md) | |
|
||||
| [GangOtherInfoObject](./bitburner.gangotherinfoobject.md) | |
|
||||
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
calculateAscensionMult,
|
||||
calculateAscensionPointsGain,
|
||||
} from "./formulas/formulas";
|
||||
import { GangMemberExpGain } from "@nsdefs";
|
||||
|
||||
interface IMults {
|
||||
hack: number;
|
||||
@@ -147,43 +148,80 @@ export class GangMember {
|
||||
};
|
||||
}
|
||||
|
||||
gainExperience(numCycles = 1): void {
|
||||
// Calculate our gain for each stat based on each modifier of member
|
||||
// if no task is assigned to that member we return null, other wise we
|
||||
// return an object containing our per-cycle gains for each stat.
|
||||
calculateExpGain(numCycles = 1): GangMemberExpGain | null {
|
||||
const task = this.getTask();
|
||||
if (task === GangMemberTasks.Unassigned) return;
|
||||
if (task === GangMemberTasks.Unassigned) return null;
|
||||
|
||||
const expValues = {
|
||||
hack_exp: 0,
|
||||
str_exp: 0,
|
||||
def_exp: 0,
|
||||
dex_exp: 0,
|
||||
agi_exp: 0,
|
||||
cha_exp: 0,
|
||||
};
|
||||
|
||||
const difficultyMult = Math.pow(task.difficulty, 0.9);
|
||||
const difficultyPerCycles = difficultyMult * numCycles;
|
||||
const weightDivisor = 1500;
|
||||
const expMult = this.expMult();
|
||||
this.hack_exp +=
|
||||
|
||||
expValues.hack_exp +=
|
||||
(task.hackWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.hack *
|
||||
this.calculateAscensionMult(this.hack_asc_points);
|
||||
this.str_exp +=
|
||||
|
||||
expValues.str_exp +=
|
||||
(task.strWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.str *
|
||||
this.calculateAscensionMult(this.str_asc_points);
|
||||
this.def_exp +=
|
||||
|
||||
expValues.def_exp +=
|
||||
(task.defWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.def *
|
||||
this.calculateAscensionMult(this.def_asc_points);
|
||||
this.dex_exp +=
|
||||
|
||||
expValues.dex_exp +=
|
||||
(task.dexWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.dex *
|
||||
this.calculateAscensionMult(this.dex_asc_points);
|
||||
this.agi_exp +=
|
||||
|
||||
expValues.agi_exp +=
|
||||
(task.agiWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.agi *
|
||||
this.calculateAscensionMult(this.agi_asc_points);
|
||||
this.cha_exp +=
|
||||
|
||||
expValues.cha_exp +=
|
||||
(task.chaWeight / weightDivisor) *
|
||||
difficultyPerCycles *
|
||||
expMult.cha *
|
||||
this.calculateAscensionMult(this.cha_asc_points);
|
||||
|
||||
return expValues;
|
||||
}
|
||||
|
||||
gainExperience(numCycles: number): void {
|
||||
// Do the calculations if our function returns null meaning no task is assigned
|
||||
// then we return otherwise we add our exp gains to our total values
|
||||
const gains = this.calculateExpGain(numCycles);
|
||||
if (gains === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.hack_exp += gains.hack_exp;
|
||||
this.str_exp += gains.str_exp;
|
||||
this.def_exp += gains.def_exp;
|
||||
this.dex_exp += gains.dex_exp;
|
||||
this.agi_exp += gains.agi_exp;
|
||||
this.cha_exp += gains.cha_exp;
|
||||
}
|
||||
|
||||
earnRespect(numCycles = 1, gang: Gang): number {
|
||||
|
||||
@@ -156,6 +156,7 @@ export function NetscriptGang(): InternalAPI<IGang> {
|
||||
respectGain: member.calculateRespectGain(gang),
|
||||
wantedLevelGain: member.calculateWantedLevelGain(gang),
|
||||
moneyGain: member.calculateMoneyGain(gang),
|
||||
expGain: member.calculateExpGain(),
|
||||
};
|
||||
},
|
||||
canRecruitMember: (ctx) => () => {
|
||||
|
||||
21
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
21
src/ScriptEditor/NetscriptDefinitions.d.ts
vendored
@@ -1,5 +1,4 @@
|
||||
/** All netscript definitions */
|
||||
|
||||
/** @public */
|
||||
interface HP {
|
||||
current: number;
|
||||
@@ -918,6 +917,21 @@ interface GangTerritory {
|
||||
/** Wanted gain impact on task scaling */
|
||||
wanted: number;
|
||||
}
|
||||
/** @public */
|
||||
interface GangMemberExpGain {
|
||||
/** Hack EXP gain for a member after a given task*/
|
||||
hack_exp: number;
|
||||
/** Str EXP gain for a member after a given task*/
|
||||
str_exp: number;
|
||||
/** Def EXP gain for a member after a given task*/
|
||||
def_exp: number;
|
||||
/** Dex EXP gain for a member after a given task*/
|
||||
dex_exp: number;
|
||||
/** Agi EXP gain for a member after a given task*/
|
||||
agi_exp: number;
|
||||
/** Cha EXP gain for a member after a given task*/
|
||||
cha_exp: number;
|
||||
}
|
||||
|
||||
/** @public */
|
||||
interface GangMemberInfo {
|
||||
@@ -1004,6 +1018,11 @@ interface GangMemberInfo {
|
||||
wantedLevelGain: number;
|
||||
/** Per Cycle Income for this gang member */
|
||||
moneyGain: number;
|
||||
/** Per Cycle Exp object for each stat for this gang member.
|
||||
*
|
||||
* null in the event that the member does not have a given task.
|
||||
*/
|
||||
expGain: GangMemberExpGain | null;
|
||||
}
|
||||
|
||||
/** @public */
|
||||
|
||||
Reference in New Issue
Block a user