Преглед изворни кода

Change containers to use damage formulas, not a plain Damage object

master
Fen Dweller пре 5 година
родитељ
комит
f53413bc96
11 измењених фајлова са 66 додато и 60 уклоњено
  1. +4
    -4
      src/game/creatures/cafat.ts
  2. +4
    -4
      src/game/creatures/dragon.ts
  3. +8
    -8
      src/game/creatures/geta.ts
  4. +4
    -2
      src/game/creatures/goldeneye.ts
  5. +3
    -3
      src/game/creatures/kenzie.ts
  6. +8
    -8
      src/game/creatures/kuro.ts
  7. +2
    -2
      src/game/creatures/player.ts
  8. +2
    -2
      src/game/creatures/shingo.ts
  9. +2
    -2
      src/game/creatures/withers.ts
  10. +12
    -12
      src/game/creatures/wolf.ts
  11. +17
    -13
      src/game/vore.ts

+ 4
- 4
src/game/creatures/cafat.ts Прегледај датотеку

@@ -83,21 +83,21 @@ export class Cafat extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 1, new Damage(
const stomach = new Stomach(this, 1, new ConstantDamageFormula(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 }
))
)))


stomach.name = new ImproperNoun("upper stomach", "upper stomachs").all stomach.name = new ImproperNoun("upper stomach", "upper stomachs").all


this.containers.push(stomach) this.containers.push(stomach)


const lowerStomach = new InnerStomach(this, 1.5, new Damage(
const lowerStomach = new InnerStomach(this, 1.5, new ConstantDamageFormula(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 }
), stomach)
)), stomach)


lowerStomach.name = new ImproperNoun("lower stomach", "lower stomachs").all lowerStomach.name = new ImproperNoun("lower stomach", "lower stomachs").all




+ 4
- 4
src/game/creatures/dragon.ts Прегледај датотеку

@@ -20,19 +20,19 @@ export class Dragon extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.5, new Damage(
const stomach = new Stomach(this, 0.5, new ConstantDamageFormula(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 }
))
)))


this.containers.push(stomach) this.containers.push(stomach)


const bowels = new Bowels(this, 0.5, new Damage(
const bowels = new Bowels(this, 0.5, new ConstantDamageFormula(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 }
))
)))


this.containers.push(bowels) this.containers.push(bowels)




+ 8
- 8
src/game/creatures/geta.ts Прегледај датотеку

@@ -23,18 +23,18 @@ export class Geta extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.25, new Damage(
const stomach = new Stomach(this, 0.25, new ConstantDamageFormula(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, 0.25, new Damage(
const bowels = new Bowels(this, 0.25, new ConstantDamageFormula(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 }
))
)))


this.containers.push(bowels) this.containers.push(bowels)


@@ -42,11 +42,11 @@ export class Geta extends Creature {


this.otherActions.push(new FeedAction(stomach)) this.otherActions.push(new FeedAction(stomach))


const cock = new Cock(this, 0.25, new Damage(
const cock = new Cock(this, 0.25, new ConstantDamageFormula(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 }
))
)))


cock.digestLine = (user, target, args) => { cock.digestLine = (user, target, args) => {
return new LogLine(`${user.name.capital.possessive} ${args.container.name} throbs as it abruptly absorbs ${target.name.objective}, transforming ${target.name.objective} into more of ${user.pronouns.possessive} meaty shaft.`) return new LogLine(`${user.name.capital.possessive} ${args.container.name} throbs as it abruptly absorbs ${target.name.objective}, transforming ${target.name.objective} into more of ${user.pronouns.possessive} meaty shaft.`)
@@ -85,11 +85,11 @@ export class Geta extends Creature {
) )
) )


const balls = new Balls(this, 0.25, new Damage(
const balls = new Balls(this, 0.25, new ConstantDamageFormula(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 }
), cock)
)), cock)


this.containers.push(balls) this.containers.push(balls)
this.containers.push(cock) this.containers.push(cock)


+ 4
- 2
src/game/creatures/goldeneye.ts Прегледај датотеку

@@ -109,8 +109,10 @@ class GoldeneyeStomach extends InnerVoreContainer {
owner, owner,
new Set([VoreType.Oral]), new Set([VoreType.Oral]),
900, 900,
new Damage(
{ amount: 1000, target: Vigor.Health, type: DamageType.Acid }
new ConstantDamageFormula(
new Damage(
{ amount: 1000, target: Vigor.Health, type: DamageType.Acid }
)
), ),
crop crop
) )


+ 3
- 3
src/game/creatures/kenzie.ts Прегледај датотеку

@@ -1,7 +1,7 @@
import { Creature } from "../creature" import { Creature } from "../creature"
import { ProperNoun, ImproperNoun, FemalePronouns, Verb } from '../language' import { ProperNoun, ImproperNoun, FemalePronouns, Verb } from '../language'
import { VoreType, Stomach } from '../vore' import { VoreType, Stomach } from '../vore'
import { Side, Damage, DamageType, Vigor, StatDamageFormula, Stat, VoreStat, DamageFormula } from '../combat'
import { Side, Damage, DamageType, Vigor, StatDamageFormula, Stat, VoreStat, DamageFormula, ConstantDamageFormula } from '../combat'
import { AttackAction, DevourAction } from '../combat/actions' import { AttackAction, DevourAction } from '../combat/actions'
import { LogEntry, LogLines } from '../interface' import { LogEntry, LogLines } from '../interface'
import { StunEffect, PredatorCounterEffect } from '../combat/effects' import { StunEffect, PredatorCounterEffect } from '../combat/effects'
@@ -39,11 +39,11 @@ export class Kenzie extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.1, new Damage(
const stomach = new Stomach(this, 0.1, new ConstantDamageFormula(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 }
))
)))


this.applyEffect(new PredatorCounterEffect(new DevourAction(stomach), 0.4)) this.applyEffect(new PredatorCounterEffect(new DevourAction(stomach), 0.4))




+ 8
- 8
src/game/creatures/kuro.ts Прегледај датотеку

@@ -18,18 +18,18 @@ export class Kuro extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.5, new Damage(
const stomach = new Stomach(this, 0.5, new ConstantDamageFormula(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, 0.5, new Damage(
const bowels = new Bowels(this, 0.5, new ConstantDamageFormula(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 }
))
)))


this.containers.push(bowels) this.containers.push(bowels)


@@ -37,17 +37,17 @@ export class Kuro extends Creature {


this.otherActions.push(new FeedAction(stomach)) this.otherActions.push(new FeedAction(stomach))


const cock = new Cock(this, 0.5, new Damage(
const cock = new Cock(this, 0.5, new ConstantDamageFormula(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, 0.5, new Damage(
const balls = new Balls(this, 0.5, new ConstantDamageFormula(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 }
), cock)
)), cock)


this.containers.push(balls) this.containers.push(balls)
this.containers.push(cock) this.containers.push(cock)


+ 2
- 2
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 })))) 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, 2, 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 ConstantDamageFormula(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, 2, new Damage({ amount: 20, type: DamageType.Crush, target: Vigor.Health }))
const bowels = new Bowels(this, 2, new ConstantDamageFormula(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


+ 2
- 2
src/game/creatures/shingo.ts Прегледај датотеку

@@ -158,11 +158,11 @@ export class Shingo extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.1, new Damage(
const stomach = new Stomach(this, 0.1, new ConstantDamageFormula(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 }
))
)))


this.containers.push(stomach) this.containers.push(stomach)




+ 2
- 2
src/game/creatures/withers.ts Прегледај датотеку

@@ -317,11 +317,11 @@ export class Withers extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 0.1, new Damage(
const stomach = new Stomach(this, 0.1, new ConstantDamageFormula(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 }
))
)))


this.containers.push(stomach) this.containers.push(stomach)
this.otherActions.push(new FeedAction(stomach)) this.otherActions.push(new FeedAction(stomach))


+ 12
- 12
src/game/creatures/wolf.ts Прегледај датотеку

@@ -28,18 +28,18 @@ export class Wolf extends Creature {


this.side = Side.Monsters this.side = Side.Monsters


const stomach = new Stomach(this, 2, new Damage(
const stomach = new Stomach(this, 2, new ConstantDamageFormula(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, 2, new Damage(
const bowels = new Bowels(this, 2, new ConstantDamageFormula(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 }
))
)))


this.containers.push(bowels) this.containers.push(bowels)


@@ -47,29 +47,29 @@ export class Wolf extends Creature {


this.otherActions.push(new FeedAction(stomach)) this.otherActions.push(new FeedAction(stomach))


const cock = new Cock(this, 2, new Damage(
const cock = new Cock(this, 2, new ConstantDamageFormula(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, 2, new Damage(
const balls = new Balls(this, 2, new ConstantDamageFormula(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, 2, new Damage(
const slit = new Slit(this, 2, new ConstantDamageFormula(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, 2, new Damage(
const womb = new Womb(this, 2, new ConstantDamageFormula(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 }
), slit)
)), slit)


this.containers.push(balls) this.containers.push(balls)
this.containers.push(cock) this.containers.push(cock)


+ 17
- 13
src/game/vore.ts Прегледај датотеку

@@ -1,5 +1,5 @@
import { Mortal } from './entity' import { Mortal } from './entity'
import { Damage, DamageType, Stats, Actionable, Action, Vigor, VoreStats, VisibleStatus, VoreStat, DamageInstance } from './combat'
import { Damage, DamageType, Stats, Actionable, Action, Vigor, VoreStats, VisibleStatus, VoreStat, DamageInstance, DamageFormula } from './combat'
import { LogLines, LogEntry, LogLine, nilLog } from './interface' import { LogLines, LogEntry, LogLine, nilLog } from './interface'
import { Noun, Pronoun, ImproperNoun, TextLike, Verb, SecondPersonPronouns, PronounAsNoun, FirstPersonPronouns, PairLineArgs, SoloLine, POV, RandomWord } from './language' import { Noun, Pronoun, ImproperNoun, TextLike, Verb, SecondPersonPronouns, PronounAsNoun, FirstPersonPronouns, PairLineArgs, SoloLine, POV, RandomWord } from './language'
import { DigestAction, DevourAction, ReleaseAction, StruggleAction, TransferAction } from './combat/actions' import { DigestAction, DevourAction, ReleaseAction, StruggleAction, TransferAction } from './combat/actions'
@@ -172,7 +172,7 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
digested: Array<Creature> = [] digested: Array<Creature> = []
absorbed: Array<Creature> = [] absorbed: Array<Creature> = []


constructor (name: Noun, owner: Creature, voreTypes: Set<VoreType>, capacity: number, private damage: Damage) {
constructor (name: Noun, owner: Creature, voreTypes: Set<VoreType>, capacity: number, private damage: DamageFormula) {
super(name, owner, voreTypes, capacity) super(name, owner, voreTypes, capacity)


this.name = name this.name = name
@@ -204,13 +204,14 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
const justDigested: Array<Creature> = [] const justDigested: Array<Creature> = []
const justAbsorbed: Array<Creature> = [] const justAbsorbed: Array<Creature> = []


const scaled = this.damage.scale(dt / 60)

const damageResults: Array<LogEntry> = [] const damageResults: Array<LogEntry> = []


const tickedEntries = new LogLines(...this.contents.map(prey => this.tickLine(this.owner, prey, { container: this, damage: scaled })))
const tickedEntryList: LogEntry[] = []


this.contents.forEach(prey => { this.contents.forEach(prey => {
const scaled = this.damage.calc(this.owner, prey).scale(dt / 60)
tickedEntryList.push(this.tickLine(this.owner, prey, { container: this, damage: scaled }))

damageResults.push(prey.takeDamage(scaled)) damageResults.push(prey.takeDamage(scaled))


if (prey.vigors[Vigor.Health] <= 0) { if (prey.vigors[Vigor.Health] <= 0) {
@@ -221,7 +222,10 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
} }
}) })


const tickedEntries = new LogLines(...tickedEntryList)

this.digested.forEach(prey => { this.digested.forEach(prey => {
const scaled = this.damage.calc(this.owner, prey).scale(dt / 60)
const damageTotal: number = prey.effectiveDamage(scaled).damages.filter(instance => instance.target === Vigor.Health).reduce( const damageTotal: number = prey.effectiveDamage(scaled).damages.filter(instance => instance.target === Vigor.Health).reduce(
(total: number, instance: DamageInstance) => total + instance.amount, (total: number, instance: DamageInstance) => total + instance.amount,
0 0
@@ -271,7 +275,7 @@ export abstract class NormalVoreContainer extends NormalContainer implements Vor
} }


export abstract class InnerVoreContainer extends NormalVoreContainer { export abstract class InnerVoreContainer extends NormalVoreContainer {
constructor (name: Noun, owner: Creature, voreTypes: Set<VoreType>, capacity: number, damage: Damage, private escape: Container) {
constructor (name: Noun, owner: Creature, voreTypes: Set<VoreType>, capacity: number, damage: DamageFormula, private escape: Container) {
super(name, owner, voreTypes, capacity, damage) super(name, owner, voreTypes, capacity, damage)


this.actions = [] this.actions = []
@@ -289,7 +293,7 @@ export abstract class InnerVoreContainer extends NormalVoreContainer {
} }


export class Stomach extends NormalVoreContainer { export class Stomach extends NormalVoreContainer {
constructor (owner: Creature, capacity: number, damage: Damage) {
constructor (owner: Creature, capacity: number, damage: DamageFormula) {
super(new ImproperNoun('stomach', 'stomachs').all, owner, new Set([VoreType.Oral]), capacity, damage) super(new ImproperNoun('stomach', 'stomachs').all, owner, new Set([VoreType.Oral]), capacity, damage)
} }


@@ -316,13 +320,13 @@ export class Stomach extends NormalVoreContainer {
export class InnerStomach extends InnerVoreContainer { export class InnerStomach extends InnerVoreContainer {
consumeVerb = new Verb('swallow') consumeVerb = new Verb('swallow')
releaseVerb = new Verb('hork') releaseVerb = new Verb('hork')
constructor (owner: Creature, capacity: number, damage: Damage, escape: VoreContainer) {
constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: VoreContainer) {
super(new ImproperNoun('inner stomach', 'inner stomachs').all, owner, new Set([VoreType.Oral]), capacity, damage, escape) super(new ImproperNoun('inner stomach', 'inner stomachs').all, owner, new Set([VoreType.Oral]), capacity, damage, escape)
} }
} }


export class Bowels extends NormalVoreContainer { export class Bowels extends NormalVoreContainer {
constructor (owner: Creature, capacity: number, damage: Damage) {
constructor (owner: Creature, capacity: number, damage: DamageFormula) {
super(new ImproperNoun('bowel', 'bowels').plural.all, owner, new Set([VoreType.Anal]), capacity, damage) super(new ImproperNoun('bowel', 'bowels').plural.all, owner, new Set([VoreType.Anal]), capacity, damage)
} }


@@ -339,7 +343,7 @@ export class Bowels extends NormalVoreContainer {
export class Cock extends NormalVoreContainer { export class Cock extends NormalVoreContainer {
fluidColor = "#eeeeee66"; fluidColor = "#eeeeee66";


constructor (owner: Creature, capacity: number, damage: Damage) {
constructor (owner: Creature, capacity: number, damage: DamageFormula) {
super( super(
new ImproperNoun('cock').all, new ImproperNoun('cock').all,
owner, owner,
@@ -362,7 +366,7 @@ export class Cock extends NormalVoreContainer {
export class Balls extends InnerVoreContainer { export class Balls extends InnerVoreContainer {
fluidColor = "#eeeeeecc"; fluidColor = "#eeeeeecc";


constructor (owner: Creature, capacity: number, damage: Damage, escape: Container) {
constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: Container) {
super( super(
new ImproperNoun('ball', 'balls').all.plural, new ImproperNoun('ball', 'balls').all.plural,
owner, owner,
@@ -377,7 +381,7 @@ export class Balls extends InnerVoreContainer {
export class Slit extends NormalVoreContainer { export class Slit extends NormalVoreContainer {
fluidColor = "#cccccc99"; fluidColor = "#cccccc99";


constructor (owner: Creature, capacity: number, damage: Damage) {
constructor (owner: Creature, capacity: number, damage: DamageFormula) {
super( super(
new ImproperNoun('slit').all, new ImproperNoun('slit').all,
owner, owner,
@@ -391,7 +395,7 @@ export class Slit extends NormalVoreContainer {
export class Womb extends InnerVoreContainer { export class Womb extends InnerVoreContainer {
fluidColor = "#ddddddbb"; fluidColor = "#ddddddbb";


constructor (owner: Creature, capacity: number, damage: Damage, escape: Container) {
constructor (owner: Creature, capacity: number, damage: DamageFormula, escape: Container) {
super( super(
new ImproperNoun('womb').all, new ImproperNoun('womb').all,
owner, owner,


Loading…
Откажи
Сачувај