import { IPlayer } from '../IPlayer'; import { Faction } from '../../Faction/Faction'; import { CONSTANTS } from '../../Constants'; import { BitNodeMultipliers } from '../../BitNode/BitNodeMultipliers'; function mult(f: Faction): number { let favorMult = 1 + (f.favor / 100); if (isNaN(favorMult)) {favorMult = 1;} return favorMult * BitNodeMultipliers.FactionWorkRepGain; } export function getHackingWorkRepGain(p: IPlayer, f: Faction): number { return (p.hacking_skill + p.intelligence/3) / CONSTANTS.MaxSkillLevel * p.faction_rep_mult * p.getIntelligenceBonus(1) * mult(f); } export function getFactionSecurityWorkRepGain(p: IPlayer, f: Faction): number { const t = 0.9 * (p.hacking_skill / CONSTANTS.MaxSkillLevel + p.strength / CONSTANTS.MaxSkillLevel + p.defense / CONSTANTS.MaxSkillLevel + p.dexterity / CONSTANTS.MaxSkillLevel + p.agility / CONSTANTS.MaxSkillLevel + p.intelligence / CONSTANTS.MaxSkillLevel) / 4.5; return t * p.faction_rep_mult * mult(f) * p.getIntelligenceBonus(1); } export function getFactionFieldWorkRepGain(p: IPlayer, f: Faction): number { const t = 0.9 * (p.hacking_skill / CONSTANTS.MaxSkillLevel + p.strength / CONSTANTS.MaxSkillLevel + p.defense / CONSTANTS.MaxSkillLevel + p.dexterity / CONSTANTS.MaxSkillLevel + p.agility / CONSTANTS.MaxSkillLevel + p.charisma / CONSTANTS.MaxSkillLevel + p.intelligence / CONSTANTS.MaxSkillLevel) / 5.5; return t * p.faction_rep_mult * mult(f) * p.getIntelligenceBonus(1); }