Home Reference Source Repository

app/entities/creatures/enemies/Bigfoot.js

import Creature from '../Creature.js';
import Strategies from '../strategies/Strategies.js';

import LightArmor from '../../armor/LightArmor.js';
import Weapon from '../../weapons/Weapon.js';
import DamageTypes from '../../DamageTypes.js';

import DashAttack from '../../../abilities/DashAttack.js';
import KnockbackEffect from '../../../effects/KnockbackEffect.js';

class Foot extends Weapon {
    getDamage() {
        return 4;
    }

    getRange() {
        return 1;
    }

    getDamageType() {
        return DamageTypes.MELEE_PHYSICAL;
    }

    onAttack(dungeon, creature, target) {
        new KnockbackEffect(1).apply(dungeon, creature, target);
    }
}

export default class Bigfoot extends Creature {
    /**
     * An enemy with a flying kick attack
     */
    constructor() {
        super();
        this.setMeleeWeapon(new Foot());
        this.addAbility(new DashAttack());
        this.setStrategy(new Strategies.CompositeStrategy(
            new Strategies.OffensiveTargettedAbilityStrategy(DashAttack),
            new Strategies.ChaseStrategy(),
            new Strategies.RandomWalkStrategy(),
            new Strategies.IdleStrategy()
        ));
    }

    getSpeed() {
        return 475;
    }

    getBaseHP() {
        return 5;
    }

    getBaseMana() {
        return 10;
    }
}