"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const BaseForLines_1 = require("./BaseForLines");
// Abstract class
class GameSound extends BaseForLines_1.BaseForLines {
    constructor(source, soundCode) {
        super(source);
        this.soundCode = soundCode;
    }
}
exports.GameSound = GameSound;
class GameSoundSfx extends GameSound {
    constructor(source, sfxName, soundCode) {
        super(source, soundCode);
        this.sfxName = sfxName;
    }
}
exports.GameSoundSfx = GameSoundSfx;
class GameSoundSimpleEnum extends GameSound {
    constructor(source, simpleEventName, soundCode) {
        super(source, soundCode);
        this.simpleEventName = simpleEventName;
    }
}
exports.GameSoundSimpleEnum = GameSoundSimpleEnum;
// TODO: Link this up to the Object, rather than just storing the spriteName
class GameSoundNormal extends GameSound {
    constructor(source, sprite, conditionEnum, soundCode) {
        super(source, soundCode);
        this.tile = sprite;
        this.conditionEnum = conditionEnum;
    }
}
exports.GameSoundNormal = GameSoundNormal;
class GameSoundMoveSimple extends GameSound {
    constructor(source, sprite, soundCode) {
        super(source, soundCode);
        this.tile = sprite;
    }
}
exports.GameSoundMoveSimple = GameSoundMoveSimple;
class GameSoundMoveDirection extends GameSound {
    constructor(source, sprite, directionEnum, soundCode) {
        super(source, soundCode);
        this.tile = sprite;
        this.directionEnum = directionEnum;
    }
}
exports.GameSoundMoveDirection = GameSoundMoveDirection;
//# sourceMappingURL=sound.js.map