@firestone-hs/replay-parser
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.
37 lines • 6.82 kB
JavaScript
import { ActionHelper } from '../../services/action/action-helper';
import { Action } from './action';
export class AttachingEnchantmentAction extends Action {
constructor(allCards) {
super(allCards);
}
static create(newAction, allCards) {
return Object.assign(new AttachingEnchantmentAction(allCards), newAction);
}
update(entities) {
return Object.assign(new AttachingEnchantmentAction(this.allCards), this, {
entities,
});
}
enrichWithText(allEntitiesSoFar) {
const creatorCardId = ActionHelper.getCardId(this.entities, this.originId, allEntitiesSoFar);
const creatorCard = this.allCards.getCard(creatorCardId);
const enchantmentCard = this.allCards.getCard(this.enchantmentCardId);
const targetCardNames = this.targetIds
.map(targetId => this.entities.get(targetId))
// There are some weird cases where the entity is not defined in the XML itself
.filter(targetEntity => targetEntity)
.map(targetEntity => targetEntity.cardID
? this.allCards.getCard(targetEntity.cardID).name
: // Enchantments sometimes target the player itself, not the hero
targetEntity.name)
.join(', ');
const textRaw = `\t${creatorCard.name} enchants ${targetCardNames} with ${enchantmentCard.name}`;
return Object.assign(new AttachingEnchantmentAction(this.allCards), this, {
textRaw,
});
}
getInstance() {
return new AttachingEnchantmentAction(this.allCards);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoaW5nLWVuY2hhbnRtZW50LWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcGxheS1wYXJzZXIvc3JjL2xpYi9tb2RlbHMvYWN0aW9uL2F0dGFjaGluZy1lbmNoYW50bWVudC1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSW5FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLE1BQU07SUFLckQsWUFBWSxRQUF5QjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQXlCO1FBQ3hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBNkI7UUFDMUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUN6RSxRQUFRO1NBQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxnQkFBcUM7UUFDMUQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUzthQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QywrRUFBK0U7YUFDOUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3BDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUNuQixZQUFZLENBQUMsTUFBTTtZQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUk7WUFDakQsQ0FBQyxDQUFDLGdFQUFnRTtnQkFDL0QsWUFBNkIsQ0FBQyxJQUFJLENBQ3RDO2FBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUMsSUFBSSxhQUFhLGVBQWUsU0FBUyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakcsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtZQUN6RSxPQUFPO1NBQ1AsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDcEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25IZWxwZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY3Rpb24vYWN0aW9uLWhlbHBlcic7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZ2FtZS9lbnRpdHknO1xyXG5pbXBvcnQgeyBQbGF5ZXJFbnRpdHkgfSBmcm9tICcuLi9nYW1lL3BsYXllci1lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcbmltcG9ydCB7IEhhc1RhcmdldHMgfSBmcm9tICcuL2hhcy10YXJnZXRzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2hpbmdFbmNoYW50bWVudEFjdGlvbiBleHRlbmRzIEFjdGlvbiBpbXBsZW1lbnRzIEhhc1RhcmdldHMge1xyXG5cdHJlYWRvbmx5IG9yaWdpbklkOiBudW1iZXI7XHJcblx0cmVhZG9ubHkgZW5jaGFudG1lbnRDYXJkSWQ6IHN0cmluZztcclxuXHRyZWFkb25seSB0YXJnZXRJZHM6IHJlYWRvbmx5IG51bWJlcltdO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihhbGxDYXJkczogQWxsQ2FyZHNTZXJ2aWNlKSB7XHJcblx0XHRzdXBlcihhbGxDYXJkcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGNyZWF0ZShuZXdBY3Rpb24sIGFsbENhcmRzOiBBbGxDYXJkc1NlcnZpY2UpOiBBdHRhY2hpbmdFbmNoYW50bWVudEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQXR0YWNoaW5nRW5jaGFudG1lbnRBY3Rpb24oYWxsQ2FyZHMpLCBuZXdBY3Rpb24pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHVwZGF0ZShlbnRpdGllczogTWFwPG51bWJlciwgRW50aXR5Pik6IEF0dGFjaGluZ0VuY2hhbnRtZW50QWN0aW9uIHtcclxuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBBdHRhY2hpbmdFbmNoYW50bWVudEFjdGlvbih0aGlzLmFsbENhcmRzKSwgdGhpcywge1xyXG5cdFx0XHRlbnRpdGllcyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGVucmljaFdpdGhUZXh0KGFsbEVudGl0aWVzU29GYXI6IE1hcDxudW1iZXIsIEVudGl0eT4pOiBBdHRhY2hpbmdFbmNoYW50bWVudEFjdGlvbiB7XHJcblx0XHRjb25zdCBjcmVhdG9yQ2FyZElkID0gQWN0aW9uSGVscGVyLmdldENhcmRJZCh0aGlzLmVudGl0aWVzLCB0aGlzLm9yaWdpbklkLCBhbGxFbnRpdGllc1NvRmFyKTtcclxuXHRcdGNvbnN0IGNyZWF0b3JDYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKGNyZWF0b3JDYXJkSWQpO1xyXG5cdFx0Y29uc3QgZW5jaGFudG1lbnRDYXJkID0gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKHRoaXMuZW5jaGFudG1lbnRDYXJkSWQpO1xyXG5cdFx0Y29uc3QgdGFyZ2V0Q2FyZE5hbWVzID0gdGhpcy50YXJnZXRJZHNcclxuXHRcdFx0Lm1hcCh0YXJnZXRJZCA9PiB0aGlzLmVudGl0aWVzLmdldCh0YXJnZXRJZCkpXHJcblx0XHRcdC8vIFRoZXJlIGFyZSBzb21lIHdlaXJkIGNhc2VzIHdoZXJlIHRoZSBlbnRpdHkgaXMgbm90IGRlZmluZWQgaW4gdGhlIFhNTCBpdHNlbGZcclxuXHRcdFx0LmZpbHRlcih0YXJnZXRFbnRpdHkgPT4gdGFyZ2V0RW50aXR5KVxyXG5cdFx0XHQubWFwKHRhcmdldEVudGl0eSA9PlxyXG5cdFx0XHRcdHRhcmdldEVudGl0eS5jYXJkSURcclxuXHRcdFx0XHRcdD8gdGhpcy5hbGxDYXJkcy5nZXRDYXJkKHRhcmdldEVudGl0eS5jYXJkSUQpLm5hbWVcclxuXHRcdFx0XHRcdDogLy8gRW5jaGFudG1lbnRzIHNvbWV0aW1lcyB0YXJnZXQgdGhlIHBsYXllciBpdHNlbGYsIG5vdCB0aGUgaGVyb1xyXG5cdFx0XHRcdFx0ICAodGFyZ2V0RW50aXR5IGFzIFBsYXllckVudGl0eSkubmFtZSxcclxuXHRcdFx0KVxyXG5cdFx0XHQuam9pbignLCAnKTtcclxuXHRcdGNvbnN0IHRleHRSYXcgPSBgXFx0JHtjcmVhdG9yQ2FyZC5uYW1lfSBlbmNoYW50cyAke3RhcmdldENhcmROYW1lc30gd2l0aCAke2VuY2hhbnRtZW50Q2FyZC5uYW1lfWA7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQXR0YWNoaW5nRW5jaGFudG1lbnRBY3Rpb24odGhpcy5hbGxDYXJkcyksIHRoaXMsIHtcclxuXHRcdFx0dGV4dFJhdyxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGdldEluc3RhbmNlKCk6IEFjdGlvbiB7XHJcblx0XHRyZXR1cm4gbmV3IEF0dGFjaGluZ0VuY2hhbnRtZW50QWN0aW9uKHRoaXMuYWxsQ2FyZHMpO1xyXG5cdH1cclxufVxyXG4iXX0=