File

src/app/helpers/profBuildHelpers/data/skills.ts

Description

Skills data

Index

Properties
Methods

Constructor

constructor(profession: )

Create a skills data

Parameters :
Name Optional Description
profession no

Profession

Properties

Private eliteSkill
eliteSkill: number
Type : number

Elite skill

Private healSkill
healSkill: number
Type : number

Healing skill

Private pets
pets: string[]
Type : string[]

Pets data

Private profession
profession: any
Type : any

Profession

Private utilitySkill0
utilitySkill0: number
Type : number

Utility skill

Private utilitySkill1
utilitySkill1: number
Type : number

Utility skill

Private utilitySkill2
utilitySkill2: number
Type : number

Utility skill

Methods

Private _getEliteDiv
_getEliteDiv(mobile: )

Private method to get the elite skill div

Parameters :
Name Optional Description
mobile no

Mobile device or not

Returns : string
Private _getHealDiv
_getHealDiv(mobile: boolean)

Private method to get the div of the healing skill

Parameters :
Name Type Optional Description
mobile boolean no

Mobile device or not

Returns : string
Private _getUtilitiesDiv
_getUtilitiesDiv(mobile: )

Private method to get the utility skills div

Parameters :
Name Optional Description
mobile no

Mobile device or not

Returns : string
Private _setSkill
_setSkill(slot: string, slotType: string, skillName: string)

Private method to set a skill on the given slot

Parameters :
Name Type Optional Description
slot string no

Skills data slot

slotType string no

Skill slot type

skillName string no

Name of the skill

Returns : void
getPDiv
getPDiv()

Get pets div

Returns : string
getSDiv
getSDiv(mobile: boolean)

Get the skills div

Parameters :
Name Type Optional Description
mobile boolean no

Mobile device or not

Returns : literal type
setEliteSkill
setEliteSkill(skillName: string)

Set elite skill

Parameters :
Name Type Optional Description
skillName string no

Name of the skill

Returns : void
setHealSkill
setHealSkill(skillName: string)

Set the heal skill

Parameters :
Name Type Optional Description
skillName string no

Name of the skill

Returns : void
setPets
setPets(petNames: string[])

Set pets

Parameters :
Name Type Optional Description
petNames string[] no

Pets to set

Returns : void
setUtilitySkills
setUtilitySkills(skillNameArray: string[])

Set the utility skills

Parameters :
Name Type Optional Description
skillNameArray string[] no

Array of skill name, length === 3

Returns : void
import { pets } from '../professionUtilities/pets';

/**
 * Skills data
 */
export class Skills {
    /**
     * Profession
     */
    private profession: any;
    /**
     * Pets data
     */
    private pets: string[];
    /**
     * Healing skill
     */
    private healSkill: number;
    /**
     * Utility skill
     */
    private utilitySkill0: number;
    /**
     * Utility skill
     */
    private utilitySkill1: number;
    /**
     * Utility skill
     */
    private utilitySkill2: number;
    /**
     * Elite skill
     */
    private eliteSkill: number;

    /**
     * Create a skills data
     * @param profession Profession
     */
    constructor(profession) {
        this.profession = profession;
        this.pets = [];
        this.healSkill = -1;
        this.utilitySkill0 = -1;
        this.utilitySkill1 = -1;
        this.utilitySkill2 = -1;
        this.eliteSkill = -1;
    }

    /**
     * Private method to set a skill on the given slot
     * @param slot Skills data slot
     * @param slotType Skill slot type
     * @param skillName Name of the skill
     */
    private _setSkill(slot: string, slotType: string, skillName: string) {
        const skill = this.profession.skills[skillName];
        if (skill) {
            if (skill.slot === slotType) {
                this[slot] = skill.id;
            } else {
                console.warn('Warning: ' + skillName + ' is not a/an ' + slotType + ' skill');
            }
        } else if (skillName.length > 0) {
            console.warn('Warning: ' + skillName + ' is not a ' + this.profession.name + ' skill');
        }
    }

    /**
     * Set the heal skill
     * @param skillName Name of the skill
     */
    setHealSkill(skillName: string) {
        this._setSkill('healSkill', 'Heal', skillName);
    }

