Skip to content

Commit

Permalink
rafactoring: events probability
Browse files Browse the repository at this point in the history
  • Loading branch information
awcz committed Jun 16, 2024
1 parent 9454f89 commit eb2f369
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
8 changes: 4 additions & 4 deletions src/commonMain/kotlin/com/github/awcz/torch/SpecialEvent.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.awcz.torch

enum class SpecialEvent(val probability: Double) {
FIRE_RAIN(0.001),
WATER_RAIN(0.002),
EARTHQUAKE(0.003)
enum class SpecialEvent(val startProbability: Double, val sustainProbability: Double) {
FIRE_RAIN(0.008, 0.05),
WATER_RAIN(0.002, 0.05),
EARTHQUAKE(0.003, 0.05)
}
10 changes: 7 additions & 3 deletions src/commonMain/kotlin/com/github/awcz/torch/scene/GameScene.kt
Original file line number Diff line number Diff line change
Expand Up @@ -336,10 +336,10 @@ class GameScene : Scene() {
specialEvents.filter { it.value <= 0 }.forEach {
specialEvents.remove(it.key)
}
if (!specialEvents.contains(SpecialEvent.FIRE_RAIN) && Random.nextFloat() < SpecialEvent.FIRE_RAIN.probability) {
if (!specialEvents.contains(SpecialEvent.FIRE_RAIN) && Random.nextFloat() < SpecialEvent.FIRE_RAIN.startProbability) {
specialEvents[SpecialEvent.FIRE_RAIN] = 400
}
if (!specialEvents.contains(SpecialEvent.WATER_RAIN) && Random.nextFloat() < SpecialEvent.WATER_RAIN.probability) {
if (!specialEvents.contains(SpecialEvent.WATER_RAIN) && Random.nextFloat() < SpecialEvent.WATER_RAIN.startProbability) {
specialEvents[SpecialEvent.WATER_RAIN] = 200
}
}
Expand Down Expand Up @@ -449,7 +449,11 @@ class GameScene : Scene() {

private fun registerNewCollisions() {
val fireRainProbability =
if (specialEvents.containsKey(SpecialEvent.FIRE_RAIN)) 0.05 else 0.008 // todo associate probability with events
if (specialEvents.containsKey(SpecialEvent.FIRE_RAIN)) {
SpecialEvent.FIRE_RAIN.sustainProbability
} else {
SpecialEvent.FIRE_RAIN.startProbability
}
if (Random.nextFloat() < fireRainProbability) {
CollisionObject(
mapView,
Expand Down

0 comments on commit eb2f369

Please sign in to comment.