示例#1
0
    public void CounterAttackClick()
    {
        GameObject enemy = GameObject.Find("CounterMenuCanvas").GetComponent <CounterCombatHandler>().approachingEnemy;

        if (enemy)
        {
            EnemiesAutonomousBehavior enemyBehaviour = enemy.GetComponent <EnemiesAutonomousBehavior>();
            if (!enemyBehaviour.counterAttacked)
            {
                enemyBehaviour.counterAttacked = true;
                PlayerModel.CurrentModel.defended++;
                Debug.Log("Current Model 'defended' value increased by 1.\nCurrent 'defended' is: " + PlayerModel.CurrentModel.defended);
            }
        }

        if (!GameObject.Find("MenuCanvas").GetComponent <Attack>().lockAttack)
        {
            GameObject.Find("MenuCanvas").GetComponent <Attack>().lockAttack = true;
            GameObject player = GameObject.Find("PlayerCreatures/" + PlayerInfo.selectedCreature.ToString());
            if (enemy)
            {
                int damageDealt = 5 + 5 * player.GetComponent <SpeciesAttributes>().attackUpgrade - 5 * enemy.GetComponent <EnemiesAttributes>().deffenseUpgrade - enemy.GetComponent <EnemiesAttributes>().persona.Defense;
                if (damageDealt < 0)
                {
                    damageDealt = 0;
                }
                enemy.GetComponent <EnemiesAttributes>().life -= damageDealt;

                GameObject     attackSprite   = new GameObject("AttackSprite");
                SpriteRenderer spriteRenderer = attackSprite.AddComponent <SpriteRenderer>();
                Sprite         cloudSprite    = Resources.Load <Sprite>("cloud-normal");
                spriteRenderer.sprite           = cloudSprite;
                attackSprite.transform.position = enemy.transform.position;

                GameObject     angrySprite         = new GameObject("AngrySprite");
                SpriteRenderer angrySpriteRenderer = angrySprite.AddComponent <SpriteRenderer>();
                Sprite         angrySpriteRender   = Resources.Load <Sprite>(PlayerInfo.selectedSpecies.ToString() + "-atk");
                angrySpriteRenderer.sprite = angrySpriteRender;
                Vector3 angryPosition;
                angryPosition.x = player.transform.position.x + player.GetComponent <BoxCollider>().size.x + 1;
                angryPosition.y = player.transform.position.y + player.GetComponent <BoxCollider>().size.y + 1;
                angryPosition.z = player.transform.position.z;
                angrySprite.transform.position = angryPosition;

                StartCoroutine(FlashCloud(attackSprite));
                StartCoroutine(FinishAttack(attackSprite, angrySprite));
            }
        }
    }
示例#2
0
    public void IgnoreAttackClick()
    {
        GameObject enemy = GameObject.Find("CounterMenuCanvas").GetComponent <CounterCombatHandler>().approachingEnemy;

        if (enemy)
        {
            EnemiesAutonomousBehavior enemyBehaviour = enemy.GetComponent <EnemiesAutonomousBehavior>();
            if (!enemyBehaviour.ran)
            {
                PlayerModel.CurrentModel.ran++;
                Debug.Log("Current Model 'ran' value increased by 1.\nCurrent 'ran' is: " + PlayerModel.CurrentModel.ran);
                enemyBehaviour.counterAttacked = true;
            }
        }
        CounterCombatHandler counterHandler = GameObject.Find("CounterMenuCanvas").GetComponent <CounterCombatHandler>();
        GameObject           enemyToIgnore  = counterHandler.approachingEnemy;

        counterHandler.ignoredEnemy.Add(enemyToIgnore);
        StartCoroutine(RemoveIgnoredEnemy(enemyToIgnore));
        GameObject.Find("CounterBackground").SetActive(false);
    }