public void addItem(Item item) { Debug.Log("This got called"); StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);; StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType); StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType); HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat; statController.AddModifier(healthMod); statController.AddModifier(armorMod); statController.AddModifier(damageMod); Debug.Log("Health total is " + health.CalculateFinalValue()); Debug.Log("Damage total is " + damage.CalculateFinalValue()); Debug.Log("Armor total is " + armor.CalculateFinalValue()); items[(int)item.equipmentSlot] = item; for (int i = 0; i < equipmentUISlots.Length; i++) { if (item.equipmentSlot == equipmentUISlots[i].equipmentSlot) { equipmentUISlots[i].addItem(item); } } }
// do something on collision public override void onCollision(GameObject projectile, Collision2D collision) { Collider2D collider = collision.GetContact(0).collider; //Debug.Log(User.name + " hit " + collider.name); if (collider.gameObject == User) { return; } if (breakWalls) { Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f; if (collision.GetContact(0).collider.name == "Walls") { FindObjectsOfType <Map.MapManager>()[0].DamageTile(hitPos.x, hitPos.y, damage); Destroy(projectile); } } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { //Debug.Log(finalDamage); health.addValue(-finalDamage); Destroy(projectile); } } }
public void removeItem(Item item) { StatModifier armorMod = new StatModifier(item.armor, item.statModType, item.armorType);; StatModifier healthMod = new StatModifier(item.health, item.statModType, item.healthType); StatModifier damageMod = new StatModifier(item.damage, item.statModType, item.damageType); HealthStat health = statController.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = statController.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damage = statController.GetStatOfType(StatType.DamageStat) as DamageStat; statController.RemoveModifier(healthMod); statController.RemoveModifier(armorMod); statController.RemoveModifier(damageMod); Debug.Log("Health total is " + health.CalculateFinalValue()); Debug.Log("Damage total is " + damage.CalculateFinalValue()); Debug.Log("Armor total is " + armor.CalculateFinalValue()); items[(int)item.equipmentSlot] = null; }
// do something on collision public override void onCollision(GameObject attack, Collision2D collider) { //Debug.Log(User.name + " hit " + collider.gameObject.name); if (collider.gameObject == User) { return; } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { health.addValue(-finalDamage); //Debug.Log("Players health is = " + health.CurrentValue); } } }
//DO damage on colision like magic bolt private void OnCollisionEnter2D(Collision2D col) { StatControler sC; if ((sC = col.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null && col.gameObject.tag == "Player") { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (health != null) { health.addValue(-finalDamage); Die(); } } }
// do something on collision public override void onCollision(GameObject projectile, Collision2D collision) { Collider2D collider = collision.GetContact(0).collider; //Debug.Log(User.name + " hit " + collider.name); if (collider.gameObject == User) { return; } if (breakWalls) { Vector2 hitPos = collision.GetContact(0).point - collision.relativeVelocity.normalized * .1f; if (collision.GetContact(0).collider.name == "Walls") { Instantiate(explosion, hitPos, new Quaternion()); for (float i = -explosionRaidius; i <= explosionRaidius; ++i) { for (float j = -explosionRaidius; j <= explosionRaidius; ++j) { var d = i * i + j * j; if (d <= sqrR) { Map.MapManager.instance.DamageTile(hitPos.x + i, hitPos.y + j, damage / d); } } } Destroy(projectile); } } StatControler sC; StatControler sCUser = User.GetComponent <StatControler>(); if ((sC = collision.GetContact(0).collider.gameObject.GetComponent <StatControler>()) != null) { int finalDamage = 0; finalDamage += damage; HealthStat health = sC.GetStatOfType(StatType.HealthStat) as HealthStat; ArmorStat armor = sC.GetStatOfType(StatType.ArmorStat) as ArmorStat; DamageStat damageBonus = sCUser.GetStatOfType(StatType.DamageStat) as DamageStat; if (armor != null) { finalDamage -= (int)armor.CalculateFinalValue(); } if (damageBonus != null) { finalDamage += (int)damageBonus.CalculateFinalValue(); } //Debug.Log(health); if (health != null) { //Debug.Log(finalDamage); health.addValue(-finalDamage); Destroy(projectile); } } }