mirror of
https://codeberg.org/ProgramSnail/konkr_game_3d.git
synced 2026-01-02 03:38:16 +00:00
fixes
This commit is contained in:
parent
5408d75267
commit
a795665b54
7 changed files with 462 additions and 366 deletions
|
|
@ -28,7 +28,9 @@ func pay_tower_salaries(player : int):
|
|||
|
||||
func pay_character_salaries(player : int):
|
||||
var alive_characters = []
|
||||
var new_rogues_positions = []
|
||||
|
||||
# find new rogue characters (not fully paid characters)
|
||||
for character in characters.player_characters[player]:
|
||||
var character_position = utils.world_to_grid_position(character.translation)
|
||||
if spend_connected_money(character_position, map.player_tiles[player], CHARACTER_SALARIES[character.level]):
|
||||
|
|
@ -36,6 +38,22 @@ func pay_character_salaries(player : int):
|
|||
else:
|
||||
character.became_rogue()
|
||||
characters.rogue_characters.append(character)
|
||||
new_rogues_positions.append(character_position)
|
||||
|
||||
characters.player_characters[player] = alive_characters
|
||||
|
||||
# better solution ??
|
||||
# find characters, connected to new rogues (not fully paid characters)
|
||||
alive_characters = []
|
||||
for character in characters.player_characters[player]:
|
||||
var character_position = utils.world_to_grid_position(character.translation)
|
||||
if map.is_tile_connected_to_tiles(character_position,
|
||||
new_rogues_positions,
|
||||
map.player_tiles[player]):
|
||||
character.became_rogue()
|
||||
characters.rogue_characters.append(character)
|
||||
else:
|
||||
alive_characters.append(character)
|
||||
|
||||
characters.player_characters[player] = alive_characters
|
||||
|
||||
|
|
@ -85,6 +103,28 @@ func spend_connected_money(starting_position : Vector3, tile_cell : int, money_t
|
|||
to_visit.append(current_position + direction)
|
||||
|
||||
return money_to_spend <= 0
|
||||
|
||||
func add_money_to_nearest_other_house(starting_position : Vector3, tile_cell : int, money_added : int):
|
||||
if money_added <= 0:
|
||||
return
|
||||
|
||||
var visited = {}
|
||||
|
||||
var to_visit = [starting_position]
|
||||
visited[utils.position_to_string(starting_position)] = null
|
||||
|
||||
for current_position in to_visit:
|
||||
for direction in map.directions:
|
||||
var new_position = current_position + direction
|
||||
if map.get_tile_cell(new_position) == tile_cell and \
|
||||
not visited.has(utils.position_to_string(new_position)):
|
||||
visited[utils.position_to_string(new_position)] = null
|
||||
to_visit.append(new_position)
|
||||
|
||||
if map.HOUSE_CELLS.has(map.get_building_cell(new_position)):
|
||||
houses_money[utils.position_to_string(new_position)] += money_added
|
||||
update_house_info(new_position)
|
||||
return
|
||||
|
||||
func update_house_info(position : Vector3):
|
||||
var position_string = utils.position_to_string(position)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue