Name of this Description:
Attacker:
Target:
Weapon(s):

Description on Miss:


Description on Critical Hit:


Description on Hit:


Description on Knocked Down:


Description on Knocked Off:


Description on Killed:

(new CombatDescription(""))
    .setDescriptionFunction((actor, target, weapons, markers) => {
        let say = new Say();

        if (markers.includes(CombatHit.MISS)) {
            say.add();
        } else if (markers.includes(CombatHit.HIT)) {
            say.add();
        } else if (markers.includes(CombatHit.CRITICAL)) {
            say.add();
        }

        say.add(" ");

        if (markers.includes(CombatResult.KILLED)) {
            say.add();
        } else if (markers.includes(CombatResult.KNOCKED_OFF)) {
            say.add();
        } else if (markers.includes(CombatResult.KNOCKED)) {
            say.add();
        }

        return say;
    })
    .addUnit()
        .setActor()
        .setTarget()
        .setWeapon()
        .addMarker(AdaptiveDifferential.FULLYADAPTIVE(CombatHit.MISS, CombatHit.HIT, CombatHit.CRITICAL))
        .addMarker(AdaptiveDifferential.FULLYADAPTIVE(CombatResult.KNOCKED, CombatResult.KILLED, CombatResult.KNOCKED_OFF))
;