Battle Prototype
This commit is contained in:
parent
49f469475d
commit
5f7199e229
@ -14,6 +14,7 @@ val CreatureA = with(Creature()) {
|
||||
genes.def = 3
|
||||
skills.add(Skills.Tackle)
|
||||
skills.add(Skills.DoubleKick)
|
||||
fullHeal()
|
||||
this
|
||||
}
|
||||
|
||||
@ -21,6 +22,7 @@ val CreatureB = with(Creature()) {
|
||||
name = "CreatureB"
|
||||
skills.add(Skills.Tackle)
|
||||
skills.add(Skills.Ember)
|
||||
fullHeal()
|
||||
this
|
||||
}
|
||||
|
||||
@ -40,6 +42,8 @@ object PTureTest {
|
||||
fun main(arg: Array<String>) {
|
||||
println("Hello, world!")
|
||||
val e = Engine(TestBattle)
|
||||
e.resolveTurn(BattleViewText())
|
||||
val v = BattleViewText()
|
||||
e.resolveTurn(v)
|
||||
e.report(v)
|
||||
}
|
||||
}
|
@ -50,8 +50,16 @@ class Engine(private val battle: BattleType) {
|
||||
.filter { !it.creature.hasStatus<KnockedOut>() }
|
||||
.sortedBy { it.creature.spd }
|
||||
|
||||
fun report(view : BattleView) {
|
||||
creatures.forEach {
|
||||
it.displayHeader()
|
||||
}
|
||||
}
|
||||
|
||||
fun resolveTurn(view: BattleView) {
|
||||
|
||||
report(view)
|
||||
|
||||
// All preconditions
|
||||
for (creature in activeCreatures) {
|
||||
for (status in creature.creature.statuses) {
|
||||
|
@ -11,7 +11,7 @@ class SkillViewText(skill: Skill) : SkillView(skill) {
|
||||
}
|
||||
|
||||
override fun displayEnumerated(idx : Int) {
|
||||
println("-: ${skill.name}")
|
||||
println("- ${skill.name}")
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,6 +51,10 @@ class CreatureViewText(playerId: Int, creature: Creature) : CreatureView(playerI
|
||||
}
|
||||
}
|
||||
|
||||
override fun displayHeader() {
|
||||
println("${creature.name}: ${creature.currentHp}/${creature.maxHp}")
|
||||
}
|
||||
|
||||
override fun displayName() {
|
||||
println(creature.name)
|
||||
}
|
||||
@ -62,11 +66,16 @@ class CreatureViewText(playerId: Int, creature: Creature) : CreatureView(playerI
|
||||
}
|
||||
|
||||
override fun displayStatuses() {
|
||||
creature.statuses.filterIsInstance<VisibleStatus>().forEach {
|
||||
val displayables = creature.statuses.filterIsInstance<VisibleStatus>()
|
||||
if(displayables.isNotEmpty()) {
|
||||
println("Statuses")
|
||||
println("--------")
|
||||
displayables.forEach {
|
||||
println(it.label)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class PlayerViewText(playerId: Int) : PlayerView(playerId) {
|
||||
override fun creatureViewFor(creature: Creature) = CreatureViewText(playerId, creature)
|
||||
|
@ -13,6 +13,7 @@ abstract class CreatureView(val playerId : Int, val creature: Creature) {
|
||||
|
||||
abstract fun chooseSkill(possibleTargets : List<Creature>)
|
||||
|
||||
abstract fun displayHeader()
|
||||
abstract fun displayName()
|
||||
abstract fun displaySkills()
|
||||
abstract fun displayStatuses()
|
||||
|
Loading…
Reference in New Issue
Block a user