Просмотр исходного кода

Add a basic version of Kuro

master
Fen Dweller 5 лет назад
Родитель
Сommit
91af9dcf9a
3 измененных файлов: 86 добавлений и 2 удалений
  1. +2
    -1
      src/game/creatures.ts
  2. +57
    -0
      src/game/creatures/kuro.ts
  3. +27
    -1
      src/game/maps/town.ts

+ 2
- 1
src/game/creatures.ts Просмотреть файл

@@ -7,5 +7,6 @@ import { Kenzie } from './creatures/kenzie'
import { Dragon } from './creatures/dragon'
import { Shingo } from './creatures/shingo'
import { Goldeneye } from './creatures/goldeneye'
import { Kuro } from './creatures/kuro'

export { Wolf, Player, Cafat, Human, Withers, Kenzie, Dragon, Shingo, Goldeneye }
export { Wolf, Player, Cafat, Human, Withers, Kenzie, Dragon, Shingo, Goldeneye, Kuro }

+ 57
- 0
src/game/creatures/kuro.ts Просмотреть файл

@@ -0,0 +1,57 @@
import { Creature } from "../creature"
import { Damage, DamageType, ConstantDamageFormula, Vigor, Side } from '../combat'
import { MalePronouns, ImproperNoun, ProperNoun, ObjectPronouns, FemalePronouns, TheyPronouns } from '../language'
import { VoreType, Stomach, Bowels, Cock, Balls, anyVore, Slit, Womb, biconnectContainers } from '../vore'
import { AttackAction, TransferAction, FeedAction } from '../combat/actions'

export class Kuro extends Creature {
constructor () {
super(
new ProperNoun('Kuro'),
new ProperNoun('Luxray'),
MalePronouns,
{ Toughness: 20, Power: 30, Speed: 50, Willpower: 30, Charm: 50 },
new Set(),
new Set([VoreType.Oral, VoreType.Anal, VoreType.Cock]),
100
)

this.side = Side.Monsters

const stomach = new Stomach(this, 50, 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(
{ amount: 30, type: DamageType.Crush, target: Vigor.Health },
{ amount: 90, type: DamageType.Crush, target: Vigor.Stamina },
{ amount: 120, type: DamageType.Dominance, target: Vigor.Resolve }
))

this.containers.push(bowels)

this.actions.push(new TransferAction(bowels, stomach))

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

const cock = new Cock(this, 50, 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(
{ amount: 50, type: DamageType.Acid, target: Vigor.Health },
{ amount: 25, type: DamageType.Crush, target: Vigor.Stamina },
{ amount: 150, type: DamageType.Dominance, target: Vigor.Resolve }
), cock)

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

biconnectContainers(cock, balls)
}
}

+ 27
- 1
src/game/maps/town.ts Просмотреть файл

@@ -8,7 +8,7 @@ import { Creature } from '../creature'
import { DevourAction } from '../combat/actions'
import { SurrenderEffect } from '../combat/effects'
import moment from 'moment'
import { RandomAI } from '../ai'
import { RandomAI, VoreAI } from '../ai'

function makeParty (): Creature[] {
const fighter = new Creatures.Human(new ProperNoun("Redgar"), MalePronouns, {
@@ -70,6 +70,11 @@ export const Town = (): Place => {
"Streets of Sim City"
)

const alley = new Place(
new ImproperNoun('alley'),
"A spooky alley"
)

const westRoad = new Place(
new ImproperNoun('road'),
"West of town"
@@ -221,6 +226,26 @@ export const Town = (): Place => {
)
)

alley.choices.push(
new Choice(
"Kuro",
"Get eaten by a Luxray",
(world, executor) => {
const enemy = new Creatures.Kuro()
enemy.ai = new VoreAI()
const encounter = new Encounter(
{
name: "Luxray time",
intro: world => new LogLine(`Luxray time!`)
},
[world.player, enemy]
)
world.encounter = encounter
return nilLog
}
)
)

bossEncounters.forEach(encounter => {
bosses.choices.push(
new Choice(
@@ -248,6 +273,7 @@ export const Town = (): Place => {

home.biconnect(Direction.North, westAve)
westAve.biconnect(Direction.West, westRoad)
westAve.biconnect(Direction.North, alley)
westRoad.biconnect(Direction.South, woods)
westRoad.biconnect(Direction.North, bosses)
westAve.biconnect(Direction.East, loop)


Загрузка…
Отмена
Сохранить