diff --git a/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx b/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx index b85dee8e7..e3723daea 100644 --- a/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx +++ b/src/PersonObjects/Player/PlayerObjectGeneralMethods.tsx @@ -654,6 +654,8 @@ export function finishWork(this: IPlayer, cancelled: boolean, sing = false): str this.workRepGained *= this.cancelationPenalty(); } + const penaltyString = this.cancelationPenalty() === 0.5 ? "half" : "three-quarters"; + const company = Companies[this.companyName]; company.playerReputation += this.workRepGained; @@ -665,12 +667,12 @@ export function finishWork(this: IPlayer, cancelled: boolean, sing = false): str
reputation for the company
- {numeralWrapper.formatExp(this.workHackExpGained)} hacking exp
- {numeralWrapper.formatExp(this.workStrExpGained)} strength exp
- {numeralWrapper.formatExp(this.workDefExpGained)} defense exp
- {numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp
- {numeralWrapper.formatExp(this.workAgiExpGained)} agility exp
- {numeralWrapper.formatExp(this.workChaExpGained)} charisma exp + {this.workHackExpGained > 0 && <>{numeralWrapper.formatExp(this.workHackExpGained)} hacking exp
} + {this.workStrExpGained > 0 && <>{numeralWrapper.formatExp(this.workStrExpGained)} strength exp
} + {this.workDefExpGained > 0 && <>{numeralWrapper.formatExp(this.workDefExpGained)} defense exp
} + {this.workDexExpGained > 0 && <>{numeralWrapper.formatExp(this.workDexExpGained)} dexterity exp
} + {this.workAgiExpGained > 0 && <>{numeralWrapper.formatExp(this.workAgiExpGained)} agility exp
} + {this.workChaExpGained > 0 && <>{numeralWrapper.formatExp(this.workChaExpGained)} charisma exp
}
); @@ -680,7 +682,7 @@ export function finishWork(this: IPlayer, cancelled: boolean, sing = false): str <> You worked a short shift of {convertTimeMsToTimeElapsedString(this.timeWorked)}

- Since you cancelled your work early, you only gained half of the reputation you earned.
+ Since you cancelled your work early, you only gained {penaltyString} of the reputation you earned.

