dev: 函数统一间隔两行

This commit is contained in:
2026-04-25 21:31:39 +08:00
parent 2cad85257e
commit 4834d7b33b
9 changed files with 44 additions and 2 deletions
+7
View File
@@ -9,6 +9,7 @@ func create_file(file_path: String) -> void:
var file: FileAccess = FileAccess.open(file_path, FileAccess.WRITE)
file.close()
func download_file(server_path: String, local_path: String) -> void:
var http: HTTPRequest = HTTPRequest.new()
add_child(http)
@@ -19,6 +20,7 @@ func download_file(server_path: String, local_path: String) -> void:
http.request(server_path)
await http.request_completed
func get_uuid() -> void:
var index_file: FileAccess = FileAccess.open("user://download/sources/temp/index.json", FileAccess.READ)
var index_text: String = index_file.get_as_text()
@@ -26,6 +28,7 @@ func get_uuid() -> void:
index_file.close()
uuid = content["uuid"]
func download_defs(type: String, origin: String) -> void:
var list_file: FileAccess = FileAccess.open("user://download/sources/%s/%ss/list.json" % [uuid, type], FileAccess.READ)
var list_text: String = list_file.get_as_text()
@@ -37,6 +40,7 @@ func download_defs(type: String, origin: String) -> void:
var filename = list[k]
await download_file("%s%s/id/%s" % [origin, type, k], "user://download/sources/%s/%ss/%s.json" % [uuid, type, filename])
func download_assets(origin: String) -> void:
var list_file: FileAccess = FileAccess.open("user://download/sources/%s/assets/list.json" % [uuid], FileAccess.READ)
var list_text: String = list_file.get_as_text()
@@ -51,6 +55,7 @@ func download_assets(origin: String) -> void:
var filename = list["sounds"][k]
await download_file("%sasset/sound/%s" % [origin, k], "user://download/sources/%s/assets/sounds/%s" % [uuid, filename])
func download_from_origin() -> int:
var origin: String = GameManager.data_origin
var http: HTTPRequest = HTTPRequest.new()
@@ -88,6 +93,7 @@ func download_from_origin() -> int:
return 0
func load_resource():
var card_file: FileAccess = FileAccess.open("user://download/sources/%s/cards/list.json" % [uuid], FileAccess.READ)
GameManager.card_list = JSON.parse_string(card_file.get_as_text())
@@ -107,6 +113,7 @@ func load_resource():
GameManager.sound_list = asset_list["sounds"]
asset_file.close()
func get_sources():
if !DirAccess.dir_exists_absolute("user://download/sources/"):
DirAccess.make_dir_recursive_absolute("user://download/sources/")
+4
View File
@@ -7,16 +7,20 @@ signal end_game
func _ready() -> void:
end_game.connect(_on_end_game)
func start_game() -> void:
game_round = 1
func settle_round() -> void:
game_round += 1
if check_game_end():
end_game.emit()
func check_game_end() -> bool:
return false
func _on_end_game() -> void:
game_round = -1
+19
View File
@@ -29,6 +29,7 @@ func add_player(id: int) -> void:
player_turns[id] = 0
player_hp[id] = INITIAL_HP
func remove_player(id: int) -> void:
if not players.has(id):
return
@@ -36,6 +37,7 @@ func remove_player(id: int) -> void:
for dict in [player_cards, player_turns, player_hp, player_username]:
dict.erase(id)
func create_server(playern: int) -> void:
max_players = playern
if peer.create_server(PORT, playern) != OK:
@@ -43,24 +45,29 @@ func create_server(playern: int) -> void:
_setup_multiplayer()
add_player(1)
func create_client(ip: String) -> void:
if peer.create_client(ip, PORT) != OK:
return
_setup_multiplayer()
func _setup_multiplayer() -> void:
multiplayer.multiplayer_peer = peer
multiplayer.peer_connected.connect(_on_peer_connected)
multiplayer.peer_disconnected.connect(_on_peer_disconnected)
func _on_peer_connected(id: int) -> void:
add_player(id)
sync_players.rpc()
func _on_peer_disconnected(id: int) -> void:
remove_player(id)
sync_players.rpc()
func start_game() -> void:
if not multiplayer.is_server() or players.size() != max_players:
return
@@ -69,6 +76,7 @@ func start_game() -> void:
deal_cards()
sync_game_state.rpc()
func extract() -> String:
if cards.is_empty():
return ""
@@ -77,10 +85,12 @@ func extract() -> String:
cards.remove_at(index)
return card
func deal_cards() -> void:
for player_id in players:
_draw_cards(player_id, MAX_HAND_SIZE)
func next_round() -> void:
if not multiplayer.is_server():
return
@@ -88,6 +98,7 @@ func next_round() -> void:
server_round += 1
sync_game_state.rpc()
func settle_round() -> void:
for player_id in players:
var draw_count := DEFAULT_DRAW_COUNT
@@ -95,6 +106,7 @@ func settle_round() -> void:
draw_count = FIRST_ROUND_DRAW_COUNT
_draw_cards(player_id, draw_count)
func _draw_cards(player_id: int, count: int) -> void:
if not player_cards.has(player_id):
return
@@ -107,18 +119,22 @@ func _draw_cards(player_id: int, count: int) -> void:
break
hand.append(card)
func get_my_cards() -> void:
request_cards.rpc_id(1)
@rpc("any_peer", "call_remote", "reliable")
func request_cards() -> void:
var sender_id := multiplayer.get_remote_sender_id()
send_cards.rpc_id(sender_id, player_cards.get(sender_id, []))
@rpc("authority", "call_remote", "reliable")
func send_cards(data: Array) -> void:
my_card = data
func sync_game_state() -> void:
if not multiplayer.is_server():
return
@@ -131,6 +147,7 @@ func sync_game_state() -> void:
game_started = game_started
})
@rpc("authority", "call_remote", "reliable")
func sync_game_state_rpc(data: Dictionary) -> void:
cards = data.cards
@@ -140,6 +157,7 @@ func sync_game_state_rpc(data: Dictionary) -> void:
server_round = data.server_round
game_started = data.game_started
func sync_players() -> void:
if not multiplayer.is_server():
return
@@ -149,6 +167,7 @@ func sync_players() -> void:
player_hp = player_hp
})
@rpc("authority", "call_remote", "reliable")
func sync_players_rpc(data: Dictionary) -> void:
players = data.players
+1
View File
@@ -8,6 +8,7 @@ func _ready():
var root: Window = get_tree().root
current_scene = root.get_child(root.get_child_count() - 1)
func goto_scene(path: String):
get_tree().change_scene_to_file("res://scenes/%s.tscn" % [path])
var root: Window = get_tree().root
+4
View File
@@ -4,17 +4,21 @@ var description: String
var type: String
var card_name: String
func set_texture(pic: String) -> void:
var image: Image = Image.new()
image.load(pic)
$Sprite.texture = ImageTexture.create_from_image(image)
func set_card(cname: String) -> void:
card_name = cname
set_texture("user://download/sources/%s/assets/pics/%s" % [DownloadManager.uuid, GameManager.pic_list[card_name]])
func set_pos(x: int, y: int) -> void:
$Sprite.position = Vector2(x, y)
func get_pos() -> Vector2:
return $Sprite.position
+1
View File
@@ -10,6 +10,7 @@ func _ready() -> void:
card.set_pos(300, 300)
print(card.get_pos())
func init() -> void:
# 设置 UI 展示文本
if multiplayer.is_server():
+3
View File
@@ -4,11 +4,14 @@ extends Node2D
func _on_join_game_pressed() -> void:
$JoinGameUI.show()
func _on_start_game_pressed() -> void:
$CreateGameUI.show()
func _on_setting_button_pressed() -> void:
SceneManager.goto_scene("menus/settings")
func _on_quit_game_pressed() -> void:
get_tree().quit()
+4 -1
View File
@@ -1,20 +1,24 @@
extends Node2D
func _ready() -> void:
init_sources()
init_text()
func init_text() -> void:
$DataSetting/LineEdit.text = GameManager.data_origin
$IPBeginSetting/LineEdit.text = GameManager.ip_begin
$UsernameSetting/LineEdit.text = GameManager.username
$LoadSource/ChooseSource.select(GameManager.source)
func init_sources() -> void:
DownloadManager.get_sources()
for source_name in GameManager.sources:
$LoadSource/ChooseSource.add_item(source_name)
func _on_save_button_pressed() -> void:
GameManager.data_origin = $DataSetting/LineEdit.text
GameManager.ip_begin = $IPBeginSetting/LineEdit.text
@@ -42,7 +46,6 @@ func _on_download_button_pressed() -> void:
$Tips.text = "SETTINGS_TIP_LOADED"
func _on_load_button_pressed() -> void:
if GameManager.sources.size() == 0 or GameManager.source == -1:
$Tips.text = "SETTINGS_TIP_NOLOCALSOURCE"