|
|
|
@@ -5,6 +5,33 @@ import { VoreType, Stomach, InnerStomach, Container, Bowels } from '../vore' |
|
|
|
import { LogLine, LogLines, LogEntry, FAElem, CompositeLog, ImgElem } from '../interface' |
|
|
|
import { Wolf } from '../creatures' |
|
|
|
|
|
|
|
class BellyCrushAction extends AttackAction { |
|
|
|
successLines = new POVPairArgs<Entity, Entity, { damage: Damage }>([ |
|
|
|
[[POV.First, POV.Third], (user, target, args) => new CompositeLog(new LogLine( |
|
|
|
`You crush on ${target.name} with your belly for `, |
|
|
|
args.damage.renderShort() |
|
|
|
), new ImgElem('./media/cafat/images/belly-crush.webp'))], |
|
|
|
[[POV.Third, POV.First], (user, target, args) => new CompositeLog(new LogLine( |
|
|
|
`${user.name.capital} crushes on you with ${user.pronouns.possessive} belly for `, |
|
|
|
args.damage.renderShort() |
|
|
|
), new ImgElem('./media/cafat/images/belly-crush.webp'))], |
|
|
|
[[POV.Third, POV.Third], (user, target, args) => new CompositeLog(new LogLine( |
|
|
|
`${user.name.capital} crushes on ${target.name} with ${user.pronouns.possessive} belly for `, |
|
|
|
args.damage.renderShort() |
|
|
|
), new ImgElem('./media/cafat/images/belly-crush.webp'))] |
|
|
|
]) |
|
|
|
|
|
|
|
constructor (private _damage: Damage) { |
|
|
|
super(_damage) |
|
|
|
this.name = 'Belly Crush' |
|
|
|
} |
|
|
|
|
|
|
|
execute (user: Creature, target: Creature): LogEntry { |
|
|
|
this.damage = this._damage.scale(user.bulk / 25 + 1) |
|
|
|
return super.execute(user, target) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class BelchAction extends AttackAction { |
|
|
|
successLines = new POVPairArgs<Entity, Entity, { damage: Damage }>([ |
|
|
|
[[POV.First, POV.Third], (user, target, args) => new CompositeLog(new LogLine( |
|
|
|
@@ -96,6 +123,8 @@ export class Cafat extends Creature { |
|
|
|
this.actions.push(transfer) |
|
|
|
this.actions.push(new TransferAction(lowerStomach, stomach)) |
|
|
|
|
|
|
|
this.actions.push(new AttackAction(new Damage({ amount: 40, type: DamageType.Crush, target: Vigor.Health }))) |
|
|
|
this.actions.push(new BellyCrushAction(new Damage({ amount: 10, type: DamageType.Crush, target: Vigor.Health }, { amount: 10, type: DamageType.Dominance, target: Vigor.Willpower }))) |
|
|
|
this.actions.push(new BelchAction(new Damage( |
|
|
|
{ amount: 100, target: Vigor.Willpower, type: DamageType.Acid } |
|
|
|
))) |
|
|
|
|