2025-02-17 05:00:33 -05:00
|
|
|
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
|
|
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
|
|
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
|
|
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
|
|
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
|
|
|
// Magicbane Emulator Project © 2013 - 2024
|
|
|
|
|
// www.magicbane.com
|
|
|
|
|
|
2025-02-17 04:45:38 -05:00
|
|
|
package engine.wpakpowers;
|
|
|
|
|
|
2025-02-23 14:48:39 -05:00
|
|
|
import engine.mbEnums;
|
2025-02-18 14:42:40 -05:00
|
|
|
import engine.objects.AbstractCharacter;
|
|
|
|
|
import engine.objects.AbstractWorldObject;
|
2025-02-21 16:33:17 -06:00
|
|
|
import engine.util.Pair;
|
2025-02-18 14:42:40 -05:00
|
|
|
import engine.wpak.data.Effect;
|
|
|
|
|
import engine.wpak.data.ModifierEntry;
|
|
|
|
|
import engine.wpak.data.Power;
|
2025-02-20 14:19:10 -05:00
|
|
|
import engine.wpak.data.PowerAction;
|
2025-02-18 14:42:40 -05:00
|
|
|
|
2025-03-02 12:41:08 -05:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
2025-02-21 14:13:29 -05:00
|
|
|
public class Behaviours {
|
2025-02-17 04:45:38 -05:00
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object Flag(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-22 15:23:15 -05:00
|
|
|
return true;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object MapIntToInts(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-21 16:13:54 -05:00
|
|
|
return powerAction.attackAnimations.clone();
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object Standard(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-18 15:07:41 -05:00
|
|
|
|
2025-02-26 12:06:23 -05:00
|
|
|
return WpakPowerManager.getModifierValues(modifierEntry, rank).first;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object FPSubTypeAttr(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-26 12:06:23 -05:00
|
|
|
return WpakPowerManager.getModifierValues(modifierEntry, rank).first;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypeSourceType(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-21 14:32:45 -05:00
|
|
|
|
2025-02-23 14:48:39 -05:00
|
|
|
return mbEnums.SourceType.valueOf(modifierEntry.arg1);
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypePowerType(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-21 16:12:09 -06:00
|
|
|
return modifierEntry.arg1;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypeSkill(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-25 13:37:09 -05:00
|
|
|
return null; // Unused in data
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object FPSubTypeDmg(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-21 16:34:35 -06:00
|
|
|
String key = modifierEntry.arg1;
|
2025-02-26 12:06:23 -05:00
|
|
|
float modifierValue = WpakPowerManager.getModifierValues(modifierEntry, rank).first;
|
2025-02-26 11:43:46 -05:00
|
|
|
return new Pair<>(key, modifierValue);
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object DD(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-17 04:45:38 -05:00
|
|
|
System.out.println("Behavior method called");
|
2025-02-18 13:20:28 -05:00
|
|
|
return null;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object StringBehaviour(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-23 14:56:02 -05:00
|
|
|
return new Pair<>(modifierEntry.arg1, modifierEntry.arg2); // We should filter this. No purpose.
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypeMod(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-03-02 12:41:08 -05:00
|
|
|
|
|
|
|
|
mbEnums.ModType noMod = mbEnums.ModType.valueOf(modifierEntry.arg1);
|
|
|
|
|
ArrayList<Effect> removeList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
// Iterate through effects on target slating to remove
|
|
|
|
|
// all which match the intended modType
|
|
|
|
|
|
|
|
|
|
for (AppliedEffect appliedEffect : target._effects.values())
|
2025-03-02 12:42:46 -05:00
|
|
|
if (appliedEffect.modifiers.containsKey(noMod))
|
2025-03-02 12:41:08 -05:00
|
|
|
removeList.add(appliedEffect.effect);
|
|
|
|
|
|
|
|
|
|
for (Effect effectEntry : removeList)
|
|
|
|
|
target._effects.remove(effectEntry);
|
|
|
|
|
|
|
|
|
|
// target.updateBonuses?
|
|
|
|
|
|
|
|
|
|
return noMod;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypePower(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-23 15:48:00 -05:00
|
|
|
return power.category;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object SubTypeDmg(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-23 15:47:33 -05:00
|
|
|
return power.category;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object FPSubTypeSkill(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-26 12:06:23 -05:00
|
|
|
return WpakPowerManager.getModifierValues(modifierEntry, rank);
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object FPSubTypeMonster(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-17 04:45:38 -05:00
|
|
|
System.out.println("Behavior method called");
|
2025-02-18 13:20:28 -05:00
|
|
|
return null;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-22 13:03:39 -05:00
|
|
|
public static Object ProcInfo(AbstractCharacter caster, Power power, Integer rank, AbstractWorldObject target,
|
|
|
|
|
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry) {
|
2025-02-17 04:45:38 -05:00
|
|
|
System.out.println("Behavior method called");
|
2025-02-18 13:20:28 -05:00
|
|
|
return null;
|
2025-02-17 04:45:38 -05:00
|
|
|
}
|
|
|
|
|
}
|