Пример #1
0
    void DamageDoneOnHero(BattleHero hero, int damage)
    {
        AttackEffect attackEffect = m_AttackEffecPool.GetItem();

        attackEffect.transform.position = hero.transform.position;
        attackEffect.RegulateSize(hero.GetComponent <RectTransform>());
        attackEffect.gameObject.SetActive(true);

        StringBuilder builder = new StringBuilder(AttributeChange.HEALTH_DECREASE_TEXT);

        builder.Replace("{DECREASE}", damage.ToString());

        AttributeChange attributeChange = AttribueChangeEffectPool.GetItem();

        attributeChange.PrepareForActivation(hero.transform, false, builder.ToString());
        attributeChange.gameObject.SetActive(true);

        if (!hero.IsEnemy)
        {
            CurrentFightSettings.selectedAllyHeroIndex = FindHeroIndex(m_PlayerHeroes, hero);
        }

        EventMessenger.NotifyEvent(SaveEvents.SAVE_GAME_STATE);

        bool isDead = hero.TakeDamage(damage);
    }