From 47f54a11c3b5d6c6d2eb245635c04e164bca80d8 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Fri, 24 Sep 2021 16:02:38 -0400 Subject: [PATCH] ts convertion --- src/Augmentation/Augmentation.tsx | 2 +- src/Augmentation/AugmentationHelpers.d.ts | 3 -- ...ionHelpers.jsx => AugmentationHelpers.tsx} | 32 +++++++++---------- src/Message/MessageHelpers.d.ts | 1 - .../{MessageHelpers.js => MessageHelpers.ts} | 16 ++++++---- src/PersonObjects/IPlayer.ts | 4 ++- src/PersonObjects/Player/PlayerObject.ts | 7 +++- .../Player/PlayerObjectGeneralMethods.tsx | 10 ++++++ 8 files changed, 44 insertions(+), 31 deletions(-) delete mode 100644 src/Augmentation/AugmentationHelpers.d.ts rename src/Augmentation/{AugmentationHelpers.jsx => AugmentationHelpers.tsx} (99%) delete mode 100644 src/Message/MessageHelpers.d.ts rename src/Message/{MessageHelpers.js => MessageHelpers.ts} (94%) diff --git a/src/Augmentation/Augmentation.tsx b/src/Augmentation/Augmentation.tsx index 6a32d775d..3da10649b 100644 --- a/src/Augmentation/Augmentation.tsx +++ b/src/Augmentation/Augmentation.tsx @@ -10,7 +10,7 @@ import { Money } from "../ui/React/Money"; import { Generic_fromJSON, Generic_toJSON, Reviver } from "../../utils/JSONReviver"; -interface IConstructorParams { +export interface IConstructorParams { info: string | JSX.Element; stats?: JSX.Element; isSpecial?: boolean; diff --git a/src/Augmentation/AugmentationHelpers.d.ts b/src/Augmentation/AugmentationHelpers.d.ts deleted file mode 100644 index 80a1be9cc..000000000 --- a/src/Augmentation/AugmentationHelpers.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare function isRepeatableAug(aug: Augmentation): boolean; -export declare function installAugmentations(): void; -export declare function applyAugmentation(aug: Augmentation, reapply?: boolean): void; diff --git a/src/Augmentation/AugmentationHelpers.jsx b/src/Augmentation/AugmentationHelpers.tsx similarity index 99% rename from src/Augmentation/AugmentationHelpers.jsx rename to src/Augmentation/AugmentationHelpers.tsx index c3f4849d4..12a221f57 100644 --- a/src/Augmentation/AugmentationHelpers.jsx +++ b/src/Augmentation/AugmentationHelpers.tsx @@ -1,6 +1,6 @@ -import { Augmentation } from "./Augmentation"; +import { Augmentation, IConstructorParams } from "./Augmentation"; import { Augmentations } from "./Augmentations"; -import { PlayerOwnedAugmentation } from "./PlayerOwnedAugmentation"; +import { PlayerOwnedAugmentation, IPlayerOwnedAugmentation } from "./PlayerOwnedAugmentation"; import { AugmentationNames } from "./data/AugmentationNames"; import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers"; @@ -18,13 +18,13 @@ import { WHRNG } from "../Casino/RNG"; import React from "react"; -function AddToAugmentations(aug) { - var name = aug.name; +function AddToAugmentations(aug: Augmentation): void { + const name = aug.name; Augmentations[name] = aug; } -function getRandomBonus() { - var bonuses = [ +function getRandomBonus(): any { + const bonuses = [ { bonuses: { hacking_chance_mult: 1.25, @@ -124,7 +124,7 @@ function initAugmentations() { //Time-Based Augment Test const randomBonuses = getRandomBonus(); - const UnstableCircadianModulatorParams = { + const UnstableCircadianModulatorParams: IConstructorParams = { name: AugmentationNames.UnstableCircadianModulator, moneyCost: 5e9, repCost: 3.625e5, @@ -133,7 +133,7 @@ function initAugmentations() { "unpredictable results based on your circadian rhythm.", }; Object.keys(randomBonuses.bonuses).forEach( - (key) => (UnstableCircadianModulatorParams[key] = randomBonuses.bonuses[key]), + (key) => ((UnstableCircadianModulatorParams as any)[key] = randomBonuses.bonuses[key]), ); const UnstableCircadianModulator = new Augmentation(UnstableCircadianModulatorParams); @@ -2359,7 +2359,7 @@ function initAugmentations() { } //Resets an Augmentation during (re-initizliation) -function resetAugmentation(newAugObject) { +function resetAugmentation(newAugObject: Augmentation): void { if (!(newAugObject instanceof Augmentation)) { throw new Error("Invalid argument 'newAugObject' passed into resetAugmentation"); } @@ -2370,18 +2370,16 @@ function resetAugmentation(newAugObject) { AddToAugmentations(newAugObject); } -function applyAugmentation(aug, reapply = false) { +function applyAugmentation(aug: IPlayerOwnedAugmentation, reapply = false): void { Augmentations[aug.name].owned = true; const augObj = Augmentations[aug.name]; // Apply multipliers for (const mult in augObj.mults) { - if (Player[mult] == null) { - console.warn(`Augmentation has unrecognized multiplier property: ${mult}`); - } else { - Player[mult] *= augObj.mults[mult]; - } + const v = Player.getMult(mult) * augObj.mults[mult]; + Player.setMult(mult, v); + console.log(`${mult} ${v}`); } // Special logic for NeuroFlux Governor @@ -2445,11 +2443,11 @@ function installAugmentations() { prestigeAugmentation(); } -function augmentationExists(name) { +function augmentationExists(name: string) { return Augmentations.hasOwnProperty(name); } -export function isRepeatableAug(aug) { +export function isRepeatableAug(aug: Augmentation): boolean { const augName = aug instanceof Augmentation ? aug.name : aug; if (augName === AugmentationNames.NeuroFluxGovernor) { diff --git a/src/Message/MessageHelpers.d.ts b/src/Message/MessageHelpers.d.ts deleted file mode 100644 index f625748e0..000000000 --- a/src/Message/MessageHelpers.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function showMessage(msg: Message): void; diff --git a/src/Message/MessageHelpers.js b/src/Message/MessageHelpers.ts similarity index 94% rename from src/Message/MessageHelpers.js rename to src/Message/MessageHelpers.ts index eec8a5350..686155117 100644 --- a/src/Message/MessageHelpers.js +++ b/src/Message/MessageHelpers.ts @@ -11,7 +11,7 @@ import { dialogBoxCreate } from "../../utils/DialogBox"; import { Reviver } from "../../utils/JSONReviver"; //Sends message to player, including a pop up -function sendMessage(msg, forced = false) { +function sendMessage(msg: Message, forced = false): void { msg.recvd = true; if (forced || !Settings.SuppressMessages) { showMessage(msg); @@ -19,7 +19,7 @@ function sendMessage(msg, forced = false) { addMessageToServer(msg, "home"); } -function showMessage(msg) { +function showMessage(msg: Message): void { var txt = "Message received from unknown sender:

" + "" + @@ -32,14 +32,16 @@ function showMessage(msg) { } //Adds a message to a server -function addMessageToServer(msg, serverHostname) { +function addMessageToServer(msg: Message, serverHostname: string): void { var server = GetServerByHostname(serverHostname); if (server == null) { console.warn(`Could not find server ${serverHostname}`); return; } for (var i = 0; i < server.messages.length; ++i) { - if (server.messages[i].filename === msg.filename) { + const msg = server.messages[i]; + if (typeof msg === "string") continue; + if (msg.filename === msg.filename) { return; //Already exists } } @@ -95,13 +97,13 @@ function checkForMessagesToSend() { } } -function AddToAllMessages(msg) { +function AddToAllMessages(msg: Message): void { Messages[msg.filename] = msg; } -let Messages = {}; +let Messages: { [key: string]: Message | undefined } = {}; -function loadMessages(saveString) { +function loadMessages(saveString: string): void { Messages = JSON.parse(saveString, Reviver); } diff --git a/src/PersonObjects/IPlayer.ts b/src/PersonObjects/IPlayer.ts index 393a8995b..67cee219f 100644 --- a/src/PersonObjects/IPlayer.ts +++ b/src/PersonObjects/IPlayer.ts @@ -201,7 +201,7 @@ export interface IPlayer { inGang(): boolean; isQualified(company: Company, position: CompanyPosition): boolean; loseMoney(money: number): void; - reapplyAllAugmentations(resetMultipliers: boolean): void; + reapplyAllAugmentations(resetMultipliers?: boolean): void; reapplyAllSourceFiles(): void; regenerateHp(amt: number): void; recordMoneySource(amt: number, source: string): void; @@ -272,4 +272,6 @@ export interface IPlayer { commitCrime(numCycles: number): boolean; checkForFactionInvitations(): void; setBitNodeNumber(n: number): void; + getMult(name: string): number; + setMult(name: string, mult: number): void; } diff --git a/src/PersonObjects/Player/PlayerObject.ts b/src/PersonObjects/Player/PlayerObject.ts index ad7da4a70..37be2e331 100644 --- a/src/PersonObjects/Player/PlayerObject.ts +++ b/src/PersonObjects/Player/PlayerObject.ts @@ -208,7 +208,7 @@ export class PlayerObject implements IPlayer { inGang: () => boolean; isQualified: (company: Company, position: CompanyPosition) => boolean; loseMoney: (money: number) => void; - reapplyAllAugmentations: (resetMultipliers: boolean) => void; + reapplyAllAugmentations: (resetMultipliers?: boolean) => void; reapplyAllSourceFiles: () => void; regenerateHp: (amt: number) => void; recordMoneySource: (amt: number, source: string) => void; @@ -279,6 +279,8 @@ export class PlayerObject implements IPlayer { commitCrime: (numCycles: number) => boolean; checkForFactionInvitations: () => void; setBitNodeNumber: (n: number) => void; + getMult: (name: string) => number; + setMult: (name: string, mult: number) => void; constructor() { //Skills and stats @@ -570,6 +572,9 @@ export class PlayerObject implements IPlayer { this.factionWorkType = ""; this.committingCrimeThruSingFn = false; this.singFnCrimeWorkerScript = null; + + this.getMult = generalMethods.getMult; + this.setMult = generalMethods.setMult; } /** diff --git a/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx b/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx index b788202a7..74fa37f3a 100644 --- a/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx +++ b/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx @@ -2625,3 +2625,13 @@ export function getIntelligenceBonus(this: IPlayer, weight: number) { export function getCasinoWinnings(this: IPlayer) { return this.moneySourceA.casino; } + +export function getMult(this: IPlayer, name: string): number { + if (!this.hasOwnProperty(name)) return 1; + return (this as any)[name]; +} + +export function setMult(this: IPlayer, name: string, mult: number): void { + if (!this.hasOwnProperty(name)) return; + (this as any)[name] = mult; +}