Example #1
0
        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;
            }
        }
Example #3
0
 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;
        }
Example #5
0
        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");
        }