commit428243f4a6Author: AsanoRema <asanorema2036@gmail.com> Date: Sat Aug 29 13:43:13 2026 +0300 Squashed commit of the following: commit68e78fa464Author: AsanoRema <asanorema2036@gmail.com> Date: Sat Aug 29 13:41:49 2026 +0300 Updated .gitignore commit9f87122a34Author: AsanoRema <asanorema2036@gmail.com> Date: Sat Aug 29 13:34:57 2026 +0300 Added Dohya commitf6a7547e84Author: AsanoRema <asanorema2036@gmail.com> Date: Fri Aug 21 17:59:13 2026 +0300 Fixed commitb98901c366Author: AsanoRema <asanorema2036@gmail.com> Date: Tue Aug 18 17:37:22 2026 +0300 Added new particle Package commitbb2f4a3b16Author: AsanoRema <asanorema2036@gmail.com> Date: Tue Aug 18 17:17:48 2026 +0300 Map mehanic ready to multiplayer commitc01ff800f6Author: AsanoRema <asanorema2036@gmail.com> Date: Tue Aug 18 16:16:19 2026 +0300 Squashed commit of the following: commit173bbb165cAuthor: henjkey <henjkey@gmail.com> Date: Fri Aug 14 18:51:23 2026 +0500 Mappp commitd559ab338aAuthor: henjkey <henjkey@gmail.com> Date: Thu Aug 13 18:42:41 2026 +0500 Map Controller Coordinates Target System Crosshair System Radar System
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using UnityEngine;
|
|
|
|
[DisallowMultipleComponent]
|
|
public sealed class CannonControlBinder : MonoBehaviour
|
|
{
|
|
[SerializeField] private NetworkCannonController cannon;
|
|
[SerializeField] private NetworkPhysicalLeverInteractable fireLever;
|
|
[SerializeField] private NetworkButtonInteractable decreaseTimerButton;
|
|
[SerializeField] private NetworkButtonInteractable increaseTimerButton;
|
|
|
|
private bool bound;
|
|
|
|
private void Update()
|
|
{
|
|
if (!bound)
|
|
TryBind();
|
|
}
|
|
|
|
private void OnDisable() => Unbind();
|
|
|
|
private void TryBind()
|
|
{
|
|
if (cannon == null || !cannon.IsSpawned || !cannon.IsServer)
|
|
return;
|
|
|
|
if (fireLever != null)
|
|
fireLever.MaximumReached += HandleFireLever;
|
|
if (decreaseTimerButton != null)
|
|
decreaseTimerButton.Pressed += HandleDecreaseTimer;
|
|
if (increaseTimerButton != null)
|
|
increaseTimerButton.Pressed += HandleIncreaseTimer;
|
|
bound = true;
|
|
}
|
|
|
|
private void Unbind()
|
|
{
|
|
if (!bound)
|
|
return;
|
|
if (fireLever != null)
|
|
fireLever.MaximumReached -= HandleFireLever;
|
|
if (decreaseTimerButton != null)
|
|
decreaseTimerButton.Pressed -= HandleDecreaseTimer;
|
|
if (increaseTimerButton != null)
|
|
increaseTimerButton.Pressed -= HandleIncreaseTimer;
|
|
bound = false;
|
|
}
|
|
|
|
private void HandleFireLever() => cannon.RequestStartCountdown();
|
|
private void HandleDecreaseTimer() => cannon.RequestDecreaseShotDelay();
|
|
private void HandleIncreaseTimer() => cannon.RequestIncreaseShotDelay();
|
|
}
|