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

package engine.wpak.data;

import engine.mbEnums;

import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;

public class PowerEntry {
    public String power_id;
    public String power;
    public ArrayList<PowerData> powers = new ArrayList<>();
    public mbEnums.PowerTargetType target_type;
    public int range;
    public mbEnums.AreaType areaType;
    public int areaRange;
    public mbEnums.ExcludeType excludeType;
    public mbEnums.CostType costType;
    public float cost;
    public float difficulty;
    public float precision;
    public float init_time;
    public float release_time;
    public float recycle_time;
    public int hitRollYN;
    public mbEnums.CastingModeType castingMode;
    public int initAmin;
    public int releaseAnim;
    public mbEnums.TargetSelectType targetSelect;

    // Additional key/value type power entries

    public ArrayList<ActionEntry> actionEntries = new ArrayList<>();
    public int maxLevel;
    public int hateValue;
    public mbEnums.CompoundCurveType hateCurve = mbEnums.CompoundCurveType.DefaultFlat;
    public int loopAnimID;
    public String grantOverrideVar;
    public ArrayList<String> description = new ArrayList<>();
    public HashMap<String, mbEnums.CompoundCurveType> curves = new HashMap<>();
    public String category;
    public boolean canCastWhileMoving = false;
    public boolean bladeTrails = false;
    public ArrayList<EffectDescription> effectPreReqs = new ArrayList<>();
    public EquipmentPreReq equipmentPreReq;
    public EnumSet<mbEnums.MonsterType> monsterRestricts = EnumSet.noneOf(mbEnums.MonsterType.class);
    public EnumSet<mbEnums.MonsterType> monsterPrereqs = EnumSet.noneOf(mbEnums.MonsterType.class);
    public boolean shouldCheckPath = false;
    public boolean sticky = false;
    public int pulseCycle;
    public int pulseDuration;
    public int maxMobTargets;
    public int maxPlayerTargets;
    public boolean isAdminPower = false;
    public int casterPulseParticle;
    public ArrayList<EffectDescription> targetEffectPrereqs = new ArrayList<>();
    public boolean canCastWhileFlying = false;
    public boolean isProjectile = false;
    public HashMap<String, Float> conditions = new HashMap<>();

}
