/// <summary> /// Activate this switch /// </summary> /// <remarks> /// Invokes Deactivate after SwitchResetTime /// </remarks> /// <param name="player">The player that activates this switch</param> /// <returns></returns> public async Task Activate(Player player) { if (State) { return; } Activator = player; State = true; GameObject.Serialize(GameObject); await OnActivated.InvokeAsync(player); var _ = Task.Run(async() => { await Task.Delay(SwitchResetTime * 1000); await Deactivate(); }); }