UNPKG

@firestone-hs/replay-parser

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.

52 lines 8.84 kB
import { ActionHelper } from '../../services/action/action-helper'; import { Action } from './action'; export class ActionButtonUsedAction extends Action { constructor(allCards) { super(allCards); } static create(newAction, allCards) { return Object.assign(new ActionButtonUsedAction(allCards), newAction); } update(entities) { return Object.assign(new ActionButtonUsedAction(this.allCards), this, { entities, }); } enrichWithText(allEntitiesSoFar) { const ownerName = ActionHelper.getOwner(this.entities, this.entityId).name; const cardId = ActionHelper.getCardId(this.entities, this.entityId, allEntitiesSoFar); const card = this.allCards.getCard(cardId); const verb = this.buildVerb(card); let actionTarget = ''; if (this.targetIds && this.targetIds.length > 0) { const targetCardIds = this.targetIds.map((entityId) => ActionHelper.getCardId(this.entities, entityId, allEntitiesSoFar)); const cardIds = targetCardIds.map((cardId) => this.allCards.getCard(cardId)); const targetCardNames = cardIds.some((card) => !card || !card.name) ? `${cardIds.length} cards` : cardIds.map((card) => card.name).join(', '); actionTarget = ` on ${targetCardNames}`; } const textRaw = `\t${ownerName} ${verb} ${card.name}${actionTarget}` // Sugar for Battlegrounds .replace('uses Drag To Buy on', 'buys') .replace('uses Drag To Buy Spell on', 'buys') .replace('uses Drag To Sell on', 'sells'); return Object.assign(new ActionButtonUsedAction(this.allCards), this, { textRaw, }); } getInstance() { return new ActionButtonUsedAction(this.allCards); } buildVerb(card) { // // console.log('building verb for', card, card.name && card.name.toLowerCase().indexOf('tavern tier')); if (!card.name) { return 'uses'; } if (card.name.toLowerCase().indexOf('tavern tier') !== -1) { return 'upgrades to'; } return 'uses'; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi11c2VkLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2FjdGlvbi1idXR0b24tdXNlZC1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLE1BQU07SUFHakQsWUFBWSxRQUF5QjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQXlCO1FBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBNkI7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUNyRSxRQUFRO1NBQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxTQUFTLEdBQVcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkYsTUFBTSxNQUFNLEdBQVcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDckQsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUNqRSxDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3RSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ2xFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLFFBQVE7Z0JBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLFlBQVksR0FBRyxPQUFPLGVBQWUsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxFQUFFO1lBQ25FLDBCQUEwQjthQUN6QixPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO2FBQ3RDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxNQUFNLENBQUM7YUFDNUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDckUsT0FBTztTQUNQLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFUyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFJO1FBQ3JCLDBHQUEwRztRQUMxRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLE9BQU8sTUFBTSxDQUFDO1NBQ2Q7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzFELE9BQU8sYUFBYSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQnV0dG9uVXNlZEFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XHJcblx0cmVhZG9ubHkgZW50aXR5SWQ6IG51bWJlcjtcclxuXHJcblx0Y29uc3RydWN0b3IoYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge1xyXG5cdFx0c3VwZXIoYWxsQ2FyZHMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBjcmVhdGUobmV3QWN0aW9uLCBhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKTogQWN0aW9uQnV0dG9uVXNlZEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQWN0aW9uQnV0dG9uVXNlZEFjdGlvbihhbGxDYXJkcyksIG5ld0FjdGlvbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQWN0aW9uQnV0dG9uVXNlZEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQWN0aW9uQnV0dG9uVXNlZEFjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHRlbnRpdGllcyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBBY3Rpb25CdXR0b25Vc2VkQWN0aW9uIHtcclxuXHRcdGNvbnN0IG93bmVyTmFtZTogc3RyaW5nID0gQWN0aW9uSGVscGVyLmdldE93bmVyKHRoaXMuZW50aXRpZXMsIHRoaXMuZW50aXR5SWQpLm5hbWU7XHJcblx0XHRjb25zdCBjYXJkSWQ6IHN0cmluZyA9IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgdGhpcy5lbnRpdHlJZCwgYWxsRW50aXRpZXNTb0Zhcik7XHJcblx0XHRjb25zdCBjYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNhcmRJZCk7XHJcblx0XHRjb25zdCB2ZXJiID0gdGhpcy5idWlsZFZlcmIoY2FyZCk7XHJcblx0XHRsZXQgYWN0aW9uVGFyZ2V0ID0gJyc7XHJcblx0XHRpZiAodGhpcy50YXJnZXRJZHMgJiYgdGhpcy50YXJnZXRJZHMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRDYXJkSWRzID0gdGhpcy50YXJnZXRJZHMubWFwKChlbnRpdHlJZCkgPT5cclxuXHRcdFx0XHRBY3Rpb25IZWxwZXIuZ2V0Q2FyZElkKHRoaXMuZW50aXRpZXMsIGVudGl0eUlkLCBhbGxFbnRpdGllc1NvRmFyKSxcclxuXHRcdFx0KTtcclxuXHRcdFx0Y29uc3QgY2FyZElkcyA9IHRhcmdldENhcmRJZHMubWFwKChjYXJkSWQpID0+IHRoaXMuYWxsQ2FyZHMuZ2V0Q2FyZChjYXJkSWQpKTtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0Q2FyZE5hbWVzID0gY2FyZElkcy5zb21lKChjYXJkKSA9PiAhY2FyZCB8fCAhY2FyZC5uYW1lKVxyXG5cdFx0XHRcdD8gYCR7Y2FyZElkcy5sZW5ndGh9IGNhcmRzYFxyXG5cdFx0XHRcdDogY2FyZElkcy5tYXAoKGNhcmQpID0+IGNhcmQubmFtZSkuam9pbignLCAnKTtcclxuXHRcdFx0YWN0aW9uVGFyZ2V0ID0gYCBvbiAke3RhcmdldENhcmROYW1lc31gO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgdGV4dFJhdyA9IGBcXHQke293bmVyTmFtZX0gJHt2ZXJifSAke2NhcmQubmFtZX0ke2FjdGlvblRhcmdldH1gXHJcblx0XHRcdC8vIFN1Z2FyIGZvciBCYXR0bGVncm91bmRzXHJcblx0XHRcdC5yZXBsYWNlKCd1c2VzIERyYWcgVG8gQnV5IG9uJywgJ2J1eXMnKVxyXG5cdFx0XHQucmVwbGFjZSgndXNlcyBEcmFnIFRvIEJ1eSBTcGVsbCBvbicsICdidXlzJylcclxuXHRcdFx0LnJlcGxhY2UoJ3VzZXMgRHJhZyBUbyBTZWxsIG9uJywgJ3NlbGxzJyk7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQWN0aW9uQnV0dG9uVXNlZEFjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHR0ZXh0UmF3LFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgZ2V0SW5zdGFuY2UoKTogQWN0aW9uIHtcclxuXHRcdHJldHVybiBuZXcgQWN0aW9uQnV0dG9uVXNlZEFjdGlvbih0aGlzLmFsbENhcmRzKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYnVpbGRWZXJiKGNhcmQpOiBzdHJpbmcge1xyXG5cdFx0Ly8gLy8gY29uc29sZS5sb2coJ2J1aWxkaW5nIHZlcmIgZm9yJywgY2FyZCwgY2FyZC5uYW1lICYmIGNhcmQubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3RhdmVybiB0aWVyJykpO1xyXG5cdFx0aWYgKCFjYXJkLm5hbWUpIHtcclxuXHRcdFx0cmV0dXJuICd1c2VzJztcclxuXHRcdH1cclxuXHRcdGlmIChjYXJkLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCd0YXZlcm4gdGllcicpICE9PSAtMSkge1xyXG5cdFx0XHRyZXR1cm4gJ3VwZ3JhZGVzIHRvJztcclxuXHRcdH1cclxuXHRcdHJldHVybiAndXNlcyc7XHJcblx0fVxyXG59XHJcbiJdfQ==