Inheritance: MonoBehaviour
    // Use this for initialization
    void Start () {
        player = GameObject.Find("Player").GetComponent<IBattleAgent>();
        enemyPool = GameObject.FindGameObjectsWithTag("Enemy");
        foreach(GameObject go in enemyPool)
        {
            go.SetActive(false);
        }
        //currentEnemy = GameObject.FindWithTag("Enemy").GetComponent<IBattleAgent>();
        currentEnemy = enemyPool[UnityEngine.Random.Range(0, enemyPool.Length)].GetComponent<IBattleAgent>();
        currentEnemy.SetActive(true);

        terrainThingy = GameObject.FindObjectOfType<TerrainScroller>();

        player.turnEndedEvent += OnPlayerTurnEnded;
        player.attackEvent += OnPlayerAttack;
        player.deadEvent += OnPlayerDead;

        terrainThingy.enabled = false;
        enemyHealthBar = FindObjectOfType<EnemyHealthBar>();
        //currentEnemy.turnEndedEvent += OnEnemyTurnEnded;
       // currentEnemy.attackEvent += OnEnemyAttack;
       // currentEnemy.deadEvent += OnEnemyDead;

        // Player starts attacking, can be changed tho
        //player.StartTurn();
	}
示例#2
0
 private void Awake()
 {
     Target = FindObjectOfType <characterController>();
     enemy  = FindObjectOfType <EnemyHealthBar>();
 }
示例#3
0
 // Use this for initialization
 void Start()
 {
     playerCombat = PlayerController.instance.GetComponent <PlayerCombat>();
     myStats      = this.GetComponent <CharacterStats>();
     healthBar    = EnemyHealthBar.instance;
 }
示例#4
0
 public static void Initialize()
 {
     canvas    = GameObject.FindGameObjectWithTag("Canvas");
     healthBar = Resources.Load <EnemyHealthBar>("Prefabs/UI/Damage Popup/Enemy Health");
 }
示例#5
0
 void Start()
 {
     bar = StaticUIElements.instance.enemyHealthBar;
 }
示例#6
0
    //======================== OVERRIDES & INTERFACES =========================================

    public override HitResult Hit(HitData HitInfo)
    {
        HitResult result = HitResult.Default();

        if (HitInfo.Damage > 0 && IsAlive)
        {
            //Si el enemigo no me había detectado.
            if (!_targetDetected)
            {
                _targetDetected = true;
            }

            if (_blocking && !Disarmed) //Si estoy bloqueando...
            {
                print("Estoy bloqueando");

                if (sight.angleToTarget < 80 && !HitInfo.BreakDefence)
                {
                    result.HitBlocked = true;
                    onBlockedHit();

                    if (_canParry)
                    {
                        _sm.Feed(ShieldEnemyStates.parry);
                    }
                    else
                    {
                        _sm.Feed(ShieldEnemyStates.think);
                    }
                }
                else if (sight.angleToTarget > 80 || HitInfo.BreakDefence)
                {
                    _sm.Feed(ShieldEnemyStates.vulnerable);
                }
            }
            else //Si no estoy bloqueando...
            {
                anims.SetTrigger("getDamage");

                onGetHit();

                result.HitConnected = true;

                Health -= HitInfo.Damage;

                var particle = Instantiate(OnHitParticle, transform.position, Quaternion.identity);
                Destroy(particle, 3f);
                EnemyHealthBar.FadeIn();

                //Si mi vida es menor a 0...
                if (!IsAlive)
                {
                    result.TargetEliminated = true;    // Aviso que estoy muerto.
                    result.bloodEarned      = BloodForKill;

                    _sm.Feed(ShieldEnemyStates.dead);  // Paso al estado de muerte.
                }
                else
                {
                    _sm.Feed(ShieldEnemyStates.think); //Por default paso a think.
                }
            }
        }
        return(result);
    }
示例#7
0
 public static void UpdateEnemyHealthLevel(int level)
 {
     EnemyHealthBar.Percent = level;
     EnemyHealthBar.draw();
 }
示例#8
0
 private void OnEnable()
 {
     healthBar = GameObject.Find("Enemy Health Bar").GetComponent <EnemyHealthBar>();
     WPBar     = FindObjectOfType <EnemyWillPowerBar>();
 }
 private void Awake()
 {
     rg    = GetComponent <Rigidbody2D>();
     enemy = FindObjectOfType <EnemyHealthBar>();
 }
示例#10
0
    void DecideEnemyAction()
    {
        if (EnemyHealthBar.GetComponent <Image>().fillAmount > .5)
        {
            if (Random.Range(0, 100) > 75)
            {
                EnemyDecidedAttack = 1;
                _EnemyParent.GetComponent <Animator>().runtimeAnimatorController = StartingEnemy.DefenseAbility.Animator;
                CombatDialogue.GetComponent <TextMeshProUGUI>().text             = StartingEnemy.DefenseAbility.CombatText;
                EnemyDefendDefense = 0.1f;
                if (StartingEnemy.DefenseAbility.Healing > 0)
                {
                    _EnemyParent.SendMessage("Heal", StartingEnemy.DefenseAbility.Healing);
                }
                PlayerTurn = true;
                State      = States.Idle;
                return;
            }
            else
            {
                EnemyDecidedAttack = 0;
                _EnemyParent.GetComponent <Animator>().runtimeAnimatorController = StartingEnemy.BasicAttack.Animator;
                CombatDialogue.GetComponent <TextMeshProUGUI>().text             = StartingEnemy.BasicAttack.CombatText;
                State      = States.Idle;
                PlayerTurn = true;
                return;
            }
        }

        if (EnemyHealthBar.GetComponent <Image>().fillAmount < .5)
        {
            if (EnemySignatureCharges > 0)
            {
                EnemyDecidedAttack = 3;
                EnemySignatureCharges--;
                _EnemyParent.GetComponent <Animator>().runtimeAnimatorController = StartingEnemy.SignatureAbility.Animator;
                CombatDialogue.GetComponent <TextMeshProUGUI>().text             = StartingEnemy.SignatureAbility.CombatText;
                if (StartingEnemy.SignatureAbility.Healing > 0)
                {
                    _EnemyParent.SendMessage("Heal", StartingEnemy.SignatureAbility.Healing);
                }
                PlayerTurn = true;
                State      = States.Idle;
                return;
            }
            if (EnemySignatureCharges <= 0)
            {
                if (Random.Range(0, 100) > 70)
                {
                    EnemyDecidedAttack = 2;
                    _EnemyParent.GetComponent <Animator>().runtimeAnimatorController = StartingEnemy.UtilityAbility.Animator;
                    CombatDialogue.GetComponent <TextMeshProUGUI>().text             = StartingEnemy.UtilityAbility.CombatText;
                    PlayerTurn = true;
                    State      = States.Idle;
                    return;
                }
                else
                {
                    EnemyDecidedAttack = 0;
                    _EnemyParent.GetComponent <Animator>().runtimeAnimatorController = StartingEnemy.BasicAttack.Animator;
                    CombatDialogue.GetComponent <TextMeshProUGUI>().text             = StartingEnemy.BasicAttack.CombatText;
                    State      = States.Idle;
                    PlayerTurn = true;
                    return;
                }
            }
        }
    }
示例#11
0
 void Awake()
 {
     instance = this;
 }