@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
JavaScript
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