    /**
     * Set the utility skills
     * @param skillNameArray Array of skill name, length === 3
     */
    setUtilitySkills(skillNameArray: string[]) {
        if (skillNameArray.length !== 3) {
            console.warn('Warning: invalid parameters in setUtilitySkills');
            return;
        }
        for (let i = 0; i < 3; i++) {
            const skillName = skillNameArray[i];
            this._setSkill('utilitySkill' + i, 'Utility', skillName);
        }
    }

    /**
     * Set elite skill
     * @param skillName Name of the skill
     */
    setEliteSkill(skillName: string) {
        this._setSkill('eliteSkill', 'Elite', skillName);
    }

    /**
     * Set pets
     * @param petNames Pets to set
     */
    setPets(petNames: string[]) {
        this.pets = petNames ? petNames.slice(0) : [];
    }

    /**
     * Private method to get the div of the healing skill
     * @param mobile Mobile device or not
     */
    private _getHealDiv(mobile: boolean): string {
        let divToAdd = '<div data-armory-embed="skills" ';
        let skillIDS = 'data-armory-ids="';
        skillIDS += this.healSkill;
        skillIDS += '" ';
        divToAdd += skillIDS;
        if (mobile) {
            divToAdd += 'data-armory-size="130" ';
        } else {
            divToAdd += 'data-armory-size="70" ';
        }
        divToAdd += 'data-armory-blank-text="Compétence utilitaire (reflect, cc, buff) ou DPS"';
        divToAdd += '></div>';
        return divToAdd;
    }

    /**
     * Private method to get the elite skill div
     * @param mobile Mobile device or not
     */
    private _getEliteDiv(mobile): string {
        let divToAdd = '<div class="uk-margin-small-left uk-margin-small-right" data-armory-embed="skills" ';
        let skillIDS = 'data-armory-ids="';
        skillIDS += this.eliteSkill;
        skillIDS += '" ';
        divToAdd += skillIDS;
        if (mobile) {
            divToAdd += 'data-armory-size="130" ';
        } else {
            divToAdd += 'data-armory-size="70" ';
        }
        divToAdd += 'data-armory-blank-text="Compétence utilitaire (reflect, cc, buff) ou DPS"';
        divToAdd += '></div>';
        return divToAdd;
    }

    /**
     * Private method to get the utility skills div
     * @param mobile Mobile device or not
     */
    private _getUtilitiesDiv(mobile): string {
        const skills = [this.utilitySkill0, this.utilitySkill1, this.utilitySkill2];
        let divToAdd = '<div class="uk-margin-small-left uk-margin-small-right" data-armory-embed="skills" ';
        let skillIDS = 'data-armory-ids="';
        for (let i = 0; i < skills.length; i++) {
            const skillID = skills[i];
            skillIDS += skillID + ',';
        }
        skillIDS = skillIDS.slice(0, -1) + '" ';
        divToAdd += skillIDS;
        if (mobile) {
            divToAdd += 'data-armory-size="130" ';
        } else {
            divToAdd += 'data-armory-size="70" ';
        }
        divToAdd += 'data-armory-blank-text="Compétence utilitaire (reflect, cc, buff) ou DPS"';
        divToAdd += '></div>';
        return divToAdd;
    }

    /**
     * Get the skills div
     * @param mobile Mobile device or not
     */
    getSDiv(mobile: boolean): {heal: string, utilities: string, elite: string} {
        return {
            heal: this._getHealDiv(mobile),
            utilities: this._getUtilitiesDiv(mobile),
            elite: this._getEliteDiv(mobile)
        };
    }

    /**
     * Get pets div
     */
    getPDiv(): string {
        if (this.pets.length === 0) {
            return '';
        }
        let divToAdd = '<div center> ';
        for (let i = 0; i < this.pets.length; i++) {
            const petData = pets[this.pets[i]] ? pets[this.pets[i]] : null;
            if (petData) {
                let img = '<img style="width: 196px; heigth: 196px" src="';
                img += petData.icon + '" ';
                img += 'title="' + this.pets[i] + '">';
                divToAdd += img;
            }
        }
        divToAdd += ' </div>';
        return divToAdd;
    }
}

results matching ""

    No results matching ""