예제 #1
0
    private void EndLevel()
    {
        Time.timeScale      = 0.05f;
        Time.fixedDeltaTime = Time.timeScale / 0.02f;

        audioSource.clip = null;

        // Slow motion action
        slowMotionEndLevelAction = () => {
            Time.timeScale      = Mathf.Clamp(Time.timeScale + (1f / 3f) * Time.unscaledDeltaTime, 0f, 1f);
            Time.fixedDeltaTime = Time.unscaledDeltaTime;
        };

        // Victory pop up
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(3f, () => {
            slowMotionEndLevelAction = null;
            var spawnPosition        = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2));
            spawnPosition.z          = 0f;
            // Victory pop up
            pfWinPopup = Instantiate(pfWinPopup, spawnPosition, Quaternion.identity);
            pfWinPopup.transform.DOScale(0f, 0f);
            pfWinPopup.transform.DOScale(1f, 0.5f);
        });

        // Open result panel
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(6f, () => {
            uiHandler.showResult(true);
        });
    }
예제 #2
0
    // Event trigger when hit something may be wall or obstacles or entity,....
    protected virtual void OnHitEvent(Collider2D collision)
    {
        if (bulletStat.exceptionTag.Contains(collision.tag))
        {
            return;
        }
        var entity = collision.GetComponent <Entity>();

        entity?.OnTakeDamage(this);
        isCrit = false;
        if (bulletStat.pfExplosion)
        {
            if (!selfExplosion)
            {
                selfExplosion = Instantiate(bulletStat.pfExplosion.gameObject);
            }
            selfExplosion.transform.position = transform.position;
            selfExplosion.transform.rotation = transform.rotation;
            selfExplosion.SetActive(true);
            TimeManipulator.GetInstance().InvokeActionAfterSeconds(1f, () => selfExplosion.SetActive(false));
            ObjectPool.ReturnObject(bulletStat.bulletCode, gameObject);
            gameObject.SetActive(false);
        }
        else
        {
            ObjectPool.ReturnObject(bulletStat.bulletCode, gameObject);
            gameObject.SetActive(false);
        }
    }
예제 #3
0
    // Event trigger when hit something may be wall or obstacles or entity,....
    protected override void OnHitEvent(Collider2D collision)
    {
        if (bulletStat.exceptionTag.Contains(collision.tag))
        {
            return;
        }
        var collisionObjects = Physics2D.OverlapCircleAll(transform.position, radiusDamageArea);

        foreach (var item in collisionObjects)
        {
            if (bulletStat.exceptionTag.Contains(item.tag))
            {
                continue;
            }
            item.GetComponent <Entity>()?.OnTakeDamage(this);
        }
        if (!selfExplosion)
        {
            selfExplosion = Instantiate(bulletStat.pfExplosion.gameObject);
        }
        selfExplosion.transform.position = transform.position;
        selfExplosion.transform.rotation = transform.rotation;
        selfExplosion.SetActive(true);
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.5f, () => selfExplosion.SetActive(false));
        ObjectPool.ReturnObject(bulletStat.bulletCode, gameObject);
        gameObject.SetActive(false);
    }
예제 #4
0
    public virtual Enemy Instantiate(Vector3 spawnPosition)
    {
        if (spawnSign == null)
        {
            return(Instantiate(gameObject, spawnPosition, Quaternion.identity)?.GetComponent <Enemy>());
        }
        var spawnSignTmp  = Instantiate(spawnSign, spawnPosition, spawnSign.transform.rotation);
        var enemySpawnTmp = Instantiate(gameObject, spawnPosition, Quaternion.identity)?.GetComponent <Enemy>();

        enemySpawnTmp.GetComponent <Collider2D>().enabled = false;
        if (enemySpawnTmp.animator != null)
        {
            enemySpawnTmp.animator.enabled = false;
        }
        enemySpawnTmp.enabled = false;
        enemySpawnTmp.transform.DOMoveY(spawnPosition.y + 1f, spawnLifeTime);
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(spawnLifeTime, () => {
            Destroy(spawnSignTmp);
            enemySpawnTmp.enabled = true;
            if (enemySpawnTmp.animator != null)
            {
                enemySpawnTmp.animator.enabled = true;
            }
            enemySpawnTmp.GetComponent <Collider2D>().enabled = true;
        });
        return(enemySpawnTmp);
    }
