| @@ -83,7 +83,7 @@ export class Cafat extends Creature { | |||||
| this.side = Side.Monsters | 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: 20, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 10, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 10, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 10, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 10, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -93,7 +93,7 @@ export class Cafat extends Creature { | |||||
| this.containers.push(stomach) | 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: 40, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -20,7 +20,7 @@ export class Dragon extends Creature { | |||||
| this.side = Side.Monsters | 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: 40, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 20, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 20, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -28,7 +28,7 @@ export class Dragon extends Creature { | |||||
| this.containers.push(stomach) | 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: 10, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 50, type: DamageType.Dominance, target: Vigor.Resolve } | { 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 }, | { 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]), | ||||
| new Set([VoreType.Oral, VoreType.Anal, VoreType.Cock]), | new Set([VoreType.Oral, VoreType.Anal, VoreType.Cock]), | ||||
| 100 | |||||
| 40 | |||||
| ) | ) | ||||
| this.side = Side.Monsters | 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: 100, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| )) | )) | ||||
| this.containers.push(stomach) | 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -42,7 +42,7 @@ export class Geta extends Creature { | |||||
| this.otherActions.push(new FeedAction(stomach)) | 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: 10, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 50, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 50, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 150, type: DamageType.Dominance, target: Vigor.Resolve } | { 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: 50, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 50, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 50, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -152,7 +152,7 @@ export class Geta extends Creature { | |||||
| crushAction | crushAction | ||||
| ) | ) | ||||
| const hand = new Hand(this, 10) | |||||
| const hand = new Hand(this, 0.25) | |||||
| this.otherContainers.push( | this.otherContainers.push( | ||||
| hand | hand | ||||
| @@ -39,7 +39,7 @@ export class Kenzie extends Creature { | |||||
| this.side = Side.Monsters | 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.Acid, target: Vigor.Health }, | ||||
| { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -18,14 +18,14 @@ export class Kuro extends Creature { | |||||
| this.side = Side.Monsters | 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: 100, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 40, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 80, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| )) | )) | ||||
| this.containers.push(stomach) | 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 90, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 120, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -37,13 +37,13 @@ export class Kuro extends Creature { | |||||
| this.otherActions.push(new FeedAction(stomach)) | 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: 10, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve } | { 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: 50, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 25, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 150, type: DamageType.Dominance, target: Vigor.Resolve } | { 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 })))) | 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) | 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.containers.push(bowels) | ||||
| this.perspective = POV.Second | this.perspective = POV.Second | ||||
| @@ -38,7 +38,7 @@ class Hand extends NormalContainer { | |||||
| struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | ||||
| constructor (owner: Creature) { | 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( | this.actions.push(new TrappedAction( | ||||
| "Grip", | "Grip", | ||||
| "Give your victim the squeeze", | "Give your victim the squeeze", | ||||
| @@ -65,7 +65,7 @@ class Paw extends NormalContainer { | |||||
| struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | struggleVerb: Verb = new Verb('squirm', 'squirms', 'squirming', 'squirmed') | ||||
| constructor (owner: Creature) { | 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( | this.actions.push(new TrappedAction( | ||||
| "Smother", | "Smother", | ||||
| @@ -162,7 +162,7 @@ export class Shingo extends Creature { | |||||
| this.side = Side.Monsters | 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: 200, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 100, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 100, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -84,7 +84,7 @@ class MawContainer extends NormalContainer { | |||||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | ||||
| constructor (owner: Vore, stomach: VoreContainer) { | 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) | const transfer = new TransferAction(this, stomach) | ||||
| transfer.verb = new Verb('gulp') | transfer.verb = new Verb('gulp') | ||||
| @@ -122,7 +122,7 @@ class BootContainer extends NormalContainer { | |||||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | ||||
| constructor (owner: Vore) { | constructor (owner: Vore) { | ||||
| super(new ImproperNoun('boot'), owner, new Set(), 50) | |||||
| super(new ImproperNoun('boot'), owner, new Set(), 0.05) | |||||
| const flex = new FlexToesAction( | const flex = new FlexToesAction( | ||||
| new UniformRandomDamageFormula(new Damage( | new UniformRandomDamageFormula(new Damage( | ||||
| @@ -317,7 +317,7 @@ export class Withers extends Creature { | |||||
| this.side = Side.Monsters | 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: 300, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 200, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 200, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 200, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 200, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -28,14 +28,14 @@ export class Wolf extends Creature { | |||||
| this.side = Side.Monsters | 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: 60, type: DamageType.Acid, target: Vigor.Health }, | ||||
| { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 30, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 30, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| )) | )) | ||||
| this.containers.push(stomach) | 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| @@ -47,25 +47,25 @@ export class Wolf extends Creature { | |||||
| this.otherActions.push(new FeedAction(stomach)) | 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | { 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | ||||
| ), cock) | ), 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | { 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: 30, type: DamageType.Crush, target: Vigor.Health }, | ||||
| { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | { amount: 60, type: DamageType.Crush, target: Vigor.Stamina }, | ||||
| { amount: 60, type: DamageType.Dominance, target: Vigor.Resolve } | { 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') | releaseVerb = new Verb('release', 'releases', 'releasing', 'released') | ||||
| struggleVerb = new Verb('struggle', 'struggles', 'struggling', 'struggled') | 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.name = name.all | ||||
| this.actions.push(new DevourAction(this)) | this.actions.push(new DevourAction(this)) | ||||
| this.actions.push(new ReleaseAction(this)) | this.actions.push(new ReleaseAction(this)) | ||||
| this.actions.push(new StruggleAction(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) => { | 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}.`) | 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([ | export const Swallows = new RandomWord([ | ||||
| new Verb("swallow"), | new Verb("swallow"), | ||||
| new Verb("gulp") | |||||
| new Verb("gulp"), | |||||
| new Verb("consume", "consumes", "consuming", "consumed") | |||||
| ]) | ]) | ||||
| export const Churns = new RandomWord([ | export const Churns = new RandomWord([ | ||||
| @@ -25,16 +26,21 @@ export const Churns = new RandomWord([ | |||||
| new Verb("stew") | new Verb("stew") | ||||
| ]) | ]) | ||||
| export const Dark = new RandomWord([ | |||||
| new Adjective("dark"), | |||||
| new Adjective("lightless"), | |||||
| new Adjective("pitch-black") | |||||
| ]) | |||||
| export const Digests = new RandomWord([ | 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([ | export const Absorbs = new RandomWord([ | ||||
| new Verb("absorb"), | new Verb("absorb"), | ||||
| new Verb("soak up", "soaks up", "soaking up", "soaked up"), | 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([ | export const Struggles = new RandomWord([ | ||||