示例#1
0
    public override void SelectedFunctionality()
    {
        if (LM.currentLevelState == LevelManager.LevelState.ProcessingPlayerActions)
        {
            if (LM.selectedEnemy != null && LM.selectedEnemy != GetComponent <EnemyUnit>())
            {
                LM.HideEnemyHover(LM.selectedEnemy);
                //Llamo a LevelManager para desactivar hover
                if (LM.selectedCharacter != null)
                {
                    LM.selectedCharacter.HideDamageIcons(this);
                }
                LM.HideHover(LM.selectedEnemy);
                LM.selectedEnemy.HealthBarOn_Off(false);
                //LM.UIM.HideCharacterInfo("");
                Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
            }

            else
            {
                LM.DeSelectUnit();
                LM.selectedEnemy = GetComponent <EnemyUnit>();

                //Activo la barra de vida
                HealthBarOn_Off(true);

                //Cambio el color del personaje
                SelectedColor();
            }
        }
    }
示例#2
0
    public override void Die()
    {
        //En caso de que sea el ultimo nivel
        if (dragReference != null)
        {
            dragReference.RemoveCrystal(this);
        }

        particleCrystalActive.SetActive(false);

        //BASE MODIFICADA DEL DIE ENEMIGO
        Debug.Log("Soy " + gameObject.name + " y he muerto");
        //Animación, sonido y partículas de muerte
        SoundManager.Instance.PlaySound(AppSounds.EN_DEATH);
        Instantiate(deathParticle, gameObject.transform.position, deathParticle.transform.rotation);

        //Cambios en UI
        LM.HideHover(this);
        HealthBarOn_Off(false);
        Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);

        //Cambios en la lógica para indicar que ha muerto
        myCurrentTile.unitOnTile = null;
        myCurrentTile.WarnInmediateNeighbours();

        //Hago que visualmente desaparezca aunque no lo destryuo todavía.
        unitModel.SetActive(false);
        GetComponent <Collider>().enabled = false;

        //Aviso de que el enemigo está muerto
        isDead = true;

        //Estas dos llamadas tienen que ir despues del bool de isdead = true
        LM.UIM.SetEnemyOrder();


        if (dragReference != null && dragReference.currentHealth == dragReference.maxHealth / 2)
        {
            dragReference.ChangePhase();
        }
    }
示例#3
0
    public override void OnHoverExitFunctionality()
    {
        if (LM.selectedEnemy == null)
        {
            if (LM.selectedCharacter != null && !LM.selectedCharacter.currentUnitsAvailableToAttack.Contains(this.GetComponent <UnitBase>()))
            {
                ResetColor();
                LM.HideHover(this);
                HealthBarOn_Off(false);
            }
        }

        else
        {
            if (LM.selectedEnemy != this)
            {
                LM.HideHover(this);
                HealthBarOn_Off(false);
            }

            LM.selectedCharacter.HideDamageIcons(this);
            myCurrentTile.ColorDesAttack();
        }

        Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);

        if (LM.selectedCharacter != null)
        {
            //LM.UIM.ShowUnitInfo(LM.selectedCharacter.unitGeneralInfo, LM.selectedCharacter);
        }

        else
        {
            ResetColor();
            LM.HideHover(this);
            HealthBarOn_Off(false);
        }
    }