// Update is called once per frame void ApplyElementData(ElementStats element) { rendData.rb2D.mass *= element.mass; rendData.rb2D.gravityScale = element.gravity; rendData.rend.colorGradient = element.colorGradient; rendData.aliveElement.resilience = element.resilience * rendData.instantiatiedPrefab.transform.childCount; rendData.aliveElement.resilience /= 10; rendData.aliveElement.minimumDamage = element.minimumDamage + rendData.rb2D.mass / 100; EndEffect(); }
void HandleCollision(GameObject other) { if (playerOnly && other.tag != "Player") { return; } ElementStats stats = other.GetComponent <ElementStats>(); if (stats != null) { if (this.random) { if (Random.Range(0, 101) > 10) { damage = 0; } if (damage > 0 || Random.Range(0, 101) < 15) { armor = 0; } if (damage > 0 || Random.Range(0, 101) < 10) { this.heal = 0; } } if (this.armor > 0) { stats.RepairArmor(this.armor); } if (this.heal > 0) { stats.Heal(this.heal); } if (this.damage > 0) { stats.InflictDamage(this.damage); } if (this.fuel > 0) { stats.LoadFuel(this.fuel); } if (this.bullets > 0) { stats.ReloadBullets(this.bullets); } } gameObject.SetActive(false); }
private void HandleCollision(GameObject hitTarget) { ElementStats elementStats = hitTarget.GetComponent <ElementStats>(); if (elementStats != null && !elementStats.IsDead()) { elementStats.InflictDamage(this.damage); // TODO: add a small explosion for the bullet dissapearance. if (this.affectsScore && elementStats.IsDead()) { PlayerStats.AddGold(elementStats.gold); PlayerStats.AddScore(elementStats.scorePoints); } } SelfDestruct(); }
// Use this for initialization void Awake() { this.stats = GetComponent <ElementStats>(); }