Battle Prototype
This commit is contained in:
		@@ -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,8 +66,13 @@ class CreatureViewText(playerId: Int, creature: Creature) : CreatureView(playerI
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun displayStatuses() {
 | 
			
		||||
        creature.statuses.filterIsInstance<VisibleStatus>().forEach {
 | 
			
		||||
            println(it.label)
 | 
			
		||||
        val displayables = creature.statuses.filterIsInstance<VisibleStatus>()
 | 
			
		||||
        if(displayables.isNotEmpty()) {
 | 
			
		||||
            println("Statuses")
 | 
			
		||||
            println("--------")
 | 
			
		||||
            displayables.forEach {
 | 
			
		||||
                println(it.label)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user