diff --git a/src/Augmentation/AugmentationHelpers.jsx b/src/Augmentation/AugmentationHelpers.jsx index 4d6e222e1..1dde00ec4 100644 --- a/src/Augmentation/AugmentationHelpers.jsx +++ b/src/Augmentation/AugmentationHelpers.jsx @@ -18,6 +18,8 @@ import { dialogBoxCreate } from "../../utils/DialogBox"; import { clearObject } from "../../utils/helpers/clearObject"; import { Money } from "../ui/React/Money"; +import { WHRNG } from "../Casino/RNG"; + import React from "react"; import ReactDOM from "react-dom"; @@ -26,6 +28,64 @@ function AddToAugmentations(aug) { Augmentations[name] = aug; } +function getRandomBonus() { + var bonuses = + [ + [ + ["hacking_chance_mult", 1.25], + ["hacking_speed_mult", 1.15], + ["hacking_money_mult", 1.25], + ["hacking_grow_mult", 1.1], + + ], + [ + ["strength_exp_mult", 1.15], + ["strength_exp_mult", 2] + ], + [ + ["defense_mult", 1.15], + ["defense_exp_mult", 2] + ], + [ + ["dexterity_mult", 1.15], + ["dexterity_exp_mult", 2] + ], + [ + ["agility_mult", 1.15], + ["agility_exp_mult", 2] + ], + [ + ["charisma_mult", 1.15], + ["charisma_exp_mult", 2] + ], + [ + ["hacknet_node_money_mult", 1.2], + ["hacknet_node_purchase_cost_mult", 0.85], + ["hacknet_node_ram_cost_mult", 0.85], + ["hacknet_node_core_cost_mult", 0.85], + ["hacknet_node_level_cost_mult", 0.85] + ], + [ + ["company_rep_mult", 1.25], + ["faction_rep_mult", 1.15], + ["work_money_mult", 1.3] + ], + [ + ["crime_success_mult", 2], + ["crime_money_mult", 2], + ], + ] + + + let randomNumber = (new WHRNG(Math.floor(Player.lastUpdate/3600000))); + + for(let i = 0; i < 3; i++){ + randomNumber.step(); + } + + return (bonuses[Math.floor(bonuses.length * randomNumber.random())]); +} + function initAugmentations() { for (var name in Factions) { if (Factions.hasOwnProperty(name)) { @@ -36,6 +96,31 @@ function initAugmentations() { //Reset Augmentations clearObject(Augmentations); + //Time-Based Augment Test + var randomBonuses = getRandomBonus(); + + const CircadianRhythm = new Augmentation({ + name:AugmentationNames.CircadianRhythm, moneyCost: 1e9, repCost:4.5e3, + info:"A prototype injection which modifies your circadian rhythm, leading to varied effects.

" + + "This augmentation currently modifies these values:
" + }); + + + for (let i = 0; i < randomBonuses.length; i++) { + console.log(`${randomBonuses[i]}`); + CircadianRhythm.mults[randomBonuses[i][0]] = randomBonuses[i][1]; + CircadianRhythm.info += `${randomBonuses[i][0]} by ${Math.round(100 * randomBonuses[i][1].toFixed(2))}%
` + } + + + console.log(CircadianRhythm.info); + + CircadianRhythm.addToFactions(["Speakers for the Dead"]); + if (augmentationExists(AugmentationNames.CircadianRhythm)) { + delete Augmentations[AugmentationNames.CircadianRhythm]; + } + AddToAugmentations(CircadianRhythm); + //Combat stat augmentations const HemoRecirculator = new Augmentation({ name:AugmentationNames.HemoRecirculator, moneyCost: 9e6, repCost:4e3, diff --git a/src/Augmentation/data/AugmentationNames.ts b/src/Augmentation/data/AugmentationNames.ts index 2c681008d..c889a8dfc 100644 --- a/src/Augmentation/data/AugmentationNames.ts +++ b/src/Augmentation/data/AugmentationNames.ts @@ -1,6 +1,7 @@ import { IMap } from "../../types"; export const AugmentationNames: IMap = { + CircadianRhythm: "Circadian Modulator", Targeting1: "Augmented Targeting I", Targeting2: "Augmented Targeting II", Targeting3: "Augmented Targeting III",