import { MobType } from "./massive-darkness2.model";
import { MobSkillType } from "./massive-darkness2.model.boss";

export enum MobSkillTarget {
    Random = 40,
    LeastHp = 50,
    LeastMp = 60,
    HighestHp = 70,
    HighestMp = 80,
    LowestLevel = 90,
    MostCorruption = 200,
    LeastCorruption = 201
}

export enum GameBundle {
    CoreGame,
    HeavenFallen,
    Zombiecide
}
export interface MD2MobInfo {
    id: string;
    type: MobType;
    from: GameBundle;
    name: string;
    leaderImgUrl: string;
    minionImgUrl: string;
    mobLevelInfos: MD2MobLevelInfo[];
    skills: MD2MobSkill[];
}

export interface MD2MobLevelInfo {
    id: string;
    level: number;
    mobInfoId: string;
    rewardTokens: number;
    fixedRareTreasure: number;
    fixedEpicTreasure: number;
    fixedLegendTreasure: number;
    fixedHp: number;
    hpPerHero: number;
    actions: number;
    attackInfo: MD2DiceSet;
    alterAttackInfo?: MD2DiceSet;
    defenceInfo: MD2DiceSet;
}

export interface MD2MobSkill {
    id: string;
    seq: number;
    level: number;
    mobInfoId: string;
    type: MobSkillType;
    skillTarget: MobSkillTarget | null;
    clawRoll: number;
    skillRoll: number;
    name: string;
    skillCondition: string;
    description: string;
    uiDisplay?: boolean;
}

export interface MD2DiceSet {
    type: MobSkillType;
    yellow: number | null;
    orange: number | null;
    red: number | null;
    blue: number | null;
    green: number | null;
    black: number | null;
}