bitburner-src/src/Gang/GangMemberUpgrade.ts

60 lines
1.8 KiB
TypeScript
Raw Normal View History

2021-06-14 21:42:38 +02:00
import { IMults } from "./data/upgrades";
export class GangMemberUpgrade {
name: string;
cost: number;
type: string;
desc: string;
mults: IMults;
constructor(name = "", cost = 0, type = "w", mults: IMults = {}) {
2021-06-14 21:42:38 +02:00
this.name = name;
this.cost = cost;
//w = weapon, a = armor, v = vehicle, r = rootkit, g = Aug
this.type = type;
this.mults = mults;
this.desc = this.createDescription();
}
createDescription(): string {
const lines = ["Increases:"];
if (this.mults.str != null) {
lines.push(`* Strength by ${Math.round((this.mults.str - 1) * 100)}%`);
}
if (this.mults.def != null) {
lines.push(`* Defense by ${Math.round((this.mults.def - 1) * 100)}%`);
}
if (this.mults.dex != null) {
lines.push(`* Dexterity by ${Math.round((this.mults.dex - 1) * 100)}%`);
}
if (this.mults.agi != null) {
lines.push(`* Agility by ${Math.round((this.mults.agi - 1) * 100)}%`);
}
if (this.mults.cha != null) {
lines.push(`* Charisma by ${Math.round((this.mults.cha - 1) * 100)}%`);
}
if (this.mults.hack != null) {
lines.push(`* Hacking by ${Math.round((this.mults.hack - 1) * 100)}%`);
}
return lines.join("<br>");
}
2021-06-16 08:26:10 +02:00
// User friendly version of type.
getType(): string {
switch (this.type) {
case "w":
return "Weapon";
case "a":
return "Armor";
case "v":
return "Vehicle";
case "r":
return "Rootkit";
case "g":
return "Augmentation";
default:
return "";
}
}
2021-06-14 21:42:38 +02:00
}