import { Corporation } from "./Corporation/Corporation";
import { PlayerObject } from "./PersonObjects/Player/PlayerObject";
import { sanitizeExploits } from "./Exploits/Exploit";

import { Reviver } from "../utils/JSONReviver";

import Decimal from "decimal.js";

export let Player = new PlayerObject();

export function loadPlayer(saveString) {
  Player = JSON.parse(saveString, Reviver);

  // Parse Decimal.js objects
  Player.money = new Decimal(Player.money);

  if (Player.corporation instanceof Corporation) {
    Player.corporation.funds = new Decimal(Player.corporation.funds);
    Player.corporation.revenue = new Decimal(Player.corporation.revenue);
    Player.corporation.expenses = new Decimal(Player.corporation.expenses);

    for (var i = 0; i < Player.corporation.divisions.length; ++i) {
      var ind = Player.corporation.divisions[i];
      ind.lastCycleRevenue = new Decimal(ind.lastCycleRevenue);
      ind.lastCycleExpenses = new Decimal(ind.lastCycleExpenses);
      ind.thisCycleRevenue = new Decimal(ind.thisCycleRevenue);
      ind.thisCycleExpenses = new Decimal(ind.thisCycleExpenses);
    }
  }

  Player.exploits = sanitizeExploits(Player.exploits);
}