예제 #5
0
 private void LoseGame()
 {
     // Open result panel
     TimeManipulator.GetInstance().InvokeActionAfterSeconds(2f, () => {
         uiHandler.showResult(false);
     });
 }
 public void RealTimeUIToggle()
 {
     TM             = OrbitManager.GetComponent <TimeManipulator>();
     TM.UseRealTime = RealTimeToggle.isOn;
     TM.JulianDate  = OM.RawJulianTime[(int)JulianDateSlider.value];
     JulianDateSlider.interactable = !TM.UseRealTime;
 }
예제 #7
0
    /// <summary>
    /// Event trigger when treasure open and item drop out
    /// </summary>
    public virtual void DropOut()
    {
        isOnAction = true;
        Vector3 velocity = new Vector3(Random.Range(-2, 2), Random.Range(-2, 2));

        if (dropDownItem == null)
        {
            dropDownItem = () =>
            {
                // apply speed
                transform.position += velocity * Time.deltaTime;
                // find speed vector length:
                var len = Mathf.Sqrt(velocity.x * velocity.x + velocity.y * velocity.y);
                if (len > 0)
                {
                    // find the multiplier (new speed divided by current):
                    var mul = Mathf.Max(len - friction, 0) / len;
                    // apply the multiplier:
                    velocity *= mul;
                }
            };
        }
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(2f, () =>
        {
            isOnAction   = false;
            dropDownItem = null;
        });
    }
예제 #8
0
 public override void Consume()
 {
     TimeManipulator.GetInstance().InvokeRepeatAction(0.25f, 5, () =>
     {
         ActionEventHandler.Invoke(PlayerCombatEvent.HealEvent, new object[] { healthAmount / 5 }, null);
     }, null);
     Destroy(gameObject);
 }
 public void UpdateOrbiterPosition()
 {
     TM = OrbitManager.GetComponent <TimeManipulator>();
     OM = OrbitManager.GetComponent <OrbitManagement>();
     //TM.JulianDateSliderValue = (int)JulianDateSlider.value;
     TM.JulianDate = OM.RawJulianTime[(int)JulianDateSlider.value];
     TM.UpdateOrbiterPosition();
 }
예제 #10
0
    // currently invoked by Update() if numbers crunched
    // *** two other cases!
    // advances JulianDate by timestep (if toggled)
    public void OrbitUpdate()
    {
        if (GlobalRealTimeToggle.isOn) //using realtime
        {
            //Debug.Log("Updating Orbit with Real Time Values");
            foreach (GameObject OrbitManager in OrbitManagers)
            {
                TimeManipulator TM = OrbitManager.GetComponent <TimeManipulator>();
                TM.UseRealTime = true;
                TM.UpdateOrbiterPosition();
            }
        }
        if (!GlobalRealTimeToggle.isOn) //not using realtime
        {
            if (UseTimeStepToggle.isOn) //using Timestep
            {
                // set NewJulian date to current JulianDate + scaled timestep increment
                NewJulianDate = JulianDate + (timeSteps[(int)TimeStepSlider.value] / (1 / updateFrequency));

                // update JulianDateSlider
                // global flag fudged in so that GlobalJulianTime doesn't set NewJulianDate or play sounds
                timeStepMode = true;
                GlobalJulianDateSlider.value = IndexFromJD(AllTimes.ToArray(), NewJulianDate);
                timeStepMode = false;

                // Distribute JulianDate here
                if (JulianDate != NewJulianDate)
                {
                    //Debug.Log("Updating Orbit with Dataset Values + timestep");
                    JulianDate = NewJulianDate;
                    foreach (GameObject OrbitManager in OrbitManagers)
                    {
                        TimeManipulator TM = OrbitManager.GetComponent <TimeManipulator>();
                        TM.UseRealTime = false;
                        TM.JulianDate  = JulianDate;
                        TM.UpdateOrbiterPosition();
                    }
                }
            }
            if (!UseTimeStepToggle.isOn) //not using timestep or realtime
            // slider used instead
            {
                NewJulianDate = AllTimes[(int)GlobalJulianDateSlider.value];
                if (JulianDate != NewJulianDate)
                {
                    //Debug.Log("Updating Orbit with Dataset Values");
                    JulianDate = NewJulianDate;
                    foreach (GameObject OrbitManager in OrbitManagers)
                    {
                        TimeManipulator TM = OrbitManager.GetComponent <TimeManipulator>();
                        TM.UseRealTime = false;
                        TM.JulianDate  = JulianDate;
                        TM.UpdateOrbiterPosition();
                    }
                }
            }
        }
    }
