Files
lakebane/src/engine/wpakpowers/Behaviours.java
T

127 lines
6.3 KiB
Java
Raw Normal View History

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;
import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
2025-02-21 16:33:17 -06:00
import engine.util.Pair;
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-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
}
}