import { NoPassDecider, AI } from '@/game/ai' import { CompositionAction, UniformRandomDamageFormula, Damage, DamageType, FractionDamageFormula, Side, Stat, StatDamageFormula, Vigor } from '@/game/combat' import { AttackAction } from '@/game/combat/actions' import { PairCondition, TogetherCondition } from '@/game/combat/conditions' import { ConsumeConsequence, DamageConsequence, DrainConsequence, StatusConsequence } from '@/game/combat/consequences' import { LogGroupConsequence } from '@/game/combat/groupConsequences' import { PreyTargeter, SideTargeter, SoloTargeter } from '@/game/combat/targeters' import { CompositionTest, OpposedStatScorer, TestCategory } from '@/game/combat/tests' import { Creature } from '@/game/creature' import { LogLine, nilLog } from '@/game/interface' import { ImproperNoun, MalePronouns, ProperNoun, Verb } from '@/game/language' import { anyVore, Stomach } from '@/game/vore' export default class Samuel extends Creature { constructor () { super( new ProperNoun("Samuel"), new ImproperNoun("wolf"), MalePronouns, { Power: 20, Toughness: 10, Agility: 30, Reflexes: 10, Charm: 30, Willpower: 15 }, anyVore, new Set(), 10 ) this.side = Side.Monsters this.ai = (new AI([new NoPassDecider()], this)) this.actions.push(new AttackAction(new UniformRandomDamageFormula(new Damage({ type: DamageType.Slash, amount: 10, target: Vigor.Health }), 0.5), new Verb("claw", "claws", "claws", "clawed"))) } }