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

Require all Consequences to have a description

master
Fen Dweller пре 5 година
родитељ
комит
e849d8c75a
3 измењених фајлова са 24 додато и 23 уклоњено
  1. +2
    -9
      src/game/combat.ts
  2. +18
    -12
      src/game/combat/consequences.ts
  3. +4
    -2
      src/game/creatures/geta.ts

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

@@ -432,7 +432,7 @@ export class CompositionAction extends Action {

describe (user: Creature, target: Creature): LogEntry {
return new LogLines(
...this.consequences.map(consequence => consequence.describePair(user, target)).concat(
...this.consequences.map(consequence => consequence.describe(user, target)).concat(
new Newline(),
super.describe(user, target)
)
@@ -705,13 +705,6 @@ export abstract class Consequence {
return this.conditions.every(cond => cond.allowed(user, target))
}

describeSolo (user: Creature): LogEntry {
return nilLog
}

describePair (user: Creature, target: Creature): LogEntry {
return nilLog
}

abstract describe (user: Creature, target: Creature): LogEntry
abstract apply (user: Creature, target: Creature): LogEntry
}

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

@@ -8,17 +8,13 @@ import { Container } from '../vore'
* Takes a function, and thus can do anything.
*/
export class ArbitraryConsequence extends Consequence {
constructor (public apply: (user: Creature, target: Creature) => LogEntry, conditions: Condition[] = []) {
constructor (
public apply: (user: Creature, target: Creature) => LogEntry,
public describe: (user: Creature, target: Creature) => LogEntry,
conditions: Condition[] = []
) {
super(conditions)
}

describeSolo (user: Creature): LogEntry {
return nilLog
}

describePair (user: Creature): LogEntry {
return nilLog
}
}

/**
@@ -33,6 +29,10 @@ export class LogConsequence extends Consequence {
apply (user: Creature, target: Creature): LogEntry {
return this.line(user, target)
}

describe (user: Creature, target: Creature): LogEntry {
return nilLog
}
}

/**
@@ -51,7 +51,7 @@ export class DamageConsequence extends Consequence {
)
}

describePair (user: Creature, target: Creature): LogEntry {
describe (user: Creature, target: Creature): LogEntry {
return new LogLine(
this.damageFormula.describe(user, target)
)
@@ -74,7 +74,7 @@ export class HealingConsequence extends Consequence {
)
}

describePair (user: Creature, target: Creature): LogEntry {
describe (user: Creature, target: Creature): LogEntry {
return new LogLine(
`Heals for `,
this.damageFormula.describe(user, target)
@@ -94,7 +94,7 @@ export class StatusConsequence extends Consequence {
return target.applyEffect(this.statusMaker(user, target))
}

describePair (user: Creature, target: Creature): LogEntry {
describe (user: Creature, target: Creature): LogEntry {
return new LogLine(
`Applies a ${this.statusMaker(user, target)} effect.`
)
@@ -112,4 +112,10 @@ export class ConsumeConsequence extends Consequence {
apply (user: Creature, target: Creature): LogEntry {
return this.container.consume(target)
}

describe (user: Creature, target: Creature): LogEntry {
return new LogLine(
`Devours the target.`
)
}
}

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

@@ -78,7 +78,8 @@ export class Geta extends Creature {
() => new InstantKillEffect()
),
new ArbitraryConsequence(
(user, target) => cock.tick(0)
(user, target) => cock.tick(0),
(user, target) => nilLog
)
]
}
@@ -168,7 +169,8 @@ export class Geta extends Creature {
],
consequences: [
new ArbitraryConsequence(
(user, target) => stomach.consume(target)
(user, target) => stomach.consume(target),
(user, target) => new LogLine(`Devours the target.`)
)
]
}


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