internal static void TeleportPlayer(QuantumTeleporterController fromUnit, QuantumTeleporterController toUnit, QTTeleportTypes type) { if (_initialized) { _fromUnit = fromUnit; _toUnit = toUnit; if (!fromUnit.PowerManager.HasEnoughPower(type)) { QuickLogger.Message(QuantumTeleporterBuildable.BaseNotEnoughPower(), true); return; } if (!_toUnit.PowerManager.HasEnoughPower(type)) { QuickLogger.Message(QuantumTeleporterBuildable.ToBaseNotEnoughPower(), true); return; } InitializeTeleport(_toUnit, type); InitializeTeleport(_fromUnit, type); Player.main.playerController.SetEnabled(false); var target = _toUnit.GetTarget(); if (target != null) { _target = target; SetIsTeleporting(true); } } }
public override void OnButtonClick(string btnName, object tag) { switch (btnName) { case "ColorPageBTN": _mono.AnimationManager.SetIntHash(_page, 2); break; case "HomeBTN": _mono.AnimationManager.SetIntHash(_page, 1); break; case "ColorItem": _mono.ColorManager.ChangeColor((Color)tag); break; case "Unit": _toUnit = (QuantumTeleporterController)tag; var ttype = QTTeleportTypes.Global; if (SelectedTab == QTTabs.Intra) { ttype = QTTeleportTypes.Intra; } _tType = ttype; if (_toUnit.PowerManager.HasEnoughPower(ttype)) { _destination.text = $"[{_toUnit.GetName()}]"; _mono.AnimationManager.SetIntHash(_page, 3); } break; case "RenameBTN": _mono.NameController.Show(); break; case "GlobalTeleBtn": SetTab(QTTabs.Global); break; case "IntraTeleBtn": SetTab(QTTabs.Intra); break; case "ConfirmYesBtn": ConfirmTeleport(); break; case "ConfirmNoBtn": _mono.AnimationManager.SetIntHash(_page, 1); break; } }
private static void InitializeTeleport(QuantumTeleporterController mono, QTTeleportTypes type) { mono.AudioManager.PlayAudio(); mono.AnimationManager.SetBoolHash(_animationRunning, true); mono.AnimationManager.SetBoolHash(_isPanelVisible, false); mono.DisplayManager.ShowTeleportPage(true); mono.QTDoorManager.CloseDoor(); mono.PowerManager.TakePower(type); SetIsTeleporting(true); }
internal void Initialize(QuantumTeleporterController mono, GameObject textField, GameObject statusField, QTDisplayManager display, float maxInteractionRange) { _mono = mono; _display = display; if (statusField != null) { _statusField = statusField.GetComponentInChildren <Text>(); } if (textField != null) { _textField = textField.GetComponentInChildren <Text>(); } InvokeRepeating(nameof(UpdateStatus), 1, 1); mono.NameController.OnLabelChanged += OnLabelChanged; _maxInteractionRange = maxInteractionRange; }
private static void ResetTeleport(QuantumTeleporterController mono, bool openDoor = false) { try { QuickLogger.Debug($"// ======= Reset Teleport {mono.NameController.GetCurrentName()} ====== //"); mono.AnimationManager.SetBoolHash(_animationRunning, false); mono.AudioManager.StopAudio(); mono.AnimationManager.SetBoolHash(_isPanelVisible, true); mono.DisplayManager.RefreshTabs(); if (openDoor) { mono.QTDoorManager.OpenDoor(); } QuickLogger.Debug($"// ======= Reset Teleport {mono.NameController.GetCurrentName()} ====== //"); } catch (Exception e) { QuickLogger.Error <TeleporterManager>($"{e.Message} Stack: {e.StackTrace}"); } }
internal void Setup(QuantumTeleporterController mono) { _mono = mono; _page = Animator.StringToHash("Page"); _colorPage = mono.ColorManager; _teleportGrid = gameObject.AddComponent <GridHelper>(); if (!FindAllComponents()) { QuickLogger.Error <QTDisplayManager>($"Cant Find All Components"); return; } PowerOnDisplay(); SetTab(QTTabs.Intra); BaseManager.OnGlobalChanged += OnGlobalChanged; _initialized = true; }
internal void Initalize(QuantumTeleporterController mono) { _mono = mono; _doorState = Animator.StringToHash("DoorState"); }