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