{content} diff --git a/src/ui/WorkInProgressRoot.tsx b/src/ui/WorkInProgressRoot.tsx index ef4d4b8f4..58b45ca09 100644 --- a/src/ui/WorkInProgressRoot.tsx +++ b/src/ui/WorkInProgressRoot.tsx @@ -62,20 +62,14 @@ export function WorkInProgressRoot(): React.ReactElement { ( ) reputation for this faction

- {numeralWrapper.formatExp(player.workHackExpGained)} ( - {numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec) hacking exp
+ {player.workHackExpGained > 0 && <>{numeralWrapper.formatExp(player.workHackExpGained)} ({numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec) hacking exp
}
- {numeralWrapper.formatExp(player.workStrExpGained)} ( - {numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec) strength exp
- {numeralWrapper.formatExp(player.workDefExpGained)} ( - {numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec) defense exp
- {numeralWrapper.formatExp(player.workDexExpGained)} ( - {numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec) dexterity exp
- {numeralWrapper.formatExp(player.workAgiExpGained)} ( - {numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec) agility exp
+ {player.workStrExpGained > 0 && <>{numeralWrapper.formatExp(player.workStrExpGained)} ({numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec) strength exp
} + {player.workDefExpGained > 0 && <>{numeralWrapper.formatExp(player.workDefExpGained)} ({numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec) defense exp
} + {player.workDexExpGained > 0 && <>{numeralWrapper.formatExp(player.workDexExpGained)} ({numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec) dexterity exp
} + {player.workAgiExpGained > 0 && <>{numeralWrapper.formatExp(player.workAgiExpGained)} ({numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec) agility exp
}
- {numeralWrapper.formatExp(player.workChaExpGained)} ( - {numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec) charisma exp
+ {player.workChaExpGained > 0 && <>{numeralWrapper.formatExp(player.workChaExpGained)} ({numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec) charisma exp
}
You will automatically finish after working for 20 hours. You can cancel earlier if you wish.
@@ -123,18 +117,12 @@ export function WorkInProgressRoot(): React.ReactElement {

You have gained:
- {numeralWrapper.formatExp(player.workHackExpGained)} ( - {numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec) hacking exp
- {numeralWrapper.formatExp(player.workStrExpGained)} ( - {numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec) strength exp
- {numeralWrapper.formatExp(player.workDefExpGained)} ( - {numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec) defense exp
- {numeralWrapper.formatExp(player.workDexExpGained)} ( - {numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec) dexterity exp
- {numeralWrapper.formatExp(player.workAgiExpGained)} ( - {numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec) agility exp
- {numeralWrapper.formatExp(player.workChaExpGained)} ( - {numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec) charisma exp
+ {player.workHackExpGained > 0 && <>{numeralWrapper.formatExp(player.workHackExpGained)} ({numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec) hacking exp
} + {player.workStrExpGained > 0 && <>{numeralWrapper.formatExp(player.workStrExpGained)} ({numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec) strength exp
} + {player.workDefExpGained > 0 && <>{numeralWrapper.formatExp(player.workDefExpGained)} ({numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec) defense exp
} + {player.workDexExpGained > 0 && <>{numeralWrapper.formatExp(player.workDexExpGained)} ({numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec) dexterity exp
} + {player.workAgiExpGained > 0 && <>{numeralWrapper.formatExp(player.workAgiExpGained)} ({numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec) agility exp
} + {player.workChaExpGained > 0 && <>{numeralWrapper.formatExp(player.workChaExpGained)} ({numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec) charisma exp
} You may cancel at any time @@ -185,26 +173,26 @@ export function WorkInProgressRoot(): React.ReactElement { ( ) reputation for this company

- {numeralWrapper.formatExp(player.workHackExpGained)} ( + {player.workHackExpGained > 0 && <>{numeralWrapper.formatExp(player.workHackExpGained)} ( {`${numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec`} - ) hacking exp
+ ) hacking exp
}
- {numeralWrapper.formatExp(player.workStrExpGained)} ( + {player.workStrExpGained > 0 && <>{numeralWrapper.formatExp(player.workStrExpGained)} ( {`${numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec`} - ) strength exp
- {numeralWrapper.formatExp(player.workDefExpGained)} ( + ) strength exp
} + {player.workDefExpGained > 0 && <>{numeralWrapper.formatExp(player.workDefExpGained)} ( {`${numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec`} - ) defense exp
- {numeralWrapper.formatExp(player.workDexExpGained)} ( + ) defense exp
} + {player.workDexExpGained > 0 && <>{numeralWrapper.formatExp(player.workDexExpGained)} ( {`${numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec`} - ) dexterity exp
- {numeralWrapper.formatExp(player.workAgiExpGained)} ( + ) dexterity exp
} + {player.workAgiExpGained > 0 && <>{numeralWrapper.formatExp(player.workAgiExpGained)} ( {`${numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec`} - ) agility exp
+ ) agility exp
}
- {numeralWrapper.formatExp(player.workChaExpGained)} ( + {player.workChaExpGained > 0 && <>{numeralWrapper.formatExp(player.workChaExpGained)} ( {`${numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec`} - ) charisma exp
+ ) charisma exp
}
You will automatically finish after working for 8 hours. You can cancel earlier if you wish, but you will only gain {penaltyString} of the reputation you've earned so far. @@ -256,26 +244,26 @@ export function WorkInProgressRoot(): React.ReactElement { ) reputation for this company

- {numeralWrapper.formatExp(player.workHackExpGained)} ( + {player.workHackExpGained > 0 && <>{numeralWrapper.formatExp(player.workHackExpGained)} ( {`${numeralWrapper.formatExp(player.workHackExpGainRate * CYCLES_PER_SEC)} / sec`} - ) hacking exp
+ ) hacking exp
}
- {numeralWrapper.formatExp(player.workStrExpGained)} ( + {player.workStrExpGained > 0 && <>{numeralWrapper.formatExp(player.workStrExpGained)} ( {`${numeralWrapper.formatExp(player.workStrExpGainRate * CYCLES_PER_SEC)} / sec`} - ) strength exp
- {numeralWrapper.formatExp(player.workDefExpGained)} ( + ) strength exp
} + {player.workDefExpGained > 0 && <>{numeralWrapper.formatExp(player.workDefExpGained)} ( {`${numeralWrapper.formatExp(player.workDefExpGainRate * CYCLES_PER_SEC)} / sec`} - ) defense exp
- {numeralWrapper.formatExp(player.workDexExpGained)} ( + ) defense exp
} + {player.workDexExpGained > 0 && <>{numeralWrapper.formatExp(player.workDexExpGained)} ( {`${numeralWrapper.formatExp(player.workDexExpGainRate * CYCLES_PER_SEC)} / sec`} - ) dexterity exp
- {numeralWrapper.formatExp(player.workAgiExpGained)} ( + ) dexterity exp
} + {player.workAgiExpGained > 0 && <>{numeralWrapper.formatExp(player.workAgiExpGained)} ( {`${numeralWrapper.formatExp(player.workAgiExpGainRate * CYCLES_PER_SEC)} / sec`} - ) agility exp
+ ) agility exp
}
- {numeralWrapper.formatExp(player.workChaExpGained)} ( + {player.workChaExpGained > 0 && <>{numeralWrapper.formatExp(player.workChaExpGained)} ( {`${numeralWrapper.formatExp(player.workChaExpGainRate * CYCLES_PER_SEC)} / sec`} - ) charisma exp
+ ) charisma exp
}
You will automatically finish after working for 8 hours. You can cancel earlier if you wish, and there will be no penalty because this is a part-time job.