| @@ -83,7 +83,7 @@ export class Cafat extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 100, new Damage( | |||
| const stomach = new Stomach(this, 1, new Damage( | |||
| { amount: 20, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 10, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 10, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -93,7 +93,7 @@ export class Cafat extends Creature { | |||
| this.containers.push(stomach) | |||
| const lowerStomach = new InnerStomach(this, 100, new Damage( | |||
| const lowerStomach = new InnerStomach(this, 1.5, new Damage( | |||
| { amount: 40, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -20,7 +20,7 @@ export class Dragon extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 200, new Damage( | |||
| const stomach = new Stomach(this, 0.5, new Damage( | |||
| { amount: 40, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -28,7 +28,7 @@ export class Dragon extends Creature { | |||
| this.containers.push(stomach) | |||
| const bowels = new Bowels(this, 200, new Damage( | |||
| const bowels = new Bowels(this, 0.5, new Damage( | |||
| { amount: 10, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 50, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -18,19 +18,19 @@ export class Geta extends Creature { | |||
| { Toughness: 10, Power: 10, Speed: 30, Willpower: 15, Charm: 40 }, | |||
| new Set([VoreType.Oral, VoreType.Anal, VoreType.Cock]), | |||
| new Set([VoreType.Oral, VoreType.Anal, VoreType.Cock]), | |||
| 100 | |||
| 40 | |||
| ) | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 10, new Damage( | |||
| const stomach = new Stomach(this, 0.25, new Damage( | |||
| { amount: 100, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| this.containers.push(stomach) | |||
| const bowels = new Bowels(this, 10, new Damage( | |||
| const bowels = new Bowels(this, 0.25, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -42,7 +42,7 @@ export class Geta extends Creature { | |||
| this.otherActions.push(new FeedAction(stomach)) | |||
| const cock = new Cock(this, 10, new Damage( | |||
| const cock = new Cock(this, 0.25, new Damage( | |||
| { amount: 10, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 50, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 150, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -85,7 +85,7 @@ export class Geta extends Creature { | |||
| ) | |||
| ) | |||
| const balls = new Balls(this, 10, new Damage( | |||
| const balls = new Balls(this, 0.25, new Damage( | |||
| { amount: 50, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 50, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -152,7 +152,7 @@ export class Geta extends Creature { | |||
| crushAction | |||
| ) | |||
| const hand = new Hand(this, 10) | |||
| const hand = new Hand(this, 0.25) | |||
| this.otherContainers.push( | |||
| hand | |||
| @@ -39,7 +39,7 @@ export class Kenzie extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 50, new Damage( | |||
| const stomach = new Stomach(this, 0.1, new Damage( | |||
| { amount: 100, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -18,14 +18,14 @@ export class Kuro extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 50, new Damage( | |||
| const stomach = new Stomach(this, 0.5, new Damage( | |||
| { amount: 100, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| this.containers.push(stomach) | |||
| const bowels = new Bowels(this, 50, new Damage( | |||
| const bowels = new Bowels(this, 0.5, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -37,13 +37,13 @@ export class Kuro extends Creature { | |||
| this.otherActions.push(new FeedAction(stomach)) | |||
| const cock = new Cock(this, 50, new Damage( | |||
| const cock = new Cock(this, 0.5, new Damage( | |||
| { amount: 10, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| const balls = new Balls(this, 50, new Damage( | |||
| const balls = new Balls(this, 0.5, new Damage( | |||
| { amount: 50, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 150, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -18,10 +18,10 @@ export class Player extends Creature { | |||
| this.actions.push(new AttackAction(new ConstantDamageFormula(new Damage({ type: DamageType.Pierce, amount: 20, target: Vigor.Health }, { type: DamageType.Pierce, amount: 20, target: Vigor.Stamina })))) | |||
| const stomach = new Stomach(this, 100, new Damage({ amount: 20, type: DamageType.Acid, target: Vigor.Health }, { amount: 10, type: DamageType.Crush, target: Vigor.Health })) | |||
| const stomach = new Stomach(this, 2, new Damage({ amount: 20, type: DamageType.Acid, target: Vigor.Health }, { amount: 10, type: DamageType.Crush, target: Vigor.Health })) | |||
| this.containers.push(stomach) | |||
| const bowels = new Bowels(this, 100, new Damage({ amount: 20, type: DamageType.Crush, target: Vigor.Health })) | |||
| const bowels = new Bowels(this, 2, new Damage({ amount: 20, type: DamageType.Crush, target: Vigor.Health })) | |||
| this.containers.push(bowels) | |||
| this.perspective = POV.Second | |||
| @@ -38,7 +38,7 @@ class Hand extends NormalContainer { | |||
| struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | |||
| constructor (owner: Creature) { | |||
| super(new ImproperNoun('hand', 'hands'), owner, new Set(), 100) | |||
| super(new ImproperNoun('hand', 'hands'), owner, new Set(), 0.1) | |||
| this.actions.push(new TrappedAction( | |||
| "Grip", | |||
| "Give your victim the squeeze", | |||
| @@ -65,7 +65,7 @@ class Paw extends NormalContainer { | |||
| struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | |||
| constructor (owner: Creature) { | |||
| super(new ImproperNoun('paw', 'paws'), owner, new Set([VoreType.Oral]), 100) | |||
| super(new ImproperNoun('paw', 'paws'), owner, new Set([VoreType.Oral]), 0.1) | |||
| this.actions.push(new TrappedAction( | |||
| "Smother", | |||
| @@ -162,7 +162,7 @@ export class Shingo extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 50, new Damage( | |||
| const stomach = new Stomach(this, 0.1, new Damage( | |||
| { amount: 200, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -84,7 +84,7 @@ class MawContainer extends NormalContainer { | |||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | |||
| constructor (owner: Vore, stomach: VoreContainer) { | |||
| super(new ImproperNoun('maw'), owner, new Set([VoreType.Oral]), 50) | |||
| super(new ImproperNoun('maw'), owner, new Set([VoreType.Oral]), 0.05) | |||
| const transfer = new TransferAction(this, stomach) | |||
| transfer.verb = new Verb('gulp') | |||
| @@ -122,7 +122,7 @@ class BootContainer extends NormalContainer { | |||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | |||
| constructor (owner: Vore) { | |||
| super(new ImproperNoun('boot'), owner, new Set(), 50) | |||
| super(new ImproperNoun('boot'), owner, new Set(), 0.05) | |||
| const flex = new FlexToesAction( | |||
| new UniformRandomDamageFormula(new Damage( | |||
| @@ -317,7 +317,7 @@ export class Withers extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 50, new Damage( | |||
| const stomach = new Stomach(this, 0.1, new Damage( | |||
| { amount: 300, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 200, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 200, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -28,14 +28,14 @@ export class Wolf extends Creature { | |||
| this.side = Side.Monsters | |||
| const stomach = new Stomach(this, 50, new Damage( | |||
| const stomach = new Stomach(this, 2, new Damage( | |||
| { amount: 60, type: DamageType.Acid, target: Vigor.Health }, | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| this.containers.push(stomach) | |||
| const bowels = new Bowels(this, 50, new Damage( | |||
| const bowels = new Bowels(this, 2, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -47,25 +47,25 @@ export class Wolf extends Creature { | |||
| this.otherActions.push(new FeedAction(stomach)) | |||
| const cock = new Cock(this, 50, new Damage( | |||
| const cock = new Cock(this, 2, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| const balls = new Balls(this, 50, new Damage( | |||
| const balls = new Balls(this, 2, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| ), cock) | |||
| const slit = new Slit(this, 50, new Damage( | |||
| const slit = new Slit(this, 2, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| )) | |||
| const womb = new Womb(this, 50, new Damage( | |||
| const womb = new Womb(this, 2, new Damage( | |||
| { amount: 30, type: DamageType.Crush, target: Vigor.Health }, | |||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | |||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | |||
| @@ -145,13 +145,17 @@ export abstract class NormalContainer implements Container { | |||
| releaseVerb = new Verb('release', 'releases', 'releasing', 'released') | |||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | |||
| constructor (name: Noun, public owner: Vore, public voreTypes: Set<VoreType>, public capacity: number) { | |||
| constructor (name: Noun, public owner: Vore, public voreTypes: Set<VoreType>, public capacityFactor: number) { | |||
| this.name = name.all | |||
| this.actions.push(new DevourAction(this)) | |||
| this.actions.push(new ReleaseAction(this)) | |||
| this.actions.push(new StruggleAction(this)) | |||
| } | |||
| get capacity (): number { | |||
| return this.capacityFactor * this.owner.voreStats.Mass | |||
| } | |||
| consumeLine: PairLineArgs<Vore, { container: Container }> = (user, target, args) => { | |||
| return new LogLine(`${user.name.capital} ${user.name.conjugate(this.consumeVerb)} ${target.name.objective} in ${user.pronouns.possessive} ${args.container.name}.`) | |||
| } | |||
| @@ -15,7 +15,8 @@ export const Slick = new RandomWord([ | |||
| export const Swallows = new RandomWord([ | |||
| new Verb("swallow"), | |||
| new Verb("gulp") | |||
| new Verb("gulp"), | |||
| new Verb("consume", "consumes", "consuming", "consumed") | |||
| ]) | |||
| export const Churns = new RandomWord([ | |||
| @@ -25,16 +26,21 @@ export const Churns = new RandomWord([ | |||
| new Verb("stew") | |||
| ]) | |||
| export const Dark = new RandomWord([ | |||
| new Adjective("dark"), | |||
| new Adjective("lightless"), | |||
| new Adjective("pitch-black") | |||
| ]) | |||
| export const Digests = new RandomWord([ | |||
| new Verb("digest"), | |||
| new Verb("melt"), | |||
| new Verb("dissolve", "dissolves", "dissolving", "dissolved") | |||
| new Verb("digest") | |||
| ]) | |||
| export const Absorbs = new RandomWord([ | |||
| new Verb("absorb"), | |||
| new Verb("soak up", "soaks up", "soaking up", "soaked up"), | |||
| new Verb("melt") | |||
| new Verb("melt down", "melts down", "melting down", "melted down"), | |||
| new Verb("dissolve", "dissolves", "dissolving", "dissolved") | |||
| ]) | |||
| export const Struggles = new RandomWord([ | |||