New rule modifiers

This commit is contained in:
Anuken
2019-04-04 00:03:19 -04:00
parent 6de4af727b
commit 148f272500
28 changed files with 91 additions and 15 deletions

View File

@@ -131,6 +131,17 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
this.data = data;
}
public float damageMultiplier(){
if(owner instanceof Unit){
return type.damage * ((Unit) owner).getDamageMultipler();
}
if(owner instanceof Lightning && data instanceof Float){
return (Float)data;
}
return 1f;
}
@Override
public void absorb(){
supressCollision = true;
@@ -144,16 +155,7 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
@Override
public float damage(){
//todo hacky way to get damage, refactor
if(owner instanceof Unit){
return type.damage * ((Unit) owner).getDamageMultipler();
}
if(owner instanceof Lightning && data instanceof Float){
return (Float)data;
}
return type.damage;
return type.damage * damageMultiplier();
}
@Override

View File

@@ -125,7 +125,7 @@ public abstract class BulletType extends Content{
}
if(splashDamageRadius > 0){
Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage);
Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage * b.damageMultiplier());
}
}

View File

@@ -217,7 +217,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override
public float maxHealth(){
return type.health;
return type.health * Vars.state.rules.unitHealthMultiplier;
}
@Override

View File

@@ -91,6 +91,11 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop);
}
@Override
public float getDamageMultipler(){
return status.getDamageMultiplier() * state.rules.playerDamageMultiplier;
}
@Override
public void hitbox(Rectangle rectangle){
rectangle.setSize(mech.hitsize).setCenter(x, y);