Update game UI from OptionButton to LineEdit

Replaced multiple OptionButton instances with LineEdit for input fields, including three_of_a_kind, four_of_a_kind, and chance. Updated related scoring logic and adjusted UI themes and assets to reflect the new input method.
This commit is contained in:
Yadciel 2024-09-21 12:30:37 +02:00
parent 59b62d0e72
commit 59f13e7318
6 changed files with 76 additions and 43 deletions

View File

@ -8,13 +8,13 @@ var three : OptionButton
var four : OptionButton var four : OptionButton
var five : OptionButton var five : OptionButton
var six : OptionButton var six : OptionButton
var three_of_a_kind : OptionButton var three_of_a_kind : LineEdit
var four_of_a_kind : OptionButton var four_of_a_kind : LineEdit
var full_house : OptionButton var full_house : OptionButton
var small_straight : OptionButton var small_straight : OptionButton
var large_straight : OptionButton var large_straight : OptionButton
var yahtzee : Button var yahtzee : Button
var chance : OptionButton var chance : LineEdit
var bonus : Label var bonus : Label
var score : Label var score : Label
@ -31,10 +31,8 @@ func _ready():
four = get_node("ScrollContainer/VBoxContainer/Four/HBoxContainer/OptionButton") four = get_node("ScrollContainer/VBoxContainer/Four/HBoxContainer/OptionButton")
five = get_node("ScrollContainer/VBoxContainer/Five/HBoxContainer/OptionButton") five = get_node("ScrollContainer/VBoxContainer/Five/HBoxContainer/OptionButton")
six = get_node("ScrollContainer/VBoxContainer/Six/HBoxContainer/OptionButton") six = get_node("ScrollContainer/VBoxContainer/Six/HBoxContainer/OptionButton")
three_of_a_kind = get_node("ScrollContainer/VBoxContainer/Three_of_a_kind/HBoxContainer/OptionButton") three_of_a_kind = get_node("ScrollContainer/VBoxContainer/Three_of_a_kind/HBoxContainer/LineEdit")
add_items(three_of_a_kind) four_of_a_kind = get_node("ScrollContainer/VBoxContainer/Four_of_a_Kind/HBoxContainer/LineEdit")
four_of_a_kind = get_node("ScrollContainer/VBoxContainer/Four_of_a_Kind/HBoxContainer/OptionButton")
add_items(four_of_a_kind)
full_house = get_node("ScrollContainer/VBoxContainer/Full_House/HBoxContainer/OptionButton") full_house = get_node("ScrollContainer/VBoxContainer/Full_House/HBoxContainer/OptionButton")
full_house.add_item("") full_house.add_item("")
full_house.add_item("-") full_house.add_item("-")
@ -45,8 +43,7 @@ func _ready():
add_items_to_large_straight(large_straight) add_items_to_large_straight(large_straight)
yahtzee = get_node("ScrollContainer/VBoxContainer/yahtzee/HBoxContainer/ButtonYahtzee") yahtzee = get_node("ScrollContainer/VBoxContainer/yahtzee/HBoxContainer/ButtonYahtzee")
bonus = get_node("ScrollContainer/VBoxContainer/Bonus/HBoxContainer/LabelScore") bonus = get_node("ScrollContainer/VBoxContainer/Bonus/HBoxContainer/LabelScore")
chance = get_node("ScrollContainer/VBoxContainer/chance/HBoxContainer/OptionButton") chance = get_node("ScrollContainer/VBoxContainer/chance/HBoxContainer/LineEdit")
add_items(chance)
score = get_node("ScrollContainer/VBoxContainer/Score/HBoxContainer/LabelScore") score = get_node("ScrollContainer/VBoxContainer/Score/HBoxContainer/LabelScore")
pass # Replace with function body. pass # Replace with function body.
@ -90,13 +87,13 @@ func calc_score():
int(four.get_item_text(four.get_selected_id())) + int(four.get_item_text(four.get_selected_id())) +
int(five.get_item_text(five.get_selected_id())) + int(five.get_item_text(five.get_selected_id())) +
int(six.get_item_text(six.get_selected_id())) + int(six.get_item_text(six.get_selected_id())) +
int(three_of_a_kind.get_item_text(three_of_a_kind.get_selected_id())) + int(three_of_a_kind.get_text()) +
int(four_of_a_kind.get_item_text(four_of_a_kind.get_selected_id())) + int(four_of_a_kind.get_text()) +
int(full_house.get_item_text(full_house.get_selected_id())) + int(full_house.get_item_text(full_house.get_selected_id())) +
int(small_straight.get_item_text(small_straight.get_selected_id())) + int(small_straight.get_item_text(small_straight.get_selected_id())) +
int(large_straight.get_item_text(large_straight.get_selected_id())) + int(large_straight.get_item_text(large_straight.get_selected_id())) +
int(yahtzee.text) + int(yahtzee.text) +
int(chance.get_item_text(chance.get_selected_id())) + int(chance.get_text()) +
int(bonus.text)) int(bonus.text))
score.text = str(players[currentPlayer].score) score.text = str(players[currentPlayer].score)
@ -108,13 +105,16 @@ func load_stats():
four.select(players[currentPlayer].four) four.select(players[currentPlayer].four)
five.select(players[currentPlayer].five) five.select(players[currentPlayer].five)
six.select(players[currentPlayer].six) six.select(players[currentPlayer].six)
three_of_a_kind.select(players[currentPlayer].three_of_a_kind) three_of_a_kind.text = str(players[currentPlayer].three_of_a_kind)
four_of_a_kind.select(players[currentPlayer].four_of_a_kind) four_of_a_kind.text = str(players[currentPlayer].four_of_a_kind)
full_house.select(players[currentPlayer].full_house) full_house.select(players[currentPlayer].full_house)
small_straight.select(players[currentPlayer].small_straight) small_straight.select(players[currentPlayer].small_straight)
large_straight.select(players[currentPlayer].large_straight) large_straight.select(players[currentPlayer].large_straight)
yahtzee.text = str(players[currentPlayer].yahtzee) if(players[currentPlayer].yahtzee != 0):
chance.select(players[currentPlayer].chance) yahtzee.text = str(players[currentPlayer].yahtzee)
else:
yahtzee.text = str("+")
chance.text = str(players[currentPlayer].chance)
bonus.text = str(players[currentPlayer].bonus) bonus.text = str(players[currentPlayer].bonus)
pass pass
@ -126,15 +126,28 @@ func save():
players[currentPlayer].four = four.get_selected_id() players[currentPlayer].four = four.get_selected_id()
players[currentPlayer].five = five.get_selected_id() players[currentPlayer].five = five.get_selected_id()
players[currentPlayer].six = six.get_selected_id() players[currentPlayer].six = six.get_selected_id()
players[currentPlayer].three_of_a_kind = int(three_of_a_kind.get_selected_id()) players[currentPlayer].three_of_a_kind = three_of_a_kind.get_text()
players[currentPlayer].four_of_a_kind = int(four_of_a_kind.get_selected_id()) players[currentPlayer].four_of_a_kind = four_of_a_kind.get_text()
players[currentPlayer].full_house = int(full_house.get_selected_id()) players[currentPlayer].full_house = int(full_house.get_selected_id())
players[currentPlayer].small_straight = int(small_straight.get_selected_id()) players[currentPlayer].small_straight = int(small_straight.get_selected_id())
players[currentPlayer].large_straight = int(large_straight.get_selected_id()) players[currentPlayer].large_straight = int(large_straight.get_selected_id())
players[currentPlayer].yahtzee = int(yahtzee.text) players[currentPlayer].yahtzee = int(yahtzee.text)
players[currentPlayer].bonus = int(bonus.text) players[currentPlayer].bonus = int(bonus.text)
players[currentPlayer].chance = int(chance.get_selected_id()) players[currentPlayer].chance = chance.get_text()
players[currentPlayer].score = players[currentPlayer].one + players[currentPlayer].two + players[currentPlayer].three + players[currentPlayer].four + players[currentPlayer].five + players[currentPlayer].six + players[currentPlayer].three_of_a_kind + players[currentPlayer].four_of_a_kind + players[currentPlayer].full_house + players[currentPlayer].small_straight + players[currentPlayer].large_straight + players[currentPlayer].yahtzee + players[currentPlayer].chance + players[currentPlayer].bonus players[currentPlayer].score = (players[currentPlayer].one +
players[currentPlayer].two +
players[currentPlayer].three +
players[currentPlayer].four +
players[currentPlayer].five +
players[currentPlayer].six +
int(players[currentPlayer].three_of_a_kind) +
int(players[currentPlayer].four_of_a_kind) +
players[currentPlayer].full_house +
players[currentPlayer].small_straight +
players[currentPlayer].large_straight +
players[currentPlayer].yahtzee +
int(players[currentPlayer].chance) +
players[currentPlayer].bonus)
pass pass
func _on_button_left_pressed(): func _on_button_left_pressed():
@ -158,6 +171,7 @@ func add_items_to_large_straight(oButton: OptionButton):
oButton.add_item("-") oButton.add_item("-")
oButton.add_item("40") oButton.add_item("40")
pass # Replace with function body. pass # Replace with function body.
func add_items(oButton: OptionButton): func add_items(oButton: OptionButton):
oButton.add_item("") oButton.add_item("")
oButton.add_item("-") oButton.add_item("-")
@ -243,7 +257,10 @@ func _on_button_yahtzee_pressed():
func _on_button_yahtzee_minus_pressed(): func _on_button_yahtzee_minus_pressed():
Player_Manger.get_players()[currentPlayer].yahtzee -= 50 Player_Manger.get_players()[currentPlayer].yahtzee -= 50
yahtzee.text = str(Player_Manger.get_players()[currentPlayer].yahtzee) if(Player_Manger.get_players()[currentPlayer].yahtzee != 0):
yahtzee.text = str(Player_Manger.get_players()[currentPlayer].yahtzee)
else:
yahtzee.text = str("+")
pass # Replace with function body. pass # Replace with function body.

