File

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

Description

Class representing a trinket set

Index

Properties
Methods

Constructor

constructor()

Create a trinket set data

Properties

Private amulet
amulet: number
Type : number

Amulet id

Private back
back: number
Type : number

Back id

Private earring1
earring1: number
Type : number

Earring 1 id

Private earring2
earring2: number
Type : number

Earring 2 id

Private ring1
ring1: number
Type : number

Ring 1 id

Private ring2
ring2: number
Type : number

Ring 2 id

Methods

Private _getDiv
_getDiv(slots: string[], mobile: boolean)

Return the div for the given slots - PRIVATE

Parameters :
Name Type Optional Description
slots string[] no

The slots that will be put in the div

mobile boolean no

Mobile device or not

Returns : string
getDiv
getDiv(mobile: boolean)

Get the trinket div

Parameters :
Name Type Optional Description
mobile boolean no

Mobile device or not

Returns : literal type
setSingleStat
setSingleStat(stat: string)

Set a stat on the trinket set

Parameters :
Name Type Optional Description
stat string no

The stat to set on all trinket pieces

Returns : void
setStats
setStats(trinketStats: string[])

Set stats on trinket pieces

Parameters :
Name Type Optional Description
trinketStats string[] no

Array of stats to set on the trinket pieces in the followin order: back - earring1 - earring2 - amulet - ring1 - ring2

Returns : string
import { items } from '../professionUtilities/items';
import { stats } from '../professionUtilities/stats';

/**
 * Trinket data
 */
const trinket = items.trinket;

/**
 * Class representing a trinket set
 */
export class Trinket {
    /**
     * Ring 2 id
     */
    private ring2: number;
    /**
     * Ring 1 id
     */
    private ring1: number;
    /**
     * Amulet id
     */
    private amulet: number;
    /**
     * Earring 2 id
     */
    private earring2: number;
    /**
     * Earring 1 id
     */
    private earring1: number;
    /**
     * Back id
     */
    private back: number;

    /**
     * Create a trinket set data
     */
    constructor() {
        this.back = -1;
        this.earring1 = -1;
        this.earring2 = -1;
        this.amulet = -1;
        this.ring1 = -1;
        this.ring2 = 1;
    }

    /**
     * Set a stat on the trinket set
     * @param stat The stat to set on all trinket pieces
     */
    setSingleStat(stat: string) {
        this.setStats([stat, stat, stat, stat, stat, stat]);
    }

    /**
     * Set stats on trinket pieces
     * @param trinketStats Array of stats to set on the trinket pieces in the followin order:
     *  back - earring1 - earring2 - amulet - ring1 - ring2
     */
    setStats(trinketStats: string[]): string {
        if (trinketStats.length !== 6) {
            console.warn('Warning: invalid parameters in Trinkek::setStats');
            return;
        }
        const slots = ['back', 'earring1', 'earring2', 'amulet', 'ring1', 'ring2'];
        for (let i = 0; i < 6; i++) {
            const stat = stats[trinketStats[i]];
            if (stat) {
                this[slots[i]] = stat;
            } else {
                console.warn('Warning: unknown stat ' + trinketStats[i]);
            }
        }
    }

    /**
     * Return the div for the given slots - PRIVATE
     * @param slots The slots that will be put in the div
     * @param mobile Mobile device or not
     */
    private _getDiv(slots: string[], mobile: boolean): string {
        let divToAdd = '<div data-armory-embed="items" ';
        let trinketIDS = 'data-armory-ids="';
        let totalStats = '';
        for (let i = 0; i < slots.length; i++) {
            const slot = trinket[slots[i]];
            const stat = this[slots[i]];
            trinketIDS += slot + ',';
            totalStats += 'data-armory-' + slot + '-stat="' + stat + '" ';
        }
        trinketIDS = trinketIDS.slice(0, -1) + '" ';
        divToAdd += totalStats;
        divToAdd += trinketIDS;
        if (mobile) {
            divToAdd += 'data-armory-size="130" ';
        } else {
            divToAdd += 'data-armory-size="60" ';
        }
        // divToAdd += 'data-armory-inline-text="wiki" ';
        divToAdd += '></div>';
        return divToAdd;
    }

    /**
     * Get the trinket div
     * @param mobile Mobile device or not
     */
    getDiv(mobile: boolean): { BA: string, AR: string } {
        return {
            BA: this._getDiv(['back', 'earring1', 'earring2'], mobile),
            AR: this._getDiv(['amulet', 'ring1', 'ring2'], mobile)
        };
    }
}

results matching ""

    No results matching ""