small update
boss prototype, auto planter, visual reworks, bug fixes
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from collections import Counter
|
||||
|
||||
from assets import icon
|
||||
from engine import collection, runes
|
||||
from engine import bosses, collection, runes
|
||||
from engine.battle import Battle
|
||||
from engine.relics import RELIC_BY_KEY, grant_rune_rewards, roll_relics, rune_reward_count
|
||||
from engine.roster import make_enemy_team, pick_team, player_team_level, player_team_stage
|
||||
@@ -24,6 +24,7 @@ def _pack_reward_items(pack_types):
|
||||
})
|
||||
return items
|
||||
|
||||
#test_ignore
|
||||
|
||||
def _rune_reward_item(rune):
|
||||
"""Reward entry for a rune drop (label + rune sprite path)."""
|
||||
@@ -51,7 +52,8 @@ def _totals_txt(total_water, total_packs, run_relics):
|
||||
def _battle_win_reward(floor):
|
||||
"""Grant and describe a floor-battle win: a lesser pack, or on every 5th win
|
||||
(5, 10, 15, ...) a better general/type-boosted pack instead. Advances the
|
||||
floor. Runes can drop on any win regardless."""
|
||||
floor. Runes can drop on any win regardless. Boss floors additionally grant
|
||||
a boss-specific rune drop at a much higher chance and mark the boss fought."""
|
||||
collection.advance_floor()
|
||||
wins = collection.record_win()
|
||||
if wins % 5 == 0:
|
||||
@@ -61,6 +63,12 @@ def _battle_win_reward(floor):
|
||||
rune = collection.roll_battle_rune()
|
||||
if rune:
|
||||
reward.append(_rune_reward_item(rune))
|
||||
boss = bosses.boss_for_floor(floor)
|
||||
if boss:
|
||||
collection.mark_boss_fought(boss)
|
||||
bdrop = collection.boss_rune_drop(boss)
|
||||
if bdrop:
|
||||
reward.append(_rune_reward_item(bdrop))
|
||||
return reward
|
||||
|
||||
|
||||
@@ -255,7 +263,10 @@ def main():
|
||||
floor = collection.floor_progress()
|
||||
enemy_names = floor_enemy_names(floor, player_type)
|
||||
enemy_types = roll_enemy_types(enemy_names, player_type, floor)
|
||||
enemy_levels = [floor_enemy_level(floor)] * len(enemy_names)
|
||||
enemy_levels = [
|
||||
bosses.boss_floor_level(floor) if bosses.is_boss(n) else floor_enemy_level(floor)
|
||||
for n in enemy_names
|
||||
]
|
||||
from ui.picker import TeamSelect
|
||||
ts = TeamSelect(initial_enemies=enemy_names, difficulty=floor,
|
||||
enemy_types=enemy_types, no_roll=True,
|
||||
@@ -269,7 +280,7 @@ def main():
|
||||
|
||||
allies, enemies = result
|
||||
collection.mark_owned(allies)
|
||||
collection.mark_found(enemies)
|
||||
collection.mark_found([n for n in enemies if not bosses.is_boss(n)])
|
||||
players = pick_team(allies, TEAM_PLAYER)
|
||||
enemy_units = build_floor_enemies(enemy_names, enemy_types, floor)
|
||||
battle = Battle(players, enemy_units)
|
||||
|
||||
Reference in New Issue
Block a user