Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.7 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.powers.effectmodifiers;
import engine.Enum;
import engine.gameManager.SessionManager;
import engine.jobs.AbstractEffectJob;
import engine.net.client.ClientConnection;
import engine.objects.*;
import engine.powers.ActionsBase;
import engine.powers.PowersBase;
import org.pmw.tinylog.Logger;
import java.sql.ResultSet;
import java.sql.SQLException;
public class InvisibleEffectModifier extends AbstractEffectModifier {
public InvisibleEffectModifier(ResultSet rs) throws SQLException {
super(rs);
}
@Override
protected void _applyEffectModifier(AbstractCharacter source, AbstractWorldObject awo, int trains, AbstractEffectJob effect) {
if (awo.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) {
PlayerCharacter pc = (PlayerCharacter) awo;
if (effect == null)
return;
PowersBase pb = effect.getPower();
if (pb == null)
return;
ActionsBase ab = effect.getAction();
if (ab == null)
return;
//send invis message to everyone around.
ClientConnection origin = SessionManager.getClientConnection(pc);
if (origin == null)
return;
ab.getDurationInSeconds(trains);
pc.setHidden(trains);
pc.setTimeStampNow("Invis");
} else {
Logger.error("Cannot go invis on a non player.");
}
}
@Override
public void applyBonus(AbstractCharacter ac, int trains) {
if (ac == null)
return;
PlayerBonuses bonus = ac.getBonuses();
if (bonus != null)
bonus.updateIfHigher(this, (float) trains);
//remove pets
if (ac.getObjectType().equals(Enum.GameObjectType.PlayerCharacter))
((PlayerCharacter) ac).dismissPet();
}
@Override
public void applyBonus(Item item, int trains) {
}
@Override
public void applyBonus(Building building, int trains) {
}
}