It's Cow Game! Version 2.04!
This commit is contained in:
commit
a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions
6
UI/AchievementsMenu/AchievementDisplay.gd
Normal file
6
UI/AchievementsMenu/AchievementDisplay.gd
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
extends VBoxContainer
|
||||
|
||||
func show_achievement(achievement:Achievement):
|
||||
%StickerSprite.texture = achievement.get_current_sprite()
|
||||
%AchievementName.text = achievement.get_name()
|
||||
%AchievementDescription.text = achievement.get_description()
|
||||
34
UI/AchievementsMenu/AchievementDisplay.tscn
Normal file
34
UI/AchievementsMenu/AchievementDisplay.tscn
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://ctuytqfbdlvvl"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://byuj18rnowo4t" path="res://Achievements/AchievementScripts/Levels/Sprites/Walking20Achieved.png" id="1_3v18l"]
|
||||
[ext_resource type="Script" path="res://UI/AchievementsMenu/AchievementDisplay.gd" id="1_54p10"]
|
||||
|
||||
[node name="AchievementDisplay" type="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(180, 0)
|
||||
script = ExtResource("1_54p10")
|
||||
|
||||
[node name="StickerSprite" type="TextureRect" parent="."]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("1_3v18l")
|
||||
|
||||
[node name="AchievementName" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "It's Walking Time"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
custom_minimum_size = Vector2(0, 50)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDescription" type="Label" parent="ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(175, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 6
|
||||
text = "Play with a sugary worm on a string"
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
103
UI/AchievementsMenu/AchievementsMenu.gd
Normal file
103
UI/AchievementsMenu/AchievementsMenu.gd
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
extends Control
|
||||
|
||||
var categorySelectors = []
|
||||
var achievementDisplays = []
|
||||
|
||||
var currentCategory
|
||||
var currentAchievements
|
||||
var currentPage
|
||||
var pageSize
|
||||
|
||||
func _ready():
|
||||
initialize()
|
||||
spawn_category_buttons()
|
||||
set_category(AchievementManager.get_categories()[0])
|
||||
|
||||
func opened():
|
||||
get_tree().paused = true
|
||||
update_category_buttons()
|
||||
show_page(currentPage)
|
||||
|
||||
func close():
|
||||
get_tree().paused = false
|
||||
visible = false
|
||||
|
||||
func update_category_buttons():
|
||||
for categorySelector in categorySelectors:
|
||||
categorySelector.update_display()
|
||||
|
||||
func spawn_category_buttons():
|
||||
var categorySelectorScene = load("res://UI/AchievementsMenu/CategorySelector.tscn")
|
||||
|
||||
var categories = AchievementManager.get_categories()
|
||||
for category in categories:
|
||||
var newSelector = categorySelectorScene.instantiate()
|
||||
newSelector.set_category(category)
|
||||
categorySelectors.append(newSelector)
|
||||
%CategorySelectors.add_child(newSelector)
|
||||
|
||||
newSelector.pressed.connect(category_selector_clicked.bind(newSelector))
|
||||
|
||||
func category_selector_clicked(selector):
|
||||
set_category(selector.get_category())
|
||||
|
||||
func set_category(category):
|
||||
currentCategory = category
|
||||
currentAchievements = category.get_achievements()
|
||||
show_page(0)
|
||||
|
||||
func show_page(pageNum):
|
||||
currentPage = pageNum
|
||||
|
||||
var pageAchievements = get_page_achievements()
|
||||
for i in range(pageSize):
|
||||
var currentDisplay = achievementDisplays[i]
|
||||
if i < pageAchievements.size():
|
||||
currentDisplay.visible = true
|
||||
currentDisplay.show_achievement(pageAchievements[i])
|
||||
else:
|
||||
currentDisplay.visible = false
|
||||
|
||||
var maxPage = get_max_page()
|
||||
%PageNumber.text = "Page " + str(pageNum + 1) + "/" + str(maxPage + 1)
|
||||
update_page_buttons()
|
||||
|
||||
func get_page_achievements():
|
||||
var firstIndex = currentPage * pageSize
|
||||
|
||||
var pageAchievements = []
|
||||
for i in range(pageSize):
|
||||
var currentIndex = firstIndex + i
|
||||
if currentIndex < currentAchievements.size():
|
||||
pageAchievements.append(currentAchievements[currentIndex])
|
||||
else:
|
||||
break
|
||||
|
||||
return pageAchievements
|
||||
|
||||
func get_max_page():
|
||||
var maxPage = ceili(float(currentAchievements.size())/float(pageSize)) - 1
|
||||
return maxPage
|
||||
|
||||
func update_page_buttons():
|
||||
if currentPage <= 0:
|
||||
%PageLeftButton.disabled = true
|
||||
else:
|
||||
%PageLeftButton.disabled = false
|
||||
if currentPage >= get_max_page():
|
||||
%PageRightButton.disabled = true
|
||||
else:
|
||||
%PageRightButton.disabled = false
|
||||
|
||||
func initialize():
|
||||
achievementDisplays = %AchievementDisplays.get_children()
|
||||
pageSize = achievementDisplays.size()
|
||||
|
||||
func _on_page_left_button_pressed():
|
||||
show_page(currentPage - 1)
|
||||
|
||||
func _on_page_right_button_pressed():
|
||||
show_page(currentPage + 1)
|
||||
|
||||
func _on_close_button_pressed():
|
||||
close()
|
||||
161
UI/AchievementsMenu/AchievementsMenu.tscn
Normal file
161
UI/AchievementsMenu/AchievementsMenu.tscn
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://dnt4r6t0qkc6g"]
|
||||
|
||||
[ext_resource type="Script" path="res://UI/AchievementsMenu/AchievementsMenu.gd" id="1_f2u73"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctuytqfbdlvvl" path="res://UI/AchievementsMenu/AchievementDisplay.tscn" id="2_d8wsb"]
|
||||
[ext_resource type="PackedScene" uid="uid://bv25pnvc5mfkl" path="res://UI/Buttons/PageButtons/PageLeftButton.tscn" id="3_oanwh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dntmbosucrj4u" path="res://UI/Buttons/PageButtons/PageRightButton.tscn" id="4_k0eub"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4oavb"]
|
||||
bg_color = Color(0.372549, 0.6, 0.6, 1)
|
||||
border_width_left = 6
|
||||
border_width_top = 6
|
||||
border_width_right = 7
|
||||
border_width_bottom = 6
|
||||
|
||||
[node name="AchievementsMenu" type="Control"]
|
||||
process_mode = 3
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_f2u73")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
custom_minimum_size = Vector2(650, 595)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -300.0
|
||||
offset_top = -200.0
|
||||
offset_right = 300.0
|
||||
offset_bottom = 200.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_4oavb")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementsLabelMargin" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 4
|
||||
|
||||
[node name="AchievementsLabel" type="Label" parent="PanelContainer/VBoxContainer/AchievementsLabelMargin"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "Achievements"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/margin_left = 8
|
||||
theme_override_constants/margin_top = 7
|
||||
theme_override_constants/margin_right = 8
|
||||
theme_override_constants/margin_bottom = 8
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CategoryZone" type="ScrollContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(240, 0)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="CategorySelectors" type="VBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/CategoryZone"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_bottom = 8
|
||||
|
||||
[node name="CloseButton" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/MarginContainer"]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 22
|
||||
text = "Close"
|
||||
|
||||
[node name="StickersZone" type="VBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="AchievementDisplays" type="HFlowContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/h_separation = 17
|
||||
alignment = 1
|
||||
|
||||
[node name="AchievementDisplay" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDisplay2" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDisplay3" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDisplay4" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDisplay5" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AchievementDisplay6" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/AchievementDisplays" instance=ExtResource("2_d8wsb")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone"]
|
||||
custom_minimum_size = Vector2(0, 65)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 10
|
||||
theme_override_constants/margin_left = 30
|
||||
theme_override_constants/margin_top = 6
|
||||
theme_override_constants/margin_right = 30
|
||||
theme_override_constants/margin_bottom = 6
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="PageLeftButton" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer/HBoxContainer" instance=ExtResource("3_oanwh")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(80, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
ignore_texture_size = true
|
||||
stretch_mode = 0
|
||||
|
||||
[node name="PageNumber" type="Label" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 6
|
||||
theme_override_font_sizes/font_size = 25
|
||||
text = "Page 3/1"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="PageRightButton" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer/HBoxContainer" instance=ExtResource("4_k0eub")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(80, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
ignore_texture_size = true
|
||||
stretch_mode = 0
|
||||
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/VBoxContainer/MarginContainer/CloseButton" to="." method="_on_close_button_pressed"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer/HBoxContainer/PageLeftButton" to="." method="_on_page_left_button_pressed"]
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/StickersZone/MarginContainer/HBoxContainer/PageRightButton" to="." method="_on_page_right_button_pressed"]
|
||||
34
UI/AchievementsMenu/CategorySelector.gd
Normal file
34
UI/AchievementsMenu/CategorySelector.gd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
extends Button
|
||||
|
||||
var shownCategory
|
||||
|
||||
func get_category():
|
||||
return shownCategory
|
||||
|
||||
func set_category(category):
|
||||
shownCategory = category
|
||||
update_display()
|
||||
|
||||
func update_display():
|
||||
%CategoryTitle.text = shownCategory.get_category_name()
|
||||
|
||||
var completed = shownCategory.get_complete_count()
|
||||
var total = shownCategory.get_achievement_count()
|
||||
var percentage = floori((float(completed) / float(total)) * 100)
|
||||
|
||||
if completed > 0 and percentage <= 0:
|
||||
percentage = 1
|
||||
|
||||
var progressCountText = str(completed) + "/" + str(total) + " - "
|
||||
progressCountText += str(percentage) + "%"
|
||||
%ProgressCount.text = progressCountText
|
||||
|
||||
%ProgressBar.max_value = total
|
||||
%ProgressBar.value = completed
|
||||
|
||||
if completed >= total:
|
||||
var greenFillBox:StyleBoxFlat = StyleBoxFlat.new()
|
||||
greenFillBox.bg_color = Color.GREEN
|
||||
%ProgressBar.set("theme_override_styles/fill", greenFillBox)
|
||||
|
||||
|
||||
52
UI/AchievementsMenu/CategorySelector.tscn
Normal file
52
UI/AchievementsMenu/CategorySelector.tscn
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://b56fxgx8o2mr2"]
|
||||
|
||||
[ext_resource type="Script" path="res://UI/AchievementsMenu/CategorySelector.gd" id="1_sd6m4"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mcele"]
|
||||
bg_color = Color(0.733333, 0.541176, 0.572549, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y3isj"]
|
||||
bg_color = Color(0.839216, 0.796078, 0, 1)
|
||||
|
||||
[node name="CategorySelector" type="Button"]
|
||||
custom_minimum_size = Vector2(240, 80)
|
||||
script = ExtResource("1_sd6m4")
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="."]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(220, 40)
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -110.0
|
||||
offset_top = -40.0
|
||||
offset_right = 110.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_override_styles/background = SubResource("StyleBoxFlat_mcele")
|
||||
theme_override_styles/fill = SubResource("StyleBoxFlat_y3isj")
|
||||
value = 40.0
|
||||
show_percentage = false
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
custom_minimum_size = Vector2(240, 80)
|
||||
layout_mode = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="CategoryTitle" type="Label" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 26
|
||||
text = "Levels"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ProgressCount" type="Label" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 26
|
||||
text = "1/1 - 100%"
|
||||
horizontal_alignment = 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue