Преглед на файлове

Add a generic Hand container; give Geta that (and a crush action)

master
Fen Dweller преди 5 години
родител
ревизия
c7985a7cff
променени са 2 файла, в които са добавени 47 реда и са изтрити 5 реда
  1. +35
    -5
      src/game/creatures/geta.ts
  2. +12
    -0
      src/game/vore.ts

+ 35
- 5
src/game/creatures/geta.ts Целия файл

@@ -1,12 +1,12 @@
import { Creature } from "../creature"
import { Damage, DamageType, ConstantDamageFormula, Vigor, Side, CompositionAction } from '../combat'
import { MalePronouns, ImproperNoun, ProperNoun, ObjectPronouns, FemalePronouns, TheyPronouns } from '../language'
import { VoreType, Stomach, Bowels, Cock, Balls, anyVore, Slit, Womb, biconnectContainers } from '../vore'
import { MalePronouns, ImproperNoun, ProperNoun, ObjectPronouns, FemalePronouns, TheyPronouns, Verb } from '../language'
import { VoreType, Stomach, Bowels, Cock, Balls, anyVore, Slit, Womb, biconnectContainers, Hand } from '../vore'
import { AttackAction, TransferAction, FeedAction } from '../combat/actions'
import { StatusConsequence, LogConsequence, DamageConsequence } from '../combat/consequences'
import { SizeEffect, DamageTypeResistanceEffect, InstantKillEffect } from '../combat/effects'
import { LogLine } from '../interface'
import { TogetherCondition, MassRatioCondition } from '../combat/conditions'
import { TogetherCondition, MassRatioCondition, ContainsCondition } from '../combat/conditions'

export class Geta extends Creature {
constructor () {
@@ -70,7 +70,7 @@ export class Geta extends Creature {
(user, target) => new LogLine(`ZAP!`)
),
new StatusConsequence(
() => new SizeEffect(0.25)
() => new SizeEffect(0.1)
)
]
}
@@ -93,7 +93,9 @@ export class Geta extends Creature {
],
consequences: [
new LogConsequence(
(user, target) => new LogLine(`CRUNCH`)
(user, target) => new LogLine(
`${user.name.capital} ${user.name.conjugate(new Verb("raise"))} ${user.pronouns.possessive} paw over ${target.name.objective}, stomping down hard and crushing the life from ${user.pronouns.possessive} prey with a sickening CRUNCH.`
)
),
new StatusConsequence(
() => new InstantKillEffect()
@@ -109,5 +111,33 @@ export class Geta extends Creature {
this.otherActions.push(
crushAction
)

const hand = new Hand(this, 10)

this.otherContainers.push(
hand
)

this.actions.push(
new CompositionAction(
"Grip",
"Squeeze your prey like a grape",
{
conditions: [
new ContainsCondition(hand)
],
consequences: [
new LogConsequence(
(user, target) => new LogLine(
`${user.name.capital} ${user.name.conjugate(new Verb("crush", "crushes"))} ${target.name.objective} in ${user.pronouns.possessive} merciless grip, breaking bones and pulping ${user.pronouns.possessive} victim with ease.`
)
),
new StatusConsequence(
() => new InstantKillEffect()
)
]
}
)
)
}
}

+ 12
- 0
src/game/vore.ts Целия файл

@@ -212,6 +212,18 @@ export abstract class NormalContainer implements Container {
}
}

export class Hand extends NormalContainer {
consumeVerb = new Verb("grab")
constructor (owner: Vore, capacity: number) {
super(
new ImproperNoun('hand'),
owner,
new Set(),
capacity
)
}
}

export abstract class InnerContainer extends NormalContainer {
constructor (name: Noun, owner: Vore, voreTypes: Set<VoreType>, capacity: number, private escape: Container) {
super(name, owner, voreTypes, capacity)


Loading…
Отказ
Запис