public virtual void ChangeHat(Hat newHat, float transmissionChance, PlayerClass initiator, PlayerClass self) { if (self != null && self.playerClass == Class.Detective) { return; } if (initiator != null && initiator.playerClass == Class.TrendSetter && initiator != self) initiator.score += 0.5f; // update the current hat SetCurrentHat(newHat); if(self != null && self.playerClass == Class.BaldMan) { self.BaldModeOff(); //self.baldMode = false; } // display swap animation (must be done in main thread) AnimTriggerString = "Hat"; AnimTriggerWaiting = true; // trigger local trend if (transmissionChance > 0) InitiateTrend(newHat, transmissionChance, initiator); // initiate hat cooldown HatOnCooldown = true; HatCooldownTimer.Start(); }