|
@@ -80,6 +80,7 @@ func _ready() -> void:
|
|
Game.reload_time = RELOAD_TIME # seconds
|
|
Game.reload_time = RELOAD_TIME # seconds
|
|
Game.max_ammo = 1 # shots
|
|
Game.max_ammo = 1 # shots
|
|
Game.base_accuracy = 0.33 # percent
|
|
Game.base_accuracy = 0.33 # percent
|
|
|
|
+ GlobalInput.dragging_disabled = false
|
|
waves_completed = 0
|
|
waves_completed = 0
|
|
phase = Phase.PHASE_SETUP
|
|
phase = Phase.PHASE_SETUP
|
|
overlay.visible = true
|
|
overlay.visible = true
|
|
@@ -126,6 +127,7 @@ func spawn_bot(spawn: Marker2D, index: int) -> void:
|
|
bot.name = "Bot #%d" % (index + 1)
|
|
bot.name = "Bot #%d" % (index + 1)
|
|
bot.speed += waves_completed
|
|
bot.speed += waves_completed
|
|
bot.visible = false
|
|
bot.visible = false
|
|
|
|
+ bot.health += waves_completed / 30
|
|
spawn.add_child(bot)
|
|
spawn.add_child(bot)
|
|
bot.position = Vector2.ZERO
|
|
bot.position = Vector2.ZERO
|
|
|
|
|
|
@@ -201,10 +203,32 @@ func start_combat() -> void:
|
|
|
|
|
|
const LOOT_SURVIVOR: String = "+1 SURVIVOR"
|
|
const LOOT_SURVIVOR: String = "+1 SURVIVOR"
|
|
const LOOT_HEALTH: String = "+3 HEALTH"
|
|
const LOOT_HEALTH: String = "+3 HEALTH"
|
|
|
|
+const LOOT_FULL_HEALTH: String = "FULL HEALTH"
|
|
const LOOT_AMMO: String = "BIGGER MAGAZINES"
|
|
const LOOT_AMMO: String = "BIGGER MAGAZINES"
|
|
const LOOT_RELOAD_TIME: String = "FASTER RELOADING"
|
|
const LOOT_RELOAD_TIME: String = "FASTER RELOADING"
|
|
const LOOT_ACCURACY: String = "HIGHER ACCURACY"
|
|
const LOOT_ACCURACY: String = "HIGHER ACCURACY"
|
|
-const LOOTS: Array[String] = [LOOT_SURVIVOR, LOOT_HEALTH, LOOT_AMMO, LOOT_RELOAD_TIME, LOOT_ACCURACY]
|
|
|
|
|
|
+
|
|
|
|
+func determine_loot_options() -> Array[String]:
|
|
|
|
+ var loots: Array[String] = []
|
|
|
|
+ if get_survivors().size() < 6: # this is, so the player has a reason to move survivors even later
|
|
|
|
+ loots.push_back(LOOT_SURVIVOR)
|
|
|
|
+ if Game.base_accuracy < 0.67:
|
|
|
|
+ loots.push_back(LOOT_ACCURACY)
|
|
|
|
+ if Game.reload_time > 1.5:
|
|
|
|
+ loots.push_back(LOOT_RELOAD_TIME)
|
|
|
|
+ if Game.max_ammo < 9:
|
|
|
|
+ loots.push_back(LOOT_AMMO)
|
|
|
|
+ var health = health_bar.health
|
|
|
|
+ if health < HealthBar.MAX_HEALTH:
|
|
|
|
+ if health == 1:
|
|
|
|
+ loots.push_back(LOOT_FULL_HEALTH)
|
|
|
|
+ else:
|
|
|
|
+ loots.push_back(LOOT_HEALTH)
|
|
|
|
+ loots.shuffle()
|
|
|
|
+ if loots.size() < 3:
|
|
|
|
+ for n in (3-loots.size()):
|
|
|
|
+ loots.push_back("NOTHING")
|
|
|
|
+ return loots
|
|
|
|
|
|
func end_combat() -> void:
|
|
func end_combat() -> void:
|
|
phase = Phase.PHASE_LOOT
|
|
phase = Phase.PHASE_LOOT
|
|
@@ -212,11 +236,7 @@ func end_combat() -> void:
|
|
await get_tree().create_timer(1.5).timeout
|
|
await get_tree().create_timer(1.5).timeout
|
|
var vs: Victory = victory_scene.instantiate()
|
|
var vs: Victory = victory_scene.instantiate()
|
|
ui_root.add_child(vs)
|
|
ui_root.add_child(vs)
|
|
- var loots: Array[String] = []
|
|
|
|
- loots.assign(LOOTS)
|
|
|
|
- if get_survivors().size() >= 6: # this is, so the player has a reason to move survivors even later
|
|
|
|
- loots.erase(LOOT_SURVIVOR)
|
|
|
|
- loots.shuffle()
|
|
|
|
|
|
+ var loots: Array[String] = determine_loot_options()
|
|
vs.set_loot_options(loots[0], loots[1], loots[2])
|
|
vs.set_loot_options(loots[0], loots[1], loots[2])
|
|
await vs.loot_selected
|
|
await vs.loot_selected
|
|
var loot: String = loots[vs.selection]
|
|
var loot: String = loots[vs.selection]
|
|
@@ -231,12 +251,14 @@ func end_combat() -> void:
|
|
self.player_spawn.add_survivor()
|
|
self.player_spawn.add_survivor()
|
|
LOOT_HEALTH:
|
|
LOOT_HEALTH:
|
|
self.health_bar.health += 3
|
|
self.health_bar.health += 3
|
|
|
|
+ LOOT_FULL_HEALTH:
|
|
|
|
+ self.health_bar.health = HealthBar.MAX_HEALTH
|
|
LOOT_RELOAD_TIME:
|
|
LOOT_RELOAD_TIME:
|
|
Game.reload_time *= 0.9
|
|
Game.reload_time *= 0.9
|
|
LOOT_AMMO:
|
|
LOOT_AMMO:
|
|
Game.max_ammo += 1
|
|
Game.max_ammo += 1
|
|
LOOT_ACCURACY:
|
|
LOOT_ACCURACY:
|
|
- Game.base_accuracy += 0.1
|
|
|
|
|
|
+ Game.base_accuracy += 0.01
|
|
self.reset_survivors()
|
|
self.reset_survivors()
|
|
self.start_setup()
|
|
self.start_setup()
|
|
)
|
|
)
|