public void ReplaceHat(TeamHat teamHat, TeamHat newHat) { if (teamHat == null || teamSpawnsDone.ContainsKey(teamHat) || Level.current == null ) { //|| !(Level.current is GameLevel //|| Level.current is Editor // || Level.current is TeamSelect2)) //throw new Exception("DUCKZ!" + Level.current.ToString()); return; } //throw new Exception("Attempted to replace a hat! " + teamHat.team.hat.texture.textureName); if (teamHat.isServerForObject) { Level.Add(newHat); Duck d = teamHat.equippedDuck; if (d != null) { d.Equip(newHat, false); d.Fondle(newHat); TeamSelect2 lobby = Level.current as TeamSelect2; if (lobby != null) { ProfileBox2 box = lobby.GetBox(d.PlayerIndex()); box._hatSelector.hat = newHat; } } } Level.Remove(teamHat); teamSpawnsDone.Add(teamHat, null); }