Skip to content

Commit

Permalink
[修改] action_message的玩家明確寫出ID
Browse files Browse the repository at this point in the history
  • Loading branch information
yockwang committed Oct 8, 2024
1 parent 117c089 commit 02e28ba
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 6 deletions.
8 changes: 4 additions & 4 deletions backend/service/game_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def cast_spell(
#game.event_name = "spelled_fail"
game.dice_result = 0
player.update_HP(hp_damge)
game.action_message = f"玩家扣 {abs(hp_damge)} 滴血"
game.action_message = f"{player.player_id} {abs(hp_damge)} 滴血"
game.damage_info[game.current_player] = hp_damge
self.game_repository.update_game(game)

Expand Down Expand Up @@ -159,19 +159,19 @@ def cast_spell(
if spell.get_value() == 1:
game.dice_result = spell_status
game.event_name = "dice_rolled"
game.action_message = f"其餘玩家扣除 {game.dice_result} 血量"
game.action_message = f"除了 {player.player_id} ,其餘玩家扣除 {game.dice_result} 血量"
game.damage_info = [-game.dice_result] * 5
game.damage_info[game.current_player] = 0
self.game_repository.update_game(game)
elif spell.get_value() == 3:
game.dice_result = spell_status
game.event_name = "dice_rolled"
game.action_message = f"玩家回復 {game.dice_result} 血量"
game.action_message = f"{player.player_id} 回復 {game.dice_result} 血量"
game.damage_info[game.current_player] = game.dice_result
self.game_repository.update_game(game)
elif spell.get_value() == 2:
game.event_name = "damage_HP"
game.action_message = f"其餘玩家扣除 1 血量, {player.player_id} 回復 1 血量"
game.action_message = f"{player.player_id} 回復 1 血量 ,其餘玩家扣除 1 血量"
game.damage_info = [-1] * 5
game.damage_info[game.current_player] = 1
self.game_repository.update_game(game)
Expand Down
44 changes: 42 additions & 2 deletions backend/tests/integration/happy_path/test_happy_path_round1.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ def mock_roll_dice():
assert game.find_player_by_id("C").get_HP() == 4
assert len(game.find_player_by_id("B").spells) == 3
assert len(game.ladder) == 3
assert game.damage_info[0] == -1
assert game.damage_info[1] == 0
assert game.damage_info[2] == -1
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# B補充手牌5 H列
assert game.current_player == 1
Expand All @@ -106,6 +111,11 @@ def mock_roll_dice():
assert game.find_player_by_id("B").spells[3] == "Magic 7"
assert game.find_player_by_id("B").spells[4] == "Magic 6"
assert len(game.warehouse) == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# C施法4 I列
assert game.current_player == 2
Expand All @@ -116,6 +126,11 @@ def mock_roll_dice():
assert game.find_player_by_id("C").secret_spells[0] == "Magic 8"
assert len(game.secret_warehouse) == 3
assert len(game.ladder) == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# C施法4 J列
assert game.current_player == 2
Expand All @@ -126,6 +141,11 @@ def mock_roll_dice():
assert game.find_player_by_id("C").secret_spells[1] == "Magic 7"
assert len(game.secret_warehouse) == 2
assert len(game.ladder) == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# C補充手牌5 K列
assert game.current_player == 2
Expand All @@ -134,20 +154,35 @@ def mock_roll_dice():
assert game.find_player_by_id("C").spells[3] == "Magic 1"
assert game.find_player_by_id("C").spells[4] == "Magic 6"
assert len(game.warehouse) == 2
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# D施法5 L列
# D施法3 L列 (施法失敗)
assert game.current_player == 3
assert game.turn == 4
game_service.cast_spell(game_id, "D", "Magic 3")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("D").get_HP() == 5
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# E施法5 M列
# E施法5 M列 (施法失敗)
assert game.current_player == 4
assert game.turn == 5
game_service.cast_spell(game_id, "E", "Magic 5")
game = game_service.game_repository.get_game_by_id(game_id)
assert game.find_player_by_id("E").get_HP() == 4
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

# A施法1, 因為玩家A自殺, 自動進入結算 N列
assert game.current_player == 0
Expand All @@ -161,3 +196,8 @@ def mock_roll_dice():
assert game.find_player_by_id("C").score == 3
assert game.find_player_by_id("D").score == 1
assert game.find_player_by_id("E").score == 1
assert game.damage_info[0] == 0
assert game.damage_info[1] == 0
assert game.damage_info[2] == 0
assert game.damage_info[3] == 0
assert game.damage_info[4] == 0

0 comments on commit 02e28ba

Please sign in to comment.