Browse Source

Update containers to have a capacity based on the owner's mass

master
Fen Dweller 5 years ago
parent
commit
eee1a721ad
11 changed files with 45 additions and 35 deletions
  1. +2
    -2
      src/game/creatures/cafat.ts
  2. +2
    -2
      src/game/creatures/dragon.ts
  3. +6
    -6
      src/game/creatures/geta.ts
  4. +1
    -1
      src/game/creatures/kenzie.ts
  5. +4
    -4
      src/game/creatures/kuro.ts
  6. +2
    -2
      src/game/creatures/player.ts
  7. +3
    -3
      src/game/creatures/shingo.ts
  8. +3
    -3
      src/game/creatures/withers.ts
  9. +6
    -6
      src/game/creatures/wolf.ts
  10. +5
    -1
      src/game/vore.ts
  11. +11
    -5
      src/game/words.ts

+ 2
- 2
src/game/creatures/cafat.ts View File

@@ -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 }


+ 2
- 2
src/game/creatures/dragon.ts View File

@@ -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 }


+ 6
- 6
src/game/creatures/geta.ts View File

@@ -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


+ 1
- 1
src/game/creatures/kenzie.ts View File

@@ -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 }


+ 4
- 4
src/game/creatures/kuro.ts View File

@@ -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 }


+ 2
- 2
src/game/creatures/player.ts View File

@@ -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


+ 3
- 3
src/game/creatures/shingo.ts View File

@@ -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 }


+ 3
- 3
src/game/creatures/withers.ts View File

@@ -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 }


+ 6
- 6
src/game/creatures/wolf.ts View File

@@ -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 }


+ 5
- 1
src/game/vore.ts View File

@@ -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}.`)
} }


+ 11
- 5
src/game/words.ts View File

@@ -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([


Loading…
Cancel
Save