public override bool blockDamage(int amount, weapon source) { if (fireCount >= overheatCapacity) { print ("Laser array overheated"); return false; } bool blocked = false; int damage = amount; if (source.getTechnology() == "explosive" && source.getName() != "Mine") { blocked = true; damage = source.getSplashDamage(); this.getMaster().takeDamage(damage); }else if (source.getTechnology() == "momentum"){ blocked = true; damage = 0; } if (blocked) { print ("Reduced damage from " + amount.ToString () + " to " + damage.ToString () + "!"); } else { print ("Block failed!"); } fireCount += 1; firedInTurn = true; return blocked; }
public override bool blockDamage(int amount, weapon source) { bool blocked = false; int damage = amount; if (source.getTechnology() == "explosive" && source.getName() != "Mine") { blocked = true; damage = source.getSplashDamage(); this.getMaster().takeDamage(damage); }else if (source.getTechnology() == "momentum"){ blocked = true; damage = Mathf.Max(0,amount - Random.Range(MIN_REDUCTION,MAX_REDUCTION + 1)); this.getMaster().takeDamage(damage); } if (blocked) { print ("Reduced damage from " + amount.ToString () + " to " + damage.ToString () + "!"); } else { print ("Block failed!"); } return blocked; }