step-sequence-generator
Version:
A step sequence generator for figure skating programs
32 lines (31 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ThreeTurnsBlockGenerator = void 0;
const AbstractSequenceGenerator_1 = require("./AbstractSequenceGenerator");
const filter_stategy_name_enum_1 = require("../../shared/enums/filter-stategy-name.enum");
const THREE_TURNS_BLOCK_LENGTH = 3;
class ThreeTurnsBlockGenerator extends AbstractSequenceGenerator_1.AbstractSequenceGenerator {
constructor(data) {
super(data);
}
generate(movement, distanceFactor) {
const COUNT_CORRECTION = 1;
this.context.currentStep = movement;
this.counter.resetTurns();
this.resetSequence();
for (let i = 0; i < THREE_TURNS_BLOCK_LENGTH; i++) {
const newMovement = this.generateMovement(distanceFactor, this.getFilterStrategy(filter_stategy_name_enum_1.FilterStrategyName.THREE_DIFFICULT_TURNS));
newMovement.threeTurnsBlockInfo = {
blockNumber: this.counter.amount + COUNT_CORRECTION,
orderNumber: i + COUNT_CORRECTION,
};
this.update(newMovement);
}
this.counter.increaseAmount();
return this.stepSequence;
}
get blockAmount() {
return this.counter.amount;
}
}
exports.ThreeTurnsBlockGenerator = ThreeTurnsBlockGenerator;