Home Reference Source Repository

app/events/ZeroDamageEvent.js

import GameEvent from './GameEvent.js';

import Creature from '../entities/creatures/Creature.js';

export default class ZeroDamageEvent extends GameEvent {
    constructor(dungeon, creature, type) {
        super(dungeon);
        if(!(creature instanceof Creature)) {
            throw new Error('Second parameter must be a Creature');
        }
        if(typeof type !== 'string') {
            throw new Error('Third parameter must be a string');
        }
        this._creature = creature;
        this._type = type;
    }

    /**
     * @function getCreature()
     * @memberof ZeroDamageEvent
     * @return {Creature}
     */
    getCreature() {
        return this._creature;
    }

    getDamageType() {
        return this._type;
    }

    /**
     * @function getText()
     * @memberof ZeroDamageEvent
     * @description A text description of the event
     * @return {String}
     */
    getText() {
        var creature = this.getCreature();
        return `${creature} took no damage`;
    }
}