예제 #11
0
    /// <summary>
    /// Attack diagonal shape, boss call randomly in phase 1.
    /// </summary>

    private void DiagonalAttack()
    {
        isOnAction = true;
        TimeManipulator.GetInstance().InvokeRepeatAction(0.3f, 6, () => {
            Shoot((Vector2.right + Vector2.up).normalized, pfSimpleBullet);
            Shoot((Vector2.right - Vector2.up).normalized, pfSimpleBullet);
            Shoot((-Vector2.right + Vector2.up).normalized, pfSimpleBullet);
            Shoot((-Vector2.right - Vector2.up).normalized, pfSimpleBullet);
        }, () => TimeManipulator.GetInstance().InvokeActionAfterSeconds(phaseFireRate[0], () => isOnAction = false));
    }
예제 #12
0
 // Use this for initialization
 void Start()
 {
     myAnim = GetComponent <Animation>();
     myGun  = GetComponentInChildren <BulletGenerator>();
     myClip = myAnim["StandAndShoot"];
     if (myAnim["GotShot"])
     {
         dieClip = myAnim["GotShot"];
     }
     timeMan = GameObject.Find("TimeController").GetComponent <TimeManipulator>();
 }
 public void Trigger(bool isCrit = false)
 {
     this.isCrit    = isCrit;
     aiPath.canMove = true;
     isActive       = true;
     TimeManipulator.GetInstance().InvokeActionAfterSeconds(lifetime, () => {
         isActive       = false;
         aiPath.canMove = false;
         Setup(targetDirection, isCrit);
     });
 }
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
예제 #15
0
    // Use this for initialization
    void Start()
    {
        if (GameObject.Find("TimeController"))
        {
            timeMan = GameObject.Find("TimeController").GetComponent <TimeManipulator>();
        }

        init_position = transform.position;

        //timedelta += offset;
    }
예제 #16
0
 public void Trigger(bool isCrit = false)
 {
     this.isCrit         = isCrit;
     transform.position += offset;
     isActive            = true;
     TimeManipulator.GetInstance().InvokeActionAfterSeconds(1.3f, () => {
         ObjectPool.ReturnObject(bulletStat.bulletCode, gameObject);
         isActive = false;
         gameObject.SetActive(false);
     });
 }
예제 #17
0
 public void ForcedPositionUpdate()
 {
     foreach (GameObject OrbitManager in OrbitManagers)
     {
         // null check prevents crash when JSON browser opened
         if (OrbitManager != null)
         {
             TimeManipulator TM = OrbitManager.GetComponent <TimeManipulator>();
             TM.UpdateOrbiterPosition();
         }
     }
 }
 private void SwapBulletEvent(object[] param)
 {
     if (param == null)
     {
         return;
     }
     currentBulletItem.DOFade(0f, 0.2f);
     TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.2f, () => {
         currentBulletItem.sprite = bulletItemSprite[(int)param[0]];
         currentBulletItem.DOFade(1f, 0.2f);
     });
 }
예제 #19
0
    private void PrepareDungeon()
    {
        var spawnPosition = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2));

        spawnPosition.z   = 0f;
        pfGoPopup         = Instantiate(pfGoPopup, spawnPosition, Quaternion.identity);
        pfGoPopupParticle = Instantiate(pfGoPopupParticle, spawnPosition, Quaternion.identity);

        AstarPath.active.Scan(AstarPath.active.data.gridGraph);
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(2f, () =>
        {
            ActionEventHandler.Invoke(GameDungeonEvent.StartDungeon);
        });
    }
예제 #20
0
    private void Start()
    {
        LabelText.text = OrbitManager.gameObject.name;
        OM             = OrbitManager.GetComponent <OrbitManagement>();
        TM             = OrbitManager.GetComponent <TimeManipulator>();
        JsonManager    = GameObject.FindGameObjectWithTag("JsonManager");
        HeightAdjust HA = JsonManager.GetComponent <HeightAdjust>();

        Pedestal            = HA.Pedestal;
        MainSatelliteCanvas = HA.MainSatelliteCanvas;
        MainMenuCanvas      = HA.MainMenuCanvas;
        AudioManager        = GameObject.FindGameObjectWithTag("AudioManager");
        AM = AudioManager.GetComponent <MyAudioManager>();
    }
