// • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
//      Magicbane Emulator Project © 2013 - 2024
//                www.magicbane.com

package engine.wpakpowers;

import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
import engine.wpak.data.ActionEntry;
import engine.wpak.data.Effect;
import engine.wpak.data.ModifierEntry;
import engine.wpak.data.Power;

public class Behaviour {

    public static Object Flag(AbstractCharacter caster, AbstractWorldObject target, Power power,
                              ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        boolean modValue = true;
        return modValue;
    }

    public static Object MapIntToInts(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                      ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object Standard(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                  ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {

        return WpakPowerManager.applyCurveToModifier(actionEntry, modifierEntry, rank);
    }

    public static Object FPSubTypeAttr(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                       ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        return WpakPowerManager.applyCurveToModifier(actionEntry, modifierEntry, rank);
    }

    public static Object SubTypeSourceType(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                           ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object SubTypePowerType(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                          ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object SubTypeSkill(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                      ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object FPSubTypeDmg(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                      ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object DD(AbstractCharacter caster, AbstractWorldObject target, Power power,
                            ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object StringBehaviour(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                         ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object SubTypeMod(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                    ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object SubTypePower(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                      ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object SubTypeDmg(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                    ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object FPSubTypeSkill(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                        ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object FPSubTypeMonster(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                          ActionEntry actionEntry, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }

    public static Object ProcInfo(AbstractCharacter caster, AbstractWorldObject target, Power power,
                                  ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
        System.out.println("Behavior method called");
        return null;
    }
}