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); }
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"); } }
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); }