private void OnTime_ValueChanged(object sender, CustomNumberOption.CustomNumberOptionEventArgs e) { switch (e.NumberOption.TitleText) { case "Ability On Time": { int value = int.Parse(e.NumberOption.ValueStrings[e.NumberOption.Value]); OnTime = value; var writer = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writer.Write((byte)0); writer.Write(OnTime); writer.EndMessage(); break; } case "Ability Cooldown": { int value = int.Parse(e.NumberOption.ValueStrings[e.NumberOption.Value]); UseCooldown = value; var writer = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writer.Write((byte)1); writer.Write(UseCooldown); writer.EndMessage(); break; } } }
public override void OnStart() { base.OnStart(); Task.Run(async() => { await Task.Delay(2500); MaxPlayerCount = PlayerController.AllPlayerControls.Count; Started = true; LastKilled = 0; PlayerController.LocalPlayer.ClearTasks(); #region ---------- Send Start Location ---------- if (RandomStartLocation && CheepsAmongUsMod.CheepsAmongUsMod.IsDecidingClient && MapLocations.ContainsKey(GameOptions.Map)) { List <Vector2> Locations = new List <Vector2>(MapLocations[GameOptions.Map]); System.Random rnd = new System.Random(); foreach (var player in PlayerController.AllPlayerControls) { if (Locations.Count == 0) { Locations.AddRange(MapLocations[GameOptions.Map]); // If there are not enough start locations, refill list } var location = Locations[rnd.Next(Locations.Count)]; Locations.Remove(location); if (!player.IsLocalPlayer) { var writer = RpcManager.StartRpc(BattleRoyale.BattleRoyalRpc); writer.Write((byte)BattleRoyale.CustomRpcCalls.SendStartLocation); writer.Write(player.PlayerId); writer.Write(location.x); writer.Write(location.y); writer.EndMessage(); } else { player.RpcSnapTo(location); } } } #endregion #region ---------- Open All Doors ---------- await Task.Delay(2500); foreach (var door in UnityEngine.Object.FindObjectsOfType <DeconDoor>()) { door.SetDoorway(true); } #endregion LastKilled = Functions.GetUnixTime(); }); }
private void SyncDelay() { var writer = RpcManager.StartRpc(Teleportation.TeleportationRpc); writer.Write((byte)0); writer.Write(TeleportationDelay); writer.EndMessage(); }
private void SendSwapDelay() { var writer = RpcManager.StartRpc(ColorSwap.ColorSwapRpc); writer.Write((byte)0); writer.Write(SwapDelay); writer.EndMessage(); }
private void sync() { RpcManager.SendRpc(Cleaner.CleanerRpc, new byte[] { (byte)CustomRpc.UpdateSettings, Convert.ToByte(Enabled) }); var writer = RpcManager.StartRpc(Cleaner.CleanerRpc); writer.Write((byte)CustomRpc.UpdateCooldown); writer.Write(CleanCooldown); writer.EndMessage(); }
public override void SyncSettings() { base.SyncSettings(); var writerOnTime = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writerOnTime.Write((byte)0); writerOnTime.Write(OnTime); writerOnTime.EndMessage(); var writerCooldown = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writerCooldown.Write((byte)1); writerCooldown.Write(UseCooldown); writerCooldown.EndMessage(); }
public override void SyncSettings() { base.SyncSettings(); var writerOnTime = RpcManager.StartRpc(ImpostorInvisibility.ImpostorInvisibilityRpc); writerOnTime.Write((byte)0); writerOnTime.Write(OnTime); writerOnTime.EndMessage(); var writerCooldown = RpcManager.StartRpc(ImpostorInvisibility.ImpostorInvisibilityRpc); writerCooldown.Write((byte)1); writerCooldown.Write(UseCooldown); writerCooldown.EndMessage(); }
public override void OnStart() { base.OnStart(); if (CheepsAmongUsMod.CheepsAmongUsMod.IsDecidingClient) { var writerOnTime = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writerOnTime.Write((byte)0); writerOnTime.Write(OnTime); writerOnTime.EndMessage(); var writerCooldown = RpcManager.StartRpc(QuantumTunneling.QuantumTunnelingRpc); writerCooldown.Write((byte)1); writerCooldown.Write(UseCooldown); writerCooldown.EndMessage(); } }
public override void OnStart() { base.OnStart(); if (CheepsAmongUsMod.CheepsAmongUsMod.IsDecidingClient) { var writerOnTime = RpcManager.StartRpc(ImpostorInvisibility.ImpostorInvisibilityRpc); writerOnTime.Write((byte)0); writerOnTime.Write(OnTime); writerOnTime.EndMessage(); var writerCooldown = RpcManager.StartRpc(ImpostorInvisibility.ImpostorInvisibilityRpc); writerCooldown.Write((byte)1); writerCooldown.Write(UseCooldown); writerCooldown.EndMessage(); } }
public override void OnStart() { base.OnStart(); if (CheepsAmongUsMod.CheepsAmongUsMod.IsDecidingClient) { Task.Run(async() => { await Task.Delay(1500); // Wait a bit Random random = new Random(); List <ColorType> AvailableColors = new List <ColorType>((IEnumerable <ColorType>)Enum.GetValues(typeof(ColorType))); List <ColorType> AvailableNames = new List <ColorType>(AvailableColors); foreach (var player in PlayerController.AllPlayerControls) { #region ---------- This is required, if more than 12 players are online, as the game only offers 12 colors ---------- if (AvailableColors.Count == 0 || AvailableNames.Count == 0) { AvailableColors = new List <ColorType>((IEnumerable <ColorType>)Enum.GetValues(typeof(ColorType))); AvailableNames = new List <ColorType>(AvailableColors); } #endregion #region ---------- Select random color and name ---------- var color = AvailableColors[random.Next(AvailableColors.Count)]; var name = AvailableNames[random.Next(AvailableNames.Count)]; AvailableColors.Remove(color); AvailableNames.Remove(name); #endregion #region ---------- As long as the name matches the color, change it ---------- while (color == name) { name = AvailableNames[random.Next(AvailableNames.Count)]; } #endregion if (player.IsLocalPlayer) { player.RpcSetColor(color); player.RpcSetHat(HatType.NoHat); player.RpcSetName(name.ToString()); player.RpcSetSkin(SkinType.None); player.RpcSetPet(PetType.NoPet); } else { var writer = RpcManager.StartRpc(Confusion.ConfusionRpc); writer.Write((byte)0); writer.Write(player.PlayerId); writer.Write((byte)color); writer.Write(name.ToString()); writer.EndMessage(); } } }); } }