From eee1a721ad10bc8ab8077b3ef3bb266033345f9a Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Sat, 8 Aug 2020 12:11:15 -0400 Subject: [PATCH] Update containers to have a capacity based on the owner's mass --- src/game/creatures/cafat.ts | 4 ++-- src/game/creatures/dragon.ts | 4 ++-- src/game/creatures/geta.ts | 12 ++++++------ src/game/creatures/kenzie.ts | 2 +- src/game/creatures/kuro.ts | 8 ++++---- src/game/creatures/player.ts | 4 ++-- src/game/creatures/shingo.ts | 6 +++--- src/game/creatures/withers.ts | 6 +++--- src/game/creatures/wolf.ts | 12 ++++++------ src/game/vore.ts | 6 +++++- src/game/words.ts | 16 +++++++++++----- 11 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/game/creatures/cafat.ts b/src/game/creatures/cafat.ts index d3139af..460b0b6 100644 --- a/src/game/creatures/cafat.ts +++ b/src/game/creatures/cafat.ts @@ -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 } diff --git a/src/game/creatures/dragon.ts b/src/game/creatures/dragon.ts index b145958..50ceeb5 100644 --- a/src/game/creatures/dragon.ts +++ b/src/game/creatures/dragon.ts @@ -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 } diff --git a/src/game/creatures/geta.ts b/src/game/creatures/geta.ts index 5dea6ec..8604004 100644 --- a/src/game/creatures/geta.ts +++ b/src/game/creatures/geta.ts @@ -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 diff --git a/src/game/creatures/kenzie.ts b/src/game/creatures/kenzie.ts index 838d447..d616a33 100644 --- a/src/game/creatures/kenzie.ts +++ b/src/game/creatures/kenzie.ts @@ -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 } diff --git a/src/game/creatures/kuro.ts b/src/game/creatures/kuro.ts index 501df1c..4787504 100644 --- a/src/game/creatures/kuro.ts +++ b/src/game/creatures/kuro.ts @@ -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 } diff --git a/src/game/creatures/player.ts b/src/game/creatures/player.ts index 8fc0a1d..c16472a 100644 --- a/src/game/creatures/player.ts +++ b/src/game/creatures/player.ts @@ -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 diff --git a/src/game/creatures/shingo.ts b/src/game/creatures/shingo.ts index b4ec908..c7bf6c3 100644 --- a/src/game/creatures/shingo.ts +++ b/src/game/creatures/shingo.ts @@ -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 } diff --git a/src/game/creatures/withers.ts b/src/game/creatures/withers.ts index bd2fe7d..4702cb6 100644 --- a/src/game/creatures/withers.ts +++ b/src/game/creatures/withers.ts @@ -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 } diff --git a/src/game/creatures/wolf.ts b/src/game/creatures/wolf.ts index 89e83e5..2db81ef 100644 --- a/src/game/creatures/wolf.ts +++ b/src/game/creatures/wolf.ts @@ -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 } diff --git a/src/game/vore.ts b/src/game/vore.ts index 11cb736..8c7546b 100644 --- a/src/game/vore.ts +++ b/src/game/vore.ts @@ -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, public capacity: number) { + constructor (name: Noun, public owner: Vore, public voreTypes: Set, 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 = (user, target, args) => { return new LogLine(`${user.name.capital} ${user.name.conjugate(this.consumeVerb)} ${target.name.objective} in ${user.pronouns.possessive} ${args.container.name}.`) } diff --git a/src/game/words.ts b/src/game/words.ts index 70bf32b..b1df047 100644 --- a/src/game/words.ts +++ b/src/game/words.ts @@ -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([