예제 #21
0
 public void Realtimetoggled()
 {
     if (!GlobalRealTimeToggle.isOn)
     {
         NewJulianDate = AllTimes[(int)GlobalJulianDateSlider.value];
         JulianDate    = NewJulianDate;
         foreach (GameObject OrbitManager in OrbitManagers)
         {
             TimeManipulator TM = OrbitManager.GetComponent <TimeManipulator>();
             TM.UseRealTime = false;
             TM.JulianDate  = JulianDate;
             TM.UpdateOrbiterPosition();
         }
     }
 }
예제 #22
0
 // Use this for initialization
 void Start()
 {
     gunAnimation = this.GetComponentInChildren <Animation>();
     //gun_shot = GetComponent<AudioSource>();
     timeMan  = GameObject.Find("TimeController").GetComponent <TimeManipulator>();
     gunState = gunAnimation["Gunfire"];
     if (name.Contains("Left"))
     {
         current_controller = OVRInput.Controller.LTouch;
     }
     else
     {
         current_controller = OVRInput.Controller.RTouch;
     }
 }
예제 #23
0
    /// <summary>
    /// Attack circle shape, boss call randomly in phase 1.
    /// </summary>

    private void CircleWaveAttack()
    {
        isOnAction = true;
        TimeManipulator.GetInstance().InvokeRepeatAction(0.3f, 6, () => {
            var targetPosition = aiDestinationSetter.target.position;
            var shootDirection = (targetPosition - (transform.position + offset)).normalized;
            Shoot(shootDirection, pfSimpleBullet);
            for (int i = 1; i <= bulletPerClip / 2; i++)
            {
                shootDirection = CalculateDirectionFromAngle(transform.position, targetPosition, i * bulletAngle);
                Shoot(shootDirection, pfSimpleBullet);
                shootDirection = CalculateDirectionFromAngle(transform.position, targetPosition, -i * bulletAngle);
                Shoot(shootDirection, pfSimpleBullet);
            }
        }, () => TimeManipulator.GetInstance().InvokeActionAfterSeconds(phaseFireRate[0], () => isOnAction = false));
    }
        public void OnPauseClick()
        {
            if (!pausePanel.activeSelf)
            {
                pausePanel.SetActive(true);

                dim.DOFade(1f, 0.5f).SetEase(Ease.OutCubic);
                textPause.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.2f);
                TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.25f, () =>
                {
                    exitButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack);
                    resumeButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack).SetDelay(0.15f);
                    restartButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack).SetDelay(0.3f);

                    exitText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.15f);
                    resumeText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.3f);
                    restartText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.45f);

                    TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.5f, () => {
                        Time.timeScale      = 0f;
                        Time.fixedDeltaTime = 0f;
                    });
                });
            }
            else
            {
                Time.timeScale      = 1f;
                Time.fixedDeltaTime = Time.unscaledDeltaTime;

                dim.DOFade(0f, 0.5f).SetEase(Ease.OutCubic);
                textPause.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.2f);
                TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.25f, () =>
                {
                    restartButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack);
                    resumeButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack).SetDelay(0.15f);
                    exitButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack).SetDelay(0.3f);

                    restartText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.15f);
                    resumeText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.3f);
                    exitText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.45f);

                    TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.5f, () => {
                        pausePanel.SetActive(false);
                    });
                });
            }
        }
 private void BecomeIntangible(object[] param)
 {
     if (param == null)
     {
         return;
     }
     Debug.Log("Invoke visible");
     isIntangible = true;
     animator.SetBool("isInvisible", true);
     TimeManipulator.GetInstance().InvokeActionAfterSeconds((float)param[0], () => {
         isIntangible = false;
         animator.SetBool("isInvisible", false);
         ActionEventHandler.Invoke(SkillCastEvent.UIChangeEvent, param, null);
         TimeManipulator.GetInstance().InvokeActionAfterSeconds((float)param[1], () => isOnCastSkill[(int)param[2]] = false);
     });
     // Play effect here
 }
