public void AdvanceLynchState(string targetName) { lock (this.lockObj) { LynchState oldState = this.UnsafeGetLynchState(targetName); LynchState newState; switch (oldState) { case LynchState.Lynchable: this.UnsafeRemoveLynchVotesFor(targetName); newState = LynchState.Protected; break; case LynchState.Protected: newState = LynchState.Vulnerable; break; default: newState = LynchState.Lynchable; break; } this.UnsafeSetLynchState(targetName, newState); } }
private LynchState UnsafeSetLynchState(string targetName, LynchState newState) { return(this.playerLynchStates[targetName] = newState); }