Precautions for servitor related NPEs.

This commit is contained in:
MobiusDevelopment
2021-05-30 21:28:59 +00:00
parent d4915cb08f
commit 086459920b
2 changed files with 126 additions and 18 deletions

View File

@@ -449,54 +449,108 @@ public class ServitorInstance extends Summon implements Runnable
@Override @Override
public double getMAtk(Creature target, Skill skill) public double getMAtk(Creature target, Skill skill)
{ {
return super.getMAtk(target, skill) + (getActingPlayer().getMAtk(target, skill) * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_ATTACK) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMAtk(target, skill);
}
return super.getMAtk(target, skill) + (player.getMAtk(target, skill) * (player.getServitorShareBonus(Stat.MAGIC_ATTACK) - 1.0));
} }
@Override @Override
public double getMDef(Creature target, Skill skill) public double getMDef(Creature target, Skill skill)
{ {
return super.getMDef(target, skill) + (getActingPlayer().getMDef(target, skill) * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_DEFENCE) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMDef(target, skill);
}
return super.getMDef(target, skill) + (player.getMDef(target, skill) * (player.getServitorShareBonus(Stat.MAGIC_DEFENCE) - 1.0));
} }
@Override @Override
public double getPAtk(Creature target) public double getPAtk(Creature target)
{ {
return super.getPAtk(target) + (getActingPlayer().getPAtk(target) * (getActingPlayer().getServitorShareBonus(Stat.POWER_ATTACK) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPAtk(target);
}
return super.getPAtk(target) + (player.getPAtk(target) * (player.getServitorShareBonus(Stat.POWER_ATTACK) - 1.0));
} }
@Override @Override
public double getPDef(Creature target) public double getPDef(Creature target)
{ {
return super.getPDef(target) + (getActingPlayer().getPDef(target) * (getActingPlayer().getServitorShareBonus(Stat.POWER_DEFENCE) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPDef(target);
}
return super.getPDef(target) + (player.getPDef(target) * (player.getServitorShareBonus(Stat.POWER_DEFENCE) - 1.0));
} }
@Override @Override
public int getMAtkSpd() public int getMAtkSpd()
{ {
return (int) (super.getMAtkSpd() + (getActingPlayer().getMAtkSpd() * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_ATTACK_SPEED) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMAtkSpd();
}
return (int) (super.getMAtkSpd() + (player.getMAtkSpd() * (player.getServitorShareBonus(Stat.MAGIC_ATTACK_SPEED) - 1.0)));
} }
@Override @Override
public int getMaxHp() public int getMaxHp()
{ {
return (int) (super.getMaxHp() + (getActingPlayer().getMaxHp() * (getActingPlayer().getServitorShareBonus(Stat.MAX_HP) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMaxHp();
}
return (int) (super.getMaxHp() + (player.getMaxHp() * (player.getServitorShareBonus(Stat.MAX_HP) - 1.0)));
} }
@Override @Override
public int getMaxMp() public int getMaxMp()
{ {
return (int) (super.getMaxMp() + (getActingPlayer().getMaxMp() * (getActingPlayer().getServitorShareBonus(Stat.MAX_MP) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMaxMp();
}
return (int) (super.getMaxMp() + (player.getMaxMp() * (player.getServitorShareBonus(Stat.MAX_MP) - 1.0)));
} }
@Override @Override
public int getCriticalHit(Creature target, Skill skill) public int getCriticalHit(Creature target, Skill skill)
{ {
return (int) (super.getCriticalHit(target, skill) + ((getActingPlayer().getCriticalHit(target, skill)) * (getActingPlayer().getServitorShareBonus(Stat.CRITICAL_RATE) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getCriticalHit(target, skill);
}
return (int) (super.getCriticalHit(target, skill) + ((player.getCriticalHit(target, skill)) * (player.getServitorShareBonus(Stat.CRITICAL_RATE) - 1.0)));
} }
@Override @Override
public double getPAtkSpd() public double getPAtkSpd()
{ {
return super.getPAtkSpd() + (getActingPlayer().getPAtkSpd() * (getActingPlayer().getServitorShareBonus(Stat.POWER_ATTACK_SPEED) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPAtkSpd();
}
return super.getPAtkSpd() + (player.getPAtkSpd() * (player.getServitorShareBonus(Stat.POWER_ATTACK_SPEED) - 1.0));
} }
} }

View File

@@ -449,54 +449,108 @@ public class ServitorInstance extends Summon implements Runnable
@Override @Override
public double getMAtk(Creature target, Skill skill) public double getMAtk(Creature target, Skill skill)
{ {
return super.getMAtk(target, skill) + (getActingPlayer().getMAtk(target, skill) * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_ATTACK) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMAtk(target, skill);
}
return super.getMAtk(target, skill) + (player.getMAtk(target, skill) * (player.getServitorShareBonus(Stat.MAGIC_ATTACK) - 1.0));
} }
@Override @Override
public double getMDef(Creature target, Skill skill) public double getMDef(Creature target, Skill skill)
{ {
return super.getMDef(target, skill) + (getActingPlayer().getMDef(target, skill) * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_DEFENCE) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMDef(target, skill);
}
return super.getMDef(target, skill) + (player.getMDef(target, skill) * (player.getServitorShareBonus(Stat.MAGIC_DEFENCE) - 1.0));
} }
@Override @Override
public double getPAtk(Creature target) public double getPAtk(Creature target)
{ {
return super.getPAtk(target) + (getActingPlayer().getPAtk(target) * (getActingPlayer().getServitorShareBonus(Stat.POWER_ATTACK) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPAtk(target);
}
return super.getPAtk(target) + (player.getPAtk(target) * (player.getServitorShareBonus(Stat.POWER_ATTACK) - 1.0));
} }
@Override @Override
public double getPDef(Creature target) public double getPDef(Creature target)
{ {
return super.getPDef(target) + (getActingPlayer().getPDef(target) * (getActingPlayer().getServitorShareBonus(Stat.POWER_DEFENCE) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPDef(target);
}
return super.getPDef(target) + (player.getPDef(target) * (player.getServitorShareBonus(Stat.POWER_DEFENCE) - 1.0));
} }
@Override @Override
public int getMAtkSpd() public int getMAtkSpd()
{ {
return (int) (super.getMAtkSpd() + (getActingPlayer().getMAtkSpd() * (getActingPlayer().getServitorShareBonus(Stat.MAGIC_ATTACK_SPEED) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMAtkSpd();
}
return (int) (super.getMAtkSpd() + (player.getMAtkSpd() * (player.getServitorShareBonus(Stat.MAGIC_ATTACK_SPEED) - 1.0)));
} }
@Override @Override
public int getMaxHp() public int getMaxHp()
{ {
return (int) (super.getMaxHp() + (getActingPlayer().getMaxHp() * (getActingPlayer().getServitorShareBonus(Stat.MAX_HP) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMaxHp();
}
return (int) (super.getMaxHp() + (player.getMaxHp() * (player.getServitorShareBonus(Stat.MAX_HP) - 1.0)));
} }
@Override @Override
public int getMaxMp() public int getMaxMp()
{ {
return (int) (super.getMaxMp() + (getActingPlayer().getMaxMp() * (getActingPlayer().getServitorShareBonus(Stat.MAX_MP) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getMaxMp();
}
return (int) (super.getMaxMp() + (player.getMaxMp() * (player.getServitorShareBonus(Stat.MAX_MP) - 1.0)));
} }
@Override @Override
public int getCriticalHit(Creature target, Skill skill) public int getCriticalHit(Creature target, Skill skill)
{ {
return (int) (super.getCriticalHit(target, skill) + ((getActingPlayer().getCriticalHit(target, skill)) * (getActingPlayer().getServitorShareBonus(Stat.CRITICAL_RATE) - 1.0))); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getCriticalHit(target, skill);
}
return (int) (super.getCriticalHit(target, skill) + ((player.getCriticalHit(target, skill)) * (player.getServitorShareBonus(Stat.CRITICAL_RATE) - 1.0)));
} }
@Override @Override
public double getPAtkSpd() public double getPAtkSpd()
{ {
return super.getPAtkSpd() + (getActingPlayer().getPAtkSpd() * (getActingPlayer().getServitorShareBonus(Stat.POWER_ATTACK_SPEED) - 1.0)); final PlayerInstance player = getActingPlayer();
if (player == null)
{
return super.getPAtkSpd();
}
return super.getPAtkSpd() + (player.getPAtkSpd() * (player.getServitorShareBonus(Stat.POWER_ATTACK_SPEED) - 1.0));
} }
} }