UNPKG

@firestone-hs/replay-parser

Version:

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

41 lines 7.24 kB
import { CardType, GameTag } from '@firestone-hs/reference-data'; import { ActionHelper } from '../../services/action/action-helper'; import { Action } from './action'; export class CardPlayedFromHandAction extends Action { constructor(allCards) { super(allCards); } static create(newAction, allCards) { return Object.assign(new CardPlayedFromHandAction(allCards), newAction); } update(entities) { return Object.assign(new CardPlayedFromHandAction(this.allCards), this, { entities, }); } enrichWithText(allEntitiesSoFar) { const ownerName = ActionHelper.getOwner(this.entities, this.entityId).name; const cardEntity = this.entities.get(this.entityId); const cardId = ActionHelper.getCardId(this.entities, this.entityId, allEntitiesSoFar); const card = this.allCards.getCard(cardId); const cardName = card ? card.name : 'one card'; let playVerb = 'plays'; if (cardEntity.getTag(GameTag.CARDTYPE) === CardType.WEAPON) { playVerb = 'equips'; } const targetText = super.generateTargetsText(allEntitiesSoFar); const targetTextToDisplay = targetText && targetText.length > 0 ? `\n${targetText}` : ''; const textRaw = `\t${ownerName} ${playVerb} ${cardName}${targetTextToDisplay}`; // if (this.entityId === 38) { // console.warn('defile action', ownerName, cardEntity, cardId, card, cardName, targetText); // } // // console.log('enriching card played from hand action text', targetText, textRaw); return Object.assign(new CardPlayedFromHandAction(this.allCards), this, { textRaw, }); } getInstance() { return new CardPlayedFromHandAction(this.allCards); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1wbGF5ZWQtZnJvbS1oYW5kLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2NhcmQtcGxheWVkLWZyb20taGFuZC1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsTUFBTTtJQUduRCxZQUFZLFFBQXlCO1FBQ3BDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBeUI7UUFDeEQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUE2QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFO1lBQ3ZFLFFBQVE7U0FDUixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sY0FBYyxDQUFDLGdCQUFxQztRQUMxRCxNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQVcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMvQyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQzVELFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDcEI7UUFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRCxNQUFNLG1CQUFtQixHQUFHLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLFFBQVEsSUFBSSxRQUFRLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUMvRSw4QkFBOEI7UUFDOUIsNkZBQTZGO1FBQzdGLElBQUk7UUFDSixzRkFBc0Y7UUFDdEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUN2RSxPQUFPO1NBQ1AsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYXJkVHlwZSwgR2FtZVRhZyB9IGZyb20gJ0BmaXJlc3RvbmUtaHMvcmVmZXJlbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcclxuXHRyZWFkb25seSBlbnRpdHlJZDogbnVtYmVyO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKSB7XHJcblx0XHRzdXBlcihhbGxDYXJkcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGNyZWF0ZShuZXdBY3Rpb24sIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpOiBDYXJkUGxheWVkRnJvbUhhbmRBY3Rpb24ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhcmRQbGF5ZWRGcm9tSGFuZEFjdGlvbihhbGxDYXJkcyksIG5ld0FjdGlvbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdXBkYXRlKGVudGl0aWVzOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uIHtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkUGxheWVkRnJvbUhhbmRBY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0ZW50aXRpZXMsXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBlbnJpY2hXaXRoVGV4dChhbGxFbnRpdGllc1NvRmFyOiBNYXA8bnVtYmVyLCBFbnRpdHk+KTogQ2FyZFBsYXllZEZyb21IYW5kQWN0aW9uIHtcclxuXHRcdGNvbnN0IG93bmVyTmFtZTogc3RyaW5nID0gQWN0aW9uSGVscGVyLmdldE93bmVyKHRoaXMuZW50aXRpZXMsIHRoaXMuZW50aXR5SWQpLm5hbWU7XHJcblx0XHRjb25zdCBjYXJkRW50aXR5ID0gdGhpcy5lbnRpdGllcy5nZXQodGhpcy5lbnRpdHlJZCk7XHJcblx0XHRjb25zdCBjYXJkSWQ6IHN0cmluZyA9IEFjdGlvbkhlbHBlci5nZXRDYXJkSWQodGhpcy5lbnRpdGllcywgdGhpcy5lbnRpdHlJZCwgYWxsRW50aXRpZXNTb0Zhcik7XHJcblx0XHRjb25zdCBjYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNhcmRJZCk7XHJcblx0XHRjb25zdCBjYXJkTmFtZSA9IGNhcmQgPyBjYXJkLm5hbWUgOiAnb25lIGNhcmQnO1xyXG5cdFx0bGV0IHBsYXlWZXJiID0gJ3BsYXlzJztcclxuXHRcdGlmIChjYXJkRW50aXR5LmdldFRhZyhHYW1lVGFnLkNBUkRUWVBFKSA9PT0gQ2FyZFR5cGUuV0VBUE9OKSB7XHJcblx0XHRcdHBsYXlWZXJiID0gJ2VxdWlwcyc7XHJcblx0XHR9XHJcblx0XHRjb25zdCB0YXJnZXRUZXh0ID0gc3VwZXIuZ2VuZXJhdGVUYXJnZXRzVGV4dChhbGxFbnRpdGllc1NvRmFyKTtcclxuXHRcdGNvbnN0IHRhcmdldFRleHRUb0Rpc3BsYXkgPSB0YXJnZXRUZXh0ICYmIHRhcmdldFRleHQubGVuZ3RoID4gMCA/IGBcXG4ke3RhcmdldFRleHR9YCA6ICcnO1xyXG5cdFx0Y29uc3QgdGV4dFJhdyA9IGBcXHQke293bmVyTmFtZX0gJHtwbGF5VmVyYn0gJHtjYXJkTmFtZX0ke3RhcmdldFRleHRUb0Rpc3BsYXl9YDtcclxuXHRcdC8vIGlmICh0aGlzLmVudGl0eUlkID09PSAzOCkge1xyXG5cdFx0Ly8gXHRjb25zb2xlLndhcm4oJ2RlZmlsZSBhY3Rpb24nLCBvd25lck5hbWUsIGNhcmRFbnRpdHksIGNhcmRJZCwgY2FyZCwgY2FyZE5hbWUsIHRhcmdldFRleHQpO1xyXG5cdFx0Ly8gfVxyXG5cdFx0Ly8gLy8gY29uc29sZS5sb2coJ2VucmljaGluZyBjYXJkIHBsYXllZCBmcm9tIGhhbmQgYWN0aW9uIHRleHQnLCB0YXJnZXRUZXh0LCB0ZXh0UmF3KTtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXJkUGxheWVkRnJvbUhhbmRBY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0dGV4dFJhdyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGdldEluc3RhbmNlKCk6IEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gbmV3IENhcmRQbGF5ZWRGcm9tSGFuZEFjdGlvbih0aGlzLmFsbENhcmRzKTtcclxuXHR9XHJcbn1cclxuIl19