///
class OrcDebugger extends Humanoid {
public static nameModifier = new Shuffler([
"Ugly", "Muscular", "Veiny", "Angry", "Sad", "Smart", "Agile", "Short", "Bulging", "Intense", "Smouldering"
]);
public static counter = 1;
public constructor () {
super({
isMale: true,
name : (() => {
let nameMod = OrcDebugger.nameModifier.getOne();
if (nameMod == undefined) {
nameMod = (OrcDebugger.counter++).toString();
}
return nameMod + " Orc";
})(),
unique : true,
description : "This is one extremely ugly fellow."
});
this.AI.wanderer = true;
this.AI.picksShinies = true;
}
}
ActionTalk.carry.createAndAddRule({
name : "Talking to the orc",
firstPriority : ActionTalk.PRIORITY_GLOBAL_DIALOGUE,
priority : ActionTalk.PRIORITY_COMMON_DIALOGUE,
conditions : (runner : RulebookRunner) => {
return runner.noun.getNoun(0) instanceof OrcDebugger;
},
code : (runner : RulebookRunner) => {
let orc = runner.noun.getNoun(0);
//await DialogueTrees.CompilableTest.execute();
let result = Dice.testAgainstRoll(
{name: "Charm + 2", value : WorldState.player.getStat(Attributes.Charm) + 2},
{name: "Orc's wits + 2", value : orc.getStat(Attributes.Intelligence) + 2}
);
if (result > 0) {
Elements.CurrentTurnHandler.printAsContent(new Say("You win!"));
} else {
Elements.CurrentTurnHandler.printAsContent(new Say("You lose."));
}
return true;
}
});