Esempio n. 1
0
    public IEnumerator DissolveBug(RPSEnemy e)
    {
        Renderer rend;

        if (attackElement == Attacks.AtkDefElement.Rock)
        {
            rend = e.GetComponent <Renderer>();
        }
        else
        {
            rend = e.transform.Find("Shape").GetComponent <Renderer>();
        }
        rend.material = EnemyManager.Instance.dissolveMat;
        rend.material.SetVector("_EdgeColor1", RPSColors[(int)e.attackElement] * 4f);
        rend.material.SetVector("_Color", RPSColors[(int)e.attackElement] * 1f);
        float timer = 0f;

        while (timer < 2f)
        {
            timer += Time.deltaTime;
            float cutoff = Mathf.Lerp(0, 1, timer / 2f);
            rend.material.SetFloat("_cutoff", cutoff);
            //Debug.Log(timer / 3f);
            yield return(new WaitForSeconds(Time.deltaTime));
        }
        rend.material = EnemyManager.Instance.baseMats[(int)attackElement];
        e.gameObject.SetActive(false);
        ObjectPool.Instance.PoolBug(e.attackElement, e);
    }
Esempio n. 2
0
    public void DoDefense(int defenseMode, RPSEnemy source, Attacks.AtkDefElement attackingElement, Attacks.AttackType atkType)
    {
        int XPMult = 2;

        if (defenseMode == 1)      // Good Defense
        {
            XPMult = -1;
            switch (defenseType)
            {
            case DefenseType.Dmg:
                source.hp -= dmgValue * 5;
                break;

            case DefenseType.DrainHP:
                hp        += dmgValue * 3;
                source.hp -= dmgValue * 3;
                break;

            case DefenseType.BolsterAtk:
                if (dmgValue < 20)
                {
                    dmgValue *= 2;
                }
                break;
            }
        }
        else if (defenseMode == 0)
        {
            XPMult = 4;
            switch (defenseType)
            {
            case DefenseType.Dmg:
                hp -= dmgValue * 5;
                break;

            case DefenseType.DrainHP:
                hp        -= dmgValue * 3;
                source.hp += dmgValue * 3;
                break;

            case DefenseType.BolsterAtk:
                if (dmgValue > float.MinValue)
                {
                    dmgValue /= 2;
                }
                break;
            }
        }

        if (source.CompareTag("Player"))
        {
            source.GetComponent <Moveonterrain>().CalculateXPDamage(XPMult, attackingElement, atkType);
        }
        else
        {
            Debug.Log("PAJWO");
        }
    }
Esempio n. 3
0
    public void CreateBug(Attacks.AtkDefElement elemtype, Vector3 startPos)
    {
        RPSEnemy e = Factory.Instance.InitializeEnemy(elemtype, startPos);
        Renderer rend;

        if (e.attackElement == Attacks.AtkDefElement.Rock)
        {
            rend = e.GetComponent <Renderer>();
        }
        else
        {
            rend = e.transform.Find("Shape").GetComponent <Renderer>();
        }
        rend.material = baseMats[(int)e.attackElement];
        e.RefreshStats();
        enemyList.Add(e);
    }