예제 #26
0
    public override Enemy Instantiate(Vector3 spawnPosition)
    {
        if (spawnSign == null)
        {
            return(Instantiate(gameObject, spawnPosition, Quaternion.identity)?.GetComponent <Enemy>());
        }
        Instantiate(spawnSign, spawnPosition + offset + Vector3.right * 0.25f - Vector3.up * 0.25f, spawnSign.transform.rotation);
        var enemySpawnTmp = Instantiate(gameObject, spawnPosition, Quaternion.identity)?.GetComponent <Enemy>();

        enemySpawnTmp.GetComponent <Animator>().enabled = false;
        enemySpawnTmp.enabled = false;
        enemySpawnTmp.transform.DOMoveY(enemySpawnTmp.transform.position.y + 1f, spawnLifeTime);
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(spawnLifeTime, () => {
            enemySpawnTmp.enabled = true;
            enemySpawnTmp.GetComponent <Animator>().enabled = true;
        });
        return(enemySpawnTmp);
    }
        private void OnPauseClick()
        {
            if (!pausePanel.activeSelf)
            {
                pausePanel.SetActive(true);
                skillPanel.SetActive(false);
                playerEXPPanel.SetActive(false);
                playerRubyPanel.SetActive(false);

                dim.DOFade(1f, 0.5f).SetEase(Ease.OutCubic);
                textPause.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.2f);
                TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.25f, () =>
                {
                    exitButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack);
                    resumeButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack).SetDelay(0.15f);
                    settingButton.transform.DOScale(Vector3.one, 0.25f).SetEase(Ease.OutBack).SetDelay(0.3f);

                    exitText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.15f);
                    resumeText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.3f);
                    restartText.DOFade(1f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.45f);
                });
            }
            else
            {
                playerEXPPanel.SetActive(true);
                playerRubyPanel.SetActive(true);

                dim.DOFade(0f, 0.5f).SetEase(Ease.OutCubic);
                textPause.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.2f);
                TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.25f, () =>
                {
                    settingButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack);
                    resumeButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack).SetDelay(0.15f);
                    exitButton.transform.DOScale(Vector3.zero, 0.25f).SetEase(Ease.OutBack).SetDelay(0.3f);

                    restartText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.15f);
                    resumeText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.3f);
                    exitText.DOFade(0f, 0.2f).SetEase(Ease.OutCubic).SetDelay(0.45f);

                    TimeManipulator.GetInstance().InvokeActionAfterSeconds(0.5f, () => pausePanel.SetActive(false));
                });
            }
        }
 // Update is called once per frame
 private void Update()
 {
     HandleAiming();
     weapon?.CatchFireEvent();
     if (Input.GetKeyDown(KeyCode.Q))
     {
         SwapBullet();
     }
     if (Input.GetKeyDown(KeyCode.E) && !isOnCastSkill[0])
     {
         isOnCastSkill[0] = true;
         listSkills[0]?.Cast(0);
         TimeManipulator.GetInstance().InvokeActionAfterSeconds(listSkills[0].cooldowns, () => isOnCastSkill[0] = false);
     }
     if (Input.GetKeyDown(KeyCode.R) && !isOnCastSkill[1])
     {
         isOnCastSkill[1] = true;
         listSkills[1]?.Cast(1);
     }
 }
예제 #29
0
    public void Trigger(bool isCrit = false)
    {
        this.isCrit = isCrit;
        explosionAnimator?.Play("explosion");
        Vector2 position         = transform.position + Vector3.right * offsetX + Vector3.up * offsetY;
        var     collisionObjects = Physics2D.OverlapCircleAll(position, radiusDamageArea);

        foreach (var item in collisionObjects)
        {
            if (bulletStat.exceptionTag.Contains(item.tag))
            {
                continue;
            }
            item.GetComponent <Entity>()?.OnTakeDamage(this);
        }
        TimeManipulator.GetInstance().InvokeActionAfterSeconds(1.2f, () => {
            ObjectPool.ReturnObject(bulletStat.bulletCode, gameObject);
            gameObject.SetActive(false);
        });
    }
예제 #30
0
    /// <summary>
    /// Spawn minions method, boss call randomly in phase 2.
    /// </summary>

    private void SpawnMinions()
    {
        isOnAction = true;
        TimeManipulator.GetInstance().InvokeActionWithPromise(phaseFireRate[nextAttackPhase] + spawnSignLiveTime, () =>
        {
            // Random number of bomb
            int minionCount    = Random.Range(1, 6);
            var spawnPositions = GenerateSpawnPosition(minionCount, minSpawnDistance);
            foreach (var item in spawnPositions)
            {
                var spawnPositionSign = ObjectPool.GetObject(spawnPositionSignCode);
                spawnPositionSign.transform.position = item;
                spawnPositionSign.SetActive(true);
                TimeManipulator.GetInstance().InvokeActionAfterSeconds(spawnSignLiveTime, () => {
                    spawnPositionSign.SetActive(false);
                    Instantiate(listMinionSpawn[Random.Range(0, listMinionSpawn.Count)], item, Quaternion.identity);
                });
            }
        }, () => isOnAction = false);
    }