View File

@ -41,6 +41,7 @@ offset_top = -1.44002
offset_right = 8.0 offset_right = 8.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme = ExtResource("3_hdjql")
follow_focus = true follow_focus = true
horizontal_scroll_mode = 0 horizontal_scroll_mode = 0
script = ExtResource("2_xxo3x") script = ExtResource("2_xxo3x")
@ -437,14 +438,13 @@ text = "Three of a kind"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="ScrollContainer/VBoxContainer/Three_of_a_kind/HBoxContainer"] [node name="LineEdit" type="LineEdit" parent="ScrollContainer/VBoxContainer/Three_of_a_kind/HBoxContainer"]
custom_minimum_size = Vector2(250, 150) custom_minimum_size = Vector2(250, 150)
layout_mode = 2 layout_mode = 2
theme = ExtResource("3_hdjql") theme = ExtResource("3_hdjql")
theme_override_font_sizes/font_size = 50 theme_override_font_sizes/font_size = 50
alignment = 1 alignment = 1
clip_text = true virtual_keyboard_type = 2
allow_reselect = true
[node name="Four_of_a_Kind" type="Panel" parent="ScrollContainer/VBoxContainer"] [node name="Four_of_a_Kind" type="Panel" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(1080, 150) custom_minimum_size = Vector2(1080, 150)
@ -472,14 +472,13 @@ text = "Four of a kind"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="ScrollContainer/VBoxContainer/Four_of_a_Kind/HBoxContainer"] [node name="LineEdit" type="LineEdit" parent="ScrollContainer/VBoxContainer/Four_of_a_Kind/HBoxContainer"]
custom_minimum_size = Vector2(250, 150) custom_minimum_size = Vector2(250, 150)
layout_mode = 2 layout_mode = 2
theme = ExtResource("3_hdjql") theme = ExtResource("3_hdjql")
theme_override_font_sizes/font_size = 50 theme_override_font_sizes/font_size = 50
alignment = 1 alignment = 1
clip_text = true virtual_keyboard_type = 2
allow_reselect = true
[node name="Full_House" type="Panel" parent="ScrollContainer/VBoxContainer"] [node name="Full_House" type="Panel" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(1080, 150) custom_minimum_size = Vector2(1080, 150)
@ -624,6 +623,7 @@ clip_text = true
custom_minimum_size = Vector2(250, 150) custom_minimum_size = Vector2(250, 150)
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 50 theme_override_font_sizes/font_size = 50
text = "+"
clip_text = true clip_text = true
[node name="chance" type="Panel" parent="ScrollContainer/VBoxContainer"] [node name="chance" type="Panel" parent="ScrollContainer/VBoxContainer"]
@ -652,14 +652,13 @@ text = "Chance"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="OptionButton" type="OptionButton" parent="ScrollContainer/VBoxContainer/chance/HBoxContainer"] [node name="LineEdit" type="LineEdit" parent="ScrollContainer/VBoxContainer/chance/HBoxContainer"]
custom_minimum_size = Vector2(250, 150) custom_minimum_size = Vector2(250, 150)
layout_mode = 2 layout_mode = 2
theme = ExtResource("3_hdjql") theme = ExtResource("3_hdjql")
theme_override_font_sizes/font_size = 50 theme_override_font_sizes/font_size = 50
alignment = 1 alignment = 1
clip_text = true virtual_keyboard_type = 2
allow_reselect = true
[node name="Score" type="Panel" parent="ScrollContainer/VBoxContainer"] [node name="Score" type="Panel" parent="ScrollContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 150) custom_minimum_size = Vector2(0, 150)

View File

@ -1,4 +1,20 @@
[gd_resource type="Theme" format=3 uid="uid://dt11061t2etln"] [gd_resource type="Theme" load_steps=2 format=3 uid="uid://dt11061t2etln"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_j73w3"]
content_margin_left = 20.0
content_margin_top = 20.0
content_margin_right = 20.0
content_margin_bottom = 20.0
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_blend = true
corner_radius_top_left = 20
corner_radius_top_right = 20
corner_radius_bottom_right = 20
corner_radius_bottom_left = 20
[resource] [resource]
PopupMenu/font_sizes/font_size = 50 PopupMenu/font_sizes/font_size = 50
VScrollBar/styles/scroll = SubResource("StyleBoxFlat_j73w3")

View File

@ -7,13 +7,13 @@ var three : int
var four : int var four : int
var five : int var five : int
var six : int var six : int
var three_of_a_kind : int var three_of_a_kind : String
var four_of_a_kind : int var four_of_a_kind : String
var full_house : int var full_house : int
var small_straight : int var small_straight : int
var large_straight : int var large_straight : int
var yahtzee : int var yahtzee : int
var chance : int var chance : String
var bonus : int var bonus : int
var score: int var score: int
@ -25,13 +25,13 @@ func _init(name: String):
self.four = 0 self.four = 0
self.five = 0 self.five = 0
self.six = 0 self.six = 0
self.three_of_a_kind = 0 self.three_of_a_kind = ""
self.four_of_a_kind = 0 self.four_of_a_kind = ""
self.full_house = 0 self.full_house = 0
self.small_straight = 0 self.small_straight = 0
self.large_straight = 0 self.large_straight = 0
self.yahtzee = 0 self.yahtzee = 0
self.chance = 0 self.chance = ""
self.bonus = 0 self.bonus = 0
self.score = 0 self.score = 0

View File

@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="./Kniffel.apk" export_path="android export/Yahtzee.apk"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@ -37,9 +37,9 @@ package/exclude_from_recents=false
package/show_in_android_tv=false package/show_in_android_tv=false
package/show_in_app_library=true package/show_in_app_library=true
package/show_as_launcher_app=false package/show_as_launcher_app=false
launcher_icons/main_192x192="" launcher_icons/main_192x192="res://android export/Yahtzee.png"
launcher_icons/adaptive_foreground_432x432="" launcher_icons/adaptive_foreground_432x432="res://android export/Yahtzee.png"
launcher_icons/adaptive_background_432x432="" launcher_icons/adaptive_background_432x432="res://android export/Yahtzee.png"
graphics/opengl_debug=false graphics/opengl_debug=false
xr_features/xr_mode=0 xr_features/xr_mode=0
screen/immersive_mode=true screen/immersive_mode=true

View File

@ -10,11 +10,12 @@ config_version=5
[application] [application]
config/name="Kniffel" config/name="Yahtzee"
run/main_scene="res://MainMenu.tscn" run/main_scene="res://MainMenu.tscn"
config/features=PackedStringArray("4.2", "Mobile") config/features=PackedStringArray("4.2", "Mobile")
run/low_processor_mode=true run/low_processor_mode=true
config/icon="res://icon.svg" boot_splash/image="res://android export/Yahtzee.png"
config/icon="res://android export/Yahtzee.png"
[autoload] [autoload]