[Sifrah] Removing an implant while having cybernetic rejection syndrome causes a null reference exception.

Issue #6239 resolved
Noelle Lavenza created an issue

With Sifrah, mutants can hack becoming nooks to gain cybernetic implants, which have a chance of causing cybernetic rejection syndrome. The only way to stop rejection syndrome is by removing enough implants to reduce its Level to zero; however, this currently doesn't work.
When removing implants after rejection syndrome begins, CyberneticRejectionSyndrome.Reduce(implant.Cost) is called. However, this method throws an exception due to an order of operations issue: once it's reduced enough to lower the level of the effect to or below zero, base.Object.RemoveEffect(this); is called. Right after, however, if (base.Object.IsPlayer()) is called; this throws an exception, since RemoveEffect() unsets this.Object. Object.IsPlayer() then throws a NullReferenceException. This appears to interrupt the process of removing the implant, leading to the uninstallation being incomplete and causing bugs.

Comments (3)

  1. Log in to comment