Files
Server/src/engine/powers/effectmodifiers/InvisibleEffectModifier.java
T

85 lines
2.7 KiB
Java
Raw Normal View History

2022-04-30 09:41:17 -04:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.powers.effectmodifiers;
import engine.gameManager.SessionManager;
import engine.jobs.AbstractEffectJob;
import engine.mbEnums;
2022-04-30 09:41:17 -04:00
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 {
2023-07-15 09:23:48 -04:00
public InvisibleEffectModifier(ResultSet rs) throws SQLException {
super(rs);
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
@Override
protected void _applyEffectModifier(AbstractCharacter source, AbstractWorldObject awo, int trains, AbstractEffectJob effect) {
2022-04-30 09:41:17 -04:00
if (awo.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter)) {
2023-07-15 09:23:48 -04:00
PlayerCharacter pc = (PlayerCharacter) awo;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
if (effect == null)
return;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
PowersBase pb = effect.getPower();
if (pb == null)
return;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
ActionsBase ab = effect.getAction();
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
if (ab == null)
return;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
//send invis message to everyone around.
ClientConnection origin = SessionManager.getClientConnection(pc);
if (origin == null)
return;
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
ab.getDurationInSeconds(trains);
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
pc.setHidden(trains);
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
pc.setTimeStampNow("Invis");
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
} else {
Logger.error("Cannot go invis on a non player.");
}
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
@Override
public void applyBonus(AbstractCharacter ac, int trains) {
if (ac == null)
return;
PlayerBonuses bonus = ac.getBonuses();
if (bonus != null)
bonus.updateIfHigher(this, (float) trains);
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
//remove pets
if (ac.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter))
2023-07-15 09:23:48 -04:00
((PlayerCharacter) ac).dismissPet();
}
2022-04-30 09:41:17 -04:00
2023-07-15 09:23:48 -04:00
@Override
public void applyBonus(Item item, int trains) {
}
@Override
public void applyBonus(Building building, int trains) {
}
2022-04-30 09:41:17 -04:00
}