From 54b9012a479eb825ca7e081e912ea42f7ca1a1c1 Mon Sep 17 00:00:00 2001 From: martyTF Date: Sat, 22 Nov 2025 21:04:34 +0100 Subject: [PATCH] first commit, long overdue deez --- 01 - Menus/01 - Main Menu/main_menu.gd | 99 ++++++++ 01 - Menus/01 - Main Menu/main_menu.gd.uid | 1 + ...u.sync-conflict-20251121-170757-6PJZD52.gd | 99 ++++++++ ...nc-conflict-20251121-170757-6PJZD52.gd.uid | 1 + 01 - Menus/01 - Main Menu/main_menu.tscn | 50 ++++ 01 - Menus/02 - Selector/selector.gd | 152 +++++++++++ 01 - Menus/02 - Selector/selector.gd.uid | 1 + 01 - Menus/02 - Selector/selector.tscn | 96 +++++++ 01 - Menus/03 - Sheets/item.gd | 74 ++++++ 01 - Menus/03 - Sheets/item.gd.uid | 1 + 01 - Menus/03 - Sheets/item.tscn | 25 ++ 01 - Menus/04 - Modules/modules_.gd | 5 + 01 - Menus/04 - Modules/modules_.gd.uid | 1 + 01 - Menus/04 - Modules/modules_.tscn | 12 + 01 - Menus/04 - Modules/modules_character.gd | 5 + .../04 - Modules/modules_character.gd.uid | 1 + .../04 - Modules/modules_character.tscn | 8 + 01 - Menus/04 - Modules/modules_list.gd | 171 +++++++++++++ 01 - Menus/04 - Modules/modules_list.gd.uid | 1 + 01 - Menus/04 - Modules/modules_list.tscn | 88 +++++++ 01 - Menus/04 - Modules/modules_location.gd | 6 + .../04 - Modules/modules_location.gd.uid | 1 + 01 - Menus/04 - Modules/modules_location.tscn | 12 + 01 - Menus/04 - Modules/modules_modifier.gd | 7 + .../04 - Modules/modules_modifier.gd.uid | 1 + 01 - Menus/04 - Modules/modules_modifier.tscn | 12 + 01 - Menus/04 - Modules/modules_skill.gd | 123 +++++++++ 01 - Menus/04 - Modules/modules_skill.gd.uid | 1 + 01 - Menus/04 - Modules/modules_skill.tscn | 177 +++++++++++++ 01 - Menus/04 - Modules/modules_stat.gd | 7 + 01 - Menus/04 - Modules/modules_stat.gd.uid | 1 + 01 - Menus/04 - Modules/modules_stat.tscn | 12 + 01 - Menus/04 - Modules/modules_text.gd | 25 ++ 01 - Menus/04 - Modules/modules_text.gd.uid | 1 + 01 - Menus/04 - Modules/modules_text.tscn | 19 ++ 01 - Menus/04 - Modules/modules_trait.gd | 7 + 01 - Menus/04 - Modules/modules_trait.gd.uid | 1 + 01 - Menus/04 - Modules/modules_trait.tscn | 8 + 01 - Menus/04 - Modules/modules_xenoline.gd | 7 + .../04 - Modules/modules_xenoline.gd.uid | 1 + 01 - Menus/04 - Modules/modules_xenoline.tscn | 8 + .../05 - Campaign Manager/campaign_manager.gd | 40 +++ .../campaign_manager.gd.uid | 1 + .../campaign_manager.tscn | 55 ++++ .../05 - Campaign Manager/item_helper.gd | 117 +++++++++ .../05 - Campaign Manager/item_helper.gd.uid | 1 + .../05 - Campaign Manager/item_helper.tscn | 131 ++++++++++ 01 - Menus/06 - World Map/world_map.gd | 1 + 01 - Menus/06 - World Map/world_map.gd.uid | 1 + 01 - Menus/06 - World Map/world_map.tscn | 6 + 02 - Configurations/attachment.ini | 3 + 02 - Configurations/campaign/campaign.ini | 2 + 02 - Configurations/campaign/categories.ini | 125 +++++++++ 02 - Configurations/campaign/main_menu.ini | 19 ++ 02 - Configurations/campath.ini | 3 + 02 - Configurations/character.ini | 39 +++ 02 - Configurations/city.ini | 4 + 02 - Configurations/country.ini | 9 + 02 - Configurations/drug.ini | 3 + 02 - Configurations/faction.ini | 6 + 02 - Configurations/location.ini | 7 + 02 - Configurations/modifier.ini | 41 +++ 02 - Configurations/pet.ini | 8 + 02 - Configurations/ranged weapon.ini | 4 + 02 - Configurations/region.ini | 10 + 02 - Configurations/skill.ini | 77 ++++++ 02 - Configurations/stat.ini | 1 + 02 - Configurations/target.ini | 32 +++ 02 - Configurations/trait.ini | 26 ++ 02 - Configurations/wallia.ini | 3 + 02 - Configurations/weapon.ini | 7 + 02 - Configurations/xenoline.ini | 20 ++ icon.svg | 1 + icon.svg.import | 43 ++++ palette.tres | 4 + project.godot | 33 +++ ...ync-conflict-20251121-170023-6PJZD52.godot | 34 +++ ...ync-conflict-20251121-170029-6PJZD52.godot | 34 +++ theme.tres | 237 ++++++++++++++++++ 79 files changed, 2516 insertions(+) create mode 100644 01 - Menus/01 - Main Menu/main_menu.gd create mode 100644 01 - Menus/01 - Main Menu/main_menu.gd.uid create mode 100644 01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd create mode 100644 01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd.uid create mode 100644 01 - Menus/01 - Main Menu/main_menu.tscn create mode 100644 01 - Menus/02 - Selector/selector.gd create mode 100644 01 - Menus/02 - Selector/selector.gd.uid create mode 100644 01 - Menus/02 - Selector/selector.tscn create mode 100644 01 - Menus/03 - Sheets/item.gd create mode 100644 01 - Menus/03 - Sheets/item.gd.uid create mode 100644 01 - Menus/03 - Sheets/item.tscn create mode 100644 01 - Menus/04 - Modules/modules_.gd create mode 100644 01 - Menus/04 - Modules/modules_.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_.tscn create mode 100644 01 - Menus/04 - Modules/modules_character.gd create mode 100644 01 - Menus/04 - Modules/modules_character.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_character.tscn create mode 100644 01 - Menus/04 - Modules/modules_list.gd create mode 100644 01 - Menus/04 - Modules/modules_list.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_list.tscn create mode 100644 01 - Menus/04 - Modules/modules_location.gd create mode 100644 01 - Menus/04 - Modules/modules_location.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_location.tscn create mode 100644 01 - Menus/04 - Modules/modules_modifier.gd create mode 100644 01 - Menus/04 - Modules/modules_modifier.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_modifier.tscn create mode 100644 01 - Menus/04 - Modules/modules_skill.gd create mode 100644 01 - Menus/04 - Modules/modules_skill.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_skill.tscn create mode 100644 01 - Menus/04 - Modules/modules_stat.gd create mode 100644 01 - Menus/04 - Modules/modules_stat.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_stat.tscn create mode 100644 01 - Menus/04 - Modules/modules_text.gd create mode 100644 01 - Menus/04 - Modules/modules_text.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_text.tscn create mode 100644 01 - Menus/04 - Modules/modules_trait.gd create mode 100644 01 - Menus/04 - Modules/modules_trait.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_trait.tscn create mode 100644 01 - Menus/04 - Modules/modules_xenoline.gd create mode 100644 01 - Menus/04 - Modules/modules_xenoline.gd.uid create mode 100644 01 - Menus/04 - Modules/modules_xenoline.tscn create mode 100644 01 - Menus/05 - Campaign Manager/campaign_manager.gd create mode 100644 01 - Menus/05 - Campaign Manager/campaign_manager.gd.uid create mode 100644 01 - Menus/05 - Campaign Manager/campaign_manager.tscn create mode 100644 01 - Menus/05 - Campaign Manager/item_helper.gd create mode 100644 01 - Menus/05 - Campaign Manager/item_helper.gd.uid create mode 100644 01 - Menus/05 - Campaign Manager/item_helper.tscn create mode 100644 01 - Menus/06 - World Map/world_map.gd create mode 100644 01 - Menus/06 - World Map/world_map.gd.uid create mode 100644 01 - Menus/06 - World Map/world_map.tscn create mode 100644 02 - Configurations/attachment.ini create mode 100644 02 - Configurations/campaign/campaign.ini create mode 100644 02 - Configurations/campaign/categories.ini create mode 100644 02 - Configurations/campaign/main_menu.ini create mode 100644 02 - Configurations/campath.ini create mode 100644 02 - Configurations/character.ini create mode 100644 02 - Configurations/city.ini create mode 100644 02 - Configurations/country.ini create mode 100644 02 - Configurations/drug.ini create mode 100644 02 - Configurations/faction.ini create mode 100644 02 - Configurations/location.ini create mode 100644 02 - Configurations/modifier.ini create mode 100644 02 - Configurations/pet.ini create mode 100644 02 - Configurations/ranged weapon.ini create mode 100644 02 - Configurations/region.ini create mode 100644 02 - Configurations/skill.ini create mode 120000 02 - Configurations/stat.ini create mode 100644 02 - Configurations/target.ini create mode 100644 02 - Configurations/trait.ini create mode 100644 02 - Configurations/wallia.ini create mode 100644 02 - Configurations/weapon.ini create mode 100644 02 - Configurations/xenoline.ini create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 palette.tres create mode 100644 project.godot create mode 100644 project.sync-conflict-20251121-170023-6PJZD52.godot create mode 100644 project.sync-conflict-20251121-170029-6PJZD52.godot create mode 100644 theme.tres diff --git a/01 - Menus/01 - Main Menu/main_menu.gd b/01 - Menus/01 - Main Menu/main_menu.gd new file mode 100644 index 0000000..ba670e1 --- /dev/null +++ b/01 - Menus/01 - Main Menu/main_menu.gd @@ -0,0 +1,99 @@ +extends Node2D + +var menu_item +var conf_mm +var conf_cat +var item_names = [] +var item_proper_names = [] +var categories +var pixel_x +var pixel_y +var ui_scale = 1 + +func _enter_tree() -> void: + conf_mm = ConfigFile.new() + conf_mm.load("res://02 - Configurations/campaign/main_menu.ini") + conf_cat = ConfigFile.new() + conf_cat.load("res://02 - Configurations/campaign/categories.ini") + print("main_menu:_enter_tree:1 " + str(conf_mm.get_sections())) + categories = [] + pixel_x = get_viewport_rect().size[0] + pixel_y = get_viewport_rect().size[1] + if pixel_x + pixel_y > 2900: + ui_scale = 1 + else: + ui_scale = 0.7 + print("main_menu:_enter_tree:2 " + str(pixel_x) + " " + str(pixel_y)) + for i in conf_mm.get_sections(): + categories = categories + [i] + + for i in categories: + #print(i) + var button = OptionButton.new() + button.text = conf_mm.get_value(i,"name") + button.name = i + button.custom_minimum_size = Vector2(320,64) + button.connect("item_selected",self.item_selected.bind(button)) + button.allow_reselect = true + print("main_menu:_enter_tree:3 " + str(conf_mm.get_sections())) + for j in conf_mm.get_value(button.name,"items",[]): + item_names = item_names + [j] + item_proper_names = item_proper_names + [conf_cat.get_value(j,"name","")] + print("main_menu:_enter_tree:3 ") + button.add_item(conf_cat.get_value(j,"name","")) + %container.add_child(button) + set_menu_items() + +func item_selected(k,tab): + print("main_menu:select_category:1 " + str(tab.get_item_text(k))) + menu_item = load("res://01 - Menus/02 - Selector/selector.tscn").instantiate() + print("main_menu:select_category:2 " + str(item_names)) + menu_item.category = item_names[item_proper_names.find(tab.get_item_text(k))] + add_child(menu_item) + menu_item.set_menu_items(pixel_x,pixel_y,ui_scale) + +func remove_tabs(tab): + remove_child.call_deferred(tab) + +func _on_exit_button_up() -> void: + get_tree().quit() + +func set_menu_items(): + print("main_menu:set_menu_items:1 " + str(pixel_x) + " " + str(pixel_y)) + %scroll.size.y = pixel_y - (256 * ui_scale) + %scroll.position.y = 128 * ui_scale + %campaign_manager.position.y = pixel_y - 192 * ui_scale + %exit.position.y = pixel_y - 96 * ui_scale + %ui_main_menu.size.y = pixel_y + %ui_background.size.y = pixel_y + %ui_background.size.x = pixel_x + if pixel_x < pixel_y: #mobile + %ui_main_menu.size.x = pixel_x + for i in [%scroll,%exit,%campaign_manager]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = pixel_x/ui_scale - 128 + i.position.x = 64*ui_scale + else: + %ui_main_menu.size.x = 512.0 * ui_scale + for i in [%scroll,%exit,%campaign_manager]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = 448 + i.position.x = 32 * ui_scale + + +func _process(_delta: float) -> void: + if pixel_x != get_viewport_rect().size[0] or pixel_y != get_viewport_rect().size[1]: + pixel_x = get_viewport_rect().size[0] + pixel_y = get_viewport_rect().size[1] + if pixel_x + pixel_y > 3000: + ui_scale = 1 + else: + ui_scale = 0.7 + if menu_item: + menu_item.set_menu_items(pixel_x,pixel_y,ui_scale) + set_menu_items() + + +func _on_campaign_manager_button_up() -> void: + var cm = load("res://01 - Menus/05 - Campaign Manager/campaign_manager.tscn").instantiate() + add_child(cm) diff --git a/01 - Menus/01 - Main Menu/main_menu.gd.uid b/01 - Menus/01 - Main Menu/main_menu.gd.uid new file mode 100644 index 0000000..5605330 --- /dev/null +++ b/01 - Menus/01 - Main Menu/main_menu.gd.uid @@ -0,0 +1 @@ +uid://ciorv2qbkgxpl diff --git a/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd b/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd new file mode 100644 index 0000000..6540c75 --- /dev/null +++ b/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd @@ -0,0 +1,99 @@ +extends Node2D + +var menu_item +var conf_mm +var conf_cat +var item_names = [] +var item_proper_names = [] +var categories +var pixel_x +var pixel_y +var ui_scale = 1 + +func _enter_tree() -> void: + conf_mm = ConfigFile.new() + conf_mm.load("res://02 - Configurations/campaign/main_menu.ini") + conf_cat = ConfigFile.new() + conf_cat.load("res://02 - Configurations/campaign/categories.ini") + print("main_menu:_enter_tree:1 " + str(conf_mm.get_sections())) + categories = [] + pixel_x = get_viewport_rect().size[0] + pixel_y = get_viewport_rect().size[1] + if pixel_x + pixel_y > 2900: + ui_scale = 1 + else: + ui_scale = 0.7 + print("main_menu:_enter_tree:2 " + str(pixel_x) + " " + str(pixel_y)) + for i in conf_mm.get_sections(): + categories = categories + [i] + + for i in categories: + #print(i) + var button = OptionButton.new() + button.text = conf_mm.get_value(i,"name") + button.name = i + button.custom_minimum_size = Vector2(320,64) + button.connect("item_selected",self.item_selected.bind(button)) + button.allow_reselect = true + print("main_menu:_enter_tree:3 " + str(conf_mm.get_sections())) + for j in conf_mm.get_value(button.name,"items",[]): + item_names = item_names + [j] + item_proper_names = item_proper_names + [conf_cat.get_value(j,"name","")] + print("main_menu:_enter_tree:3 ") + button.add_item(conf_cat.get_value(j,"name","")) + %container.add_child(button) + set_menu_items() + +func item_selected(k,tab): + print("main_menu:select_category:1 " + str(tab.get_item_text(k))) + menu_item = load("res://01 - Menus/02 - Selector/selector.tscn").instantiate() + print("main_menu:select_category:2 " + str(item_names)) + menu_item.category = item_names[item_proper_names.find(tab.get_item_text(k))] + add_child(menu_item) + remove_child.call_deferred(tab) + +func remove_tabs(tab): + remove_child.call_deferred(tab) + +func _on_exit_button_up() -> void: + get_tree().quit() + +func set_menu_items(): + print("main_menu:set_menu_items:1 " + str(pixel_x) + " " + str(pixel_y)) + %scroll.size.y = pixel_y - (400 * ui_scale) + %scroll.position.y = 128 * ui_scale + %campaign_manager.position.y = pixel_y - 192 * ui_scale + %exit.position.y = pixel_y - 96 * ui_scale + %ui_main_menu.size.y = pixel_y + %ui_background.size.y = pixel_y + %ui_background.size.x = pixel_x + if pixel_x < pixel_y: #mobile + %ui_main_menu.size.x = pixel_x + for i in [%scroll,%exit,%campaign_manager]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = (pixel_x)/ui_scale -128 + i.position.x = 64 + else: + %ui_main_menu.size.x = 512.0 * ui_scale + for i in [%scroll,%exit,%campaign_manager]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = 448 + i.position.x = 32 * ui_scale + + +func _process(_delta: float) -> void: + if pixel_x != get_viewport_rect().size[0] or pixel_y != get_viewport_rect().size[1]: + pixel_x = get_viewport_rect().size[0] + pixel_y = get_viewport_rect().size[1] + if pixel_x + pixel_y > 3000: + ui_scale = 1 + else: + ui_scale = 0.7 + if menu_item: + menu_item.set_menu_items(pixel_x,pixel_y,ui_scale) + set_menu_items() + + +func _on_campaign_manager_button_up() -> void: + var cm = load("res://01 - Menus/05 - Campaign Manager/campaign_manager.tscn").instantiate() + add_child(cm) diff --git a/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd.uid b/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd.uid new file mode 100644 index 0000000..035ff14 --- /dev/null +++ b/01 - Menus/01 - Main Menu/main_menu.sync-conflict-20251121-170757-6PJZD52.gd.uid @@ -0,0 +1 @@ +uid://4isse2tc5gjs diff --git a/01 - Menus/01 - Main Menu/main_menu.tscn b/01 - Menus/01 - Main Menu/main_menu.tscn new file mode 100644 index 0000000..221ceff --- /dev/null +++ b/01 - Menus/01 - Main Menu/main_menu.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=2 format=3 uid="uid://c1qk762funu8g"] + +[ext_resource type="Script" uid="uid://ciorv2qbkgxpl" path="res://01 - Menus/01 - Main Menu/main_menu.gd" id="1_6vrvy"] + +[node name="main_menu" type="Node2D"] +script = ExtResource("1_6vrvy") + +[node name="ui_main_menu" type="ColorRect" parent="."] +unique_name_in_owner = true +offset_right = 512.0 +offset_bottom = 1440.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="ui_background" type="ColorRect" parent="."] +unique_name_in_owner = true +offset_right = 2564.0 +offset_bottom = 1440.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 0.78431374) + +[node name="exit" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1280.0 +offset_right = 416.0 +offset_bottom = 1344.0 +text = "Exit" + +[node name="campaign_manager" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1184.0 +offset_right = 416.0 +offset_bottom = 1248.0 +text = "Campaign Manager" + +[node name="scroll" type="ScrollContainer" parent="."] +unique_name_in_owner = true +offset_left = 32.0 +offset_top = 192.0 +offset_right = 480.0 +offset_bottom = 1152.0 + +[node name="container" type="VBoxContainer" parent="scroll"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[connection signal="button_up" from="exit" to="." method="_on_exit_button_up"] +[connection signal="button_up" from="campaign_manager" to="." method="_on_campaign_manager_button_up"] diff --git a/01 - Menus/02 - Selector/selector.gd b/01 - Menus/02 - Selector/selector.gd new file mode 100644 index 0000000..4a58944 --- /dev/null +++ b/01 - Menus/02 - Selector/selector.gd @@ -0,0 +1,152 @@ +extends Node2D + +var category +var item + +var item_filter = "" +var config +var ini +var sheet +var sort = "alphabetically" + +func _enter_tree() -> void: + ini = "res://02 - Configurations/" + category + ".ini" + %new_item_name.visible = false + %delete.visible = false + %item_name.visible = false + %save.visible = false + %new_item.text = "New " + category + %filter.placeholder_text = "Filter " + category + %new_item_name.placeholder_text = "Set " + category + " name" + %save.text = "Save " + category + #print(category) + list_items() + +func _on_close_button_up() -> void: + queue_free() + +func list_items() -> void: + config = ConfigFile.new() + config.load(ini) + print(ini) + var k = config.get_sections() + if sort == "alphabetically": + k.sort() + #print(str(k)) + var i = 0 + %list.item_count = k.size() + #print(str(%list.item_count)) + for j in k: + if item_filter == "": + %list.set_item_text(i,str(j)) + i = i+1 + elif item_filter.to_lower() in j.to_lower(): + %list.set_item_text(i,str(j)) + i = i+1 + #print(j) + else: + %list.item_count = %list.item_count -1 + #print(str(%list.item_count)) + + +func refresh_view(): + %item_name.text = item + if item != "": + config = ConfigFile.new() + config.load(ini) + %save.visible = false + + +func _on_list_item_selected(index: int) -> void: + item = %list.get_item_text(index) + #print(%list.get_item_text(index)) + %delete.text = "Delete " + %list.get_item_text(index) + %delete.visible = true + %item_name.visible = true + if sheet: + remove_child(sheet) + sheet = load("res://01 - Menus/03 - Sheets/item.tscn").instantiate() + sheet.item = item + sheet.category = category + sheet.position.x = 512 + sheet.position.y = 256 + add_child(sheet) + refresh_view() + + +func _on_filter_text_changed(new_text: String) -> void: + item_filter = new_text + #print(str(%list.get_selected_items())) + list_items() + if %list.item_count == 1: + %list.select(0) + else: + %list.select(0) + %list.deselect(0) + + +func _on_new_item_button_up() -> void: + %new_item_name.visible = true + %new_item_name.grab_focus() + + +func _on_new_item_name_text_submitted(new_text: String) -> void: + config = ConfigFile.new() + item = new_text + config.load(ini) + config.set_value(item,"type",category) + config.save(ini) + %new_item_name.text = "" + %new_item_name.visible = false +# sheet.save() + refresh_view() + list_items() + + +func _on_new_item_name_editing_toggled(toggled_on: bool) -> void: + if !toggled_on: + %new_item_name.text = "" + %new_item_name.visible = false + + +func _on_delete_button_up() -> void: + config = ConfigFile.new() + config.load(ini) + config.erase_section(item) + config.save(ini) + list_items() + item = "" + %delete.visible = false + %item_name.visible = false + remove_child(sheet) + refresh_view() + + +func _on_save_button_up() -> void: + sheet.save() + %save.visible = false + +func show_save(): + %save.visible = true + +func set_menu_items(pixel_x,pixel_y,ui_scale): + %ui_background.size.y = pixel_y + %close.position.y = pixel_y - 96 * ui_scale + %new_item.position.y = pixel_y - 192 * ui_scale + %new_item_name.position.y = pixel_y - 192 * ui_scale + %delete.position.y = pixel_y - 286 * ui_scale + %filter.position.y = pixel_y - 384 * ui_scale + %list.position = (Vector2(128,128)) * ui_scale + %list.size.y = pixel_y/ui_scale - 620 + if pixel_x < pixel_y: #mobile + %ui_background.size.x = pixel_x + for i in [%close,%new_item,%filter,%delete,%save,%new_item_name,%list]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = pixel_x/ui_scale - 128 + i.position.x = 64 * ui_scale + else: + %ui_background.size.x = 512.0 * ui_scale + for i in [%close,%new_item,%filter,%delete,%save,%new_item_name,%list]: + i.scale = Vector2(ui_scale,ui_scale) + i.size.x = 448 + i.position.x = 32 * ui_scale diff --git a/01 - Menus/02 - Selector/selector.gd.uid b/01 - Menus/02 - Selector/selector.gd.uid new file mode 100644 index 0000000..dbadd69 --- /dev/null +++ b/01 - Menus/02 - Selector/selector.gd.uid @@ -0,0 +1 @@ +uid://c7qgo02sbv7wl diff --git a/01 - Menus/02 - Selector/selector.tscn b/01 - Menus/02 - Selector/selector.tscn new file mode 100644 index 0000000..4b83b29 --- /dev/null +++ b/01 - Menus/02 - Selector/selector.tscn @@ -0,0 +1,96 @@ +[gd_scene load_steps=2 format=3 uid="uid://cefrjogovj4ql"] + +[ext_resource type="Script" uid="uid://c7qgo02sbv7wl" path="res://01 - Menus/02 - Selector/selector.gd" id="1_03gsk"] + +[node name="selector" type="Node2D"] +script = ExtResource("1_03gsk") + +[node name="background" type="Node2D" parent="."] + +[node name="ui_background" type="ColorRect" parent="background"] +unique_name_in_owner = true +offset_right = 512.0 +offset_bottom = 1440.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="close" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1280.0 +offset_right = 416.0 +offset_bottom = 1344.0 +text = "Close" + +[node name="new_item" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1184.0 +offset_right = 416.0 +offset_bottom = 1248.0 +text = "New Item +" + +[node name="new_item_name" type="LineEdit" parent="."] +unique_name_in_owner = true +offset_left = 40.0 +offset_top = 1184.0 +offset_right = 490.0 +offset_bottom = 1248.0 +placeholder_text = "Set Item Name" + +[node name="filter" type="LineEdit" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 992.0 +offset_right = 432.0 +offset_bottom = 1056.0 +placeholder_text = "Filter Items" + +[node name="list" type="ItemList" parent="."] +unique_name_in_owner = true +clip_contents = false +offset_left = 64.0 +offset_top = 100.0 +offset_right = 448.0 +offset_bottom = 832.0 +allow_reselect = true +item_count = 2 +item_0/text = "Item A" +item_1/text = "Item B" + +[node name="delete" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1088.0 +offset_right = 416.0 +offset_bottom = 1152.0 +text = "Delete Item" + +[node name="save" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 896.0 +offset_right = 416.0 +offset_bottom = 960.0 +text = "Save Item" + +[node name="item_name" type="Label" parent="."] +unique_name_in_owner = true +offset_left = 1280.0 +offset_top = 96.0 +offset_right = 1920.0 +offset_bottom = 170.0 +theme_override_font_sizes/font_size = 50 +text = "Item Name" +horizontal_alignment = 1 + +[node name="HTTPRequest" type="HTTPRequest" parent="."] + +[connection signal="button_up" from="close" to="." method="_on_close_button_up"] +[connection signal="button_up" from="new_item" to="." method="_on_new_item_button_up"] +[connection signal="editing_toggled" from="new_item_name" to="." method="_on_new_item_name_editing_toggled"] +[connection signal="text_submitted" from="new_item_name" to="." method="_on_new_item_name_text_submitted"] +[connection signal="text_changed" from="filter" to="." method="_on_filter_text_changed"] +[connection signal="item_selected" from="list" to="." method="_on_list_item_selected"] +[connection signal="button_up" from="delete" to="." method="_on_delete_button_up"] +[connection signal="button_up" from="save" to="." method="_on_save_button_up"] diff --git a/01 - Menus/03 - Sheets/item.gd b/01 - Menus/03 - Sheets/item.gd new file mode 100644 index 0000000..9d4623d --- /dev/null +++ b/01 - Menus/03 - Sheets/item.gd @@ -0,0 +1,74 @@ +extends Node2D + +var item # e.g. grondir +var category # e.g. character + +var module +var module_type +var active_module + +var module_self:String +var modules_list:Array +var modules_text:Array +var modules_skill:Array + +var config + +func _enter_tree() -> void: + print("item:_enter_tree:1 " + category) + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + module_self = config.get_value(category,"module","") + var modules_all = [module_self] + for i in config.get_section_keys(category): + print("item:_enter_tree:2 " + i) + if i.contains("modules_"): + modules_all = modules_all + config.get_value(category,i,[]) + print("item:_enter_tree:3 " + str(modules_all)) + var j = 0 + for i in modules_all: + var button = Button.new() + button.tooltip_text = i + if i == category: + button.text = config.get_value(i,"name_self","") + else: + button.text = config.get_value(i,"name","") + button.size.x = 192 + button.size.y = 64 + button.connect("button_up",spawn_module.bind(button.get_tooltip_text())) + %container.add_child(button) + j = j + 1 + spawn_module(category) + +func spawn_module(text): + print("item:spawn_module:1 " + text) + remove_child(module) + active_module = text + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + for i in config.get_section_keys(category): + print("item:spawn_module:2 " + i) + if i == "module" and category == text: + print("item:spawn_module:3 " + text) + module = load("res://01 - Menus/04 - Modules/modules_" + config.get_value(text,i,"") + ".tscn").instantiate() + module.item = item + module.category = category + module.module = active_module + module.position.x = 384 + add_child.call_deferred(module) + elif i.contains("modules_"): + print("item:spawn_module:4 is array" ) + if config.get_value(category,i,[]).has(text): + print("item:spawn_module:5 " + i) + module = load("res://01 - Menus/04 - Modules/" + i + ".tscn").instantiate() + module.item = item + module.category = category + module.module = active_module + module.position.x = 384 + add_child.call_deferred(module) + +func show_save(): + pass + +func save(): + module.save() diff --git a/01 - Menus/03 - Sheets/item.gd.uid b/01 - Menus/03 - Sheets/item.gd.uid new file mode 100644 index 0000000..cb66690 --- /dev/null +++ b/01 - Menus/03 - Sheets/item.gd.uid @@ -0,0 +1 @@ +uid://d1ixiojxt27x7 diff --git a/01 - Menus/03 - Sheets/item.tscn b/01 - Menus/03 - Sheets/item.tscn new file mode 100644 index 0000000..c58d03f --- /dev/null +++ b/01 - Menus/03 - Sheets/item.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=2 format=3 uid="uid://cl4squ3cegosj"] + +[ext_resource type="Script" uid="uid://d1ixiojxt27x7" path="res://01 - Menus/03 - Sheets/item.gd" id="1_sscaq"] + +[node name="item" type="Node2D"] +script = ExtResource("1_sscaq") + +[node name="tabs" type="ColorRect" parent="."] +offset_top = -256.0 +offset_right = 384.0 +offset_bottom = 1184.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="scroll" type="ScrollContainer" parent="."] +clip_contents = false +offset_left = 64.0 +offset_top = 64.0 +offset_right = 320.0 +offset_bottom = 960.0 + +[node name="container" type="VBoxContainer" parent="scroll"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 diff --git a/01 - Menus/04 - Modules/modules_.gd b/01 - Menus/04 - Modules/modules_.gd new file mode 100644 index 0000000..18157c4 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_.gd @@ -0,0 +1,5 @@ +extends Control + +var item # e.g. grondir +var category # e.g. characters +var module # e.g. trait diff --git a/01 - Menus/04 - Modules/modules_.gd.uid b/01 - Menus/04 - Modules/modules_.gd.uid new file mode 100644 index 0000000..3925b94 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_.gd.uid @@ -0,0 +1 @@ +uid://cj7dq6bxffndm diff --git a/01 - Menus/04 - Modules/modules_.tscn b/01 - Menus/04 - Modules/modules_.tscn new file mode 100644 index 0000000..cd40347 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://bf5jf67m66141"] + +[ext_resource type="Script" uid="uid://cj7dq6bxffndm" path="res://01 - Menus/04 - Modules/modules_.gd" id="1_xh6yg"] + +[node name="modules_" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_xh6yg") diff --git a/01 - Menus/04 - Modules/modules_character.gd b/01 - Menus/04 - Modules/modules_character.gd new file mode 100644 index 0000000..18157c4 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_character.gd @@ -0,0 +1,5 @@ +extends Control + +var item # e.g. grondir +var category # e.g. characters +var module # e.g. trait diff --git a/01 - Menus/04 - Modules/modules_character.gd.uid b/01 - Menus/04 - Modules/modules_character.gd.uid new file mode 100644 index 0000000..a7b76b0 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_character.gd.uid @@ -0,0 +1 @@ +uid://b0g20c0f26vke diff --git a/01 - Menus/04 - Modules/modules_character.tscn b/01 - Menus/04 - Modules/modules_character.tscn new file mode 100644 index 0000000..19391dc --- /dev/null +++ b/01 - Menus/04 - Modules/modules_character.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://ifmshoyijckd"] + +[ext_resource type="Script" uid="uid://b0g20c0f26vke" path="res://01 - Menus/04 - Modules/modules_character.gd" id="1_ooaol"] + +[node name="character" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_ooaol") diff --git a/01 - Menus/04 - Modules/modules_list.gd b/01 - Menus/04 - Modules/modules_list.gd new file mode 100644 index 0000000..70eb4ce --- /dev/null +++ b/01 - Menus/04 - Modules/modules_list.gd @@ -0,0 +1,171 @@ +extends Control + +var item # e.g. grondir +var category # e.g. characters +var module # e.g. trait +var items = [] # e.g. ["Undergrounder","Tough"] + +var ini + +var config +var item_filter = "" +var suggestions +var suggestion = "" +var overview +var rec_helper = [] +var selected = "" +var items_list:Array = [] + +func _enter_tree() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + rec_helper = config.get_value(category,"modules_list",[]) + items = [] + #print(str(category)) + #print(str(module)) + #print(str(items)) + custom_minimum_size.y = 512 + %filter.placeholder_text = "Filter " + module + %new_item.text = "Add " + module + %new_item_name.visible = false + %suggestions_background.visible = false + %new_item_suggestions.visible = false + ini = "res://02 - Configurations/" + category + ".ini" + list_items() + +func list_items(): + config = ConfigFile.new() + config.load(ini) + print("modules_list:list_items:1 " + category) + items = [] + %list.item_count = 0 + for i in rec_helper: + print("") + rec(i,category,item) + #print(str(%list.item_count)) + pass + + +func rec(i,conf,k): + var conff = "res://02 - Configurations/" + conf + ".ini" + config = ConfigFile.new() + config.load(conff) + print("modules_list:rec:1 conff = " + conff) + print("modules_list:rec:2 sections = " + str(config.get_section_keys(k))) + print("modules_list:rec:3 k = " + str(k)) + print("modules_list:rec:4 i = " + str(i)) + if config.get_section_keys(k).has(i): + var m = config.get_value(k,i) + print("modules_list:rec:5 " + (k) + " has " + str(m) + " as " + str(i)) + if module == i: + print("modules_list:rec:6 " + str(items)) + for b in config.get_value(k,i,[]): + print("modules_list:rec:10 " + str(b) + str(items)) + if not items.has(b) and b != "": + items = items + [b] + print("modules_list:rec:11 adding " + b + " to list") + if item_filter == "": + %list.add_item(str(b)) + %list.set_item_tooltip(%list.item_count - 1, k) + if conf != category: + %list.set_item_custom_bg_color(%list.item_count - 1,"black") + elif item_filter.to_lower() in b.to_lower(): + %list.add_item(str(b)) + else: + %list.item_count = %list.item_count -1 + print("modules_list:rec:12 " + i + " " + str(category)) + if i != category: + print("modules_list:rec:7 " + str(rec_helper.slice(rec_helper.find(i),-1))) + print("modules_list:rec:8 " + str(m)) + for o in rec_helper.slice(rec_helper.find(i),rec_helper.size()): + print(str(o)) + for j in m: + print("modules_list:rec:9 rec " + o + " - " + i + " - " + j) + rec(o,i,j) + +func _on_filter_text_changed(new_text: String) -> void: + item_filter = new_text + list_items() + +func _on_new_item_button_up() -> void: + %new_item_name.visible = true + %suggestions_background.visible = true + %new_item_suggestions.visible = true + %new_item_name.grab_focus() + list_suggestions() + + +func _on_new_item_name_editing_toggled(toggled_on: bool) -> void: + if !toggled_on: + %new_item_name.text = "" + %new_item_name.visible = false + %suggestions_background.visible = false + await get_tree().create_timer(0.001).timeout + %new_item_suggestions.visible = false + + +func list_suggestions(): + config = ConfigFile.new() + config.load("res://02 - Configurations/" + module + ".ini") + var i = 0 + suggestions = config.get_sections() + #print(str(suggestions)) + %new_item_suggestions.item_count = suggestions.size() + #print(str(%new_item_suggestions.item_count)) + for j in suggestions: + if suggestion == "": + %new_item_suggestions.set_item_text(i,str(j)) + i = i+1 + elif suggestion.to_lower() in j.to_lower(): + %new_item_suggestions.set_item_text(i,str(j)) + i = i+1 + #print(j) + else: + %new_item_suggestions.item_count = %new_item_suggestions.item_count -1 + #print(str(%list.item_count)) + pass + +func _on_new_item_name_text_changed(new_text: String) -> void: + suggestion = new_text + list_suggestions() + + +func _on_new_item_suggestions_item_selected(index: int) -> void: + config = ConfigFile.new() + config.load(ini) + if not items.has(%new_item_suggestions.get_item_text(index)): + print(str(items)) + var i = config.get_value(item,module,[]) + [%new_item_suggestions.get_item_text(index)] + print(str(i)) + config.set_value(item,module,i) + config.save(ini) + list_items() + + +func _on_list_item_selected(index: int) -> void: + if overview: + remove_child(overview) + print(module) + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + var submodule = config.get_value(module,"module","") + overview = load("res://01 - Menus/04 - Modules/modules_" + submodule + ".tscn").instantiate() + overview.position.x = 448 + overview.scale.x = 0.8 + overview.scale.y = 0.8 + overview.category = module + overview.item = %list.get_item_text(index) + overview.mouse_filter = 2 + selected = %list.get_item_text(index) + add_child(overview) + + +func _on_delete_button_up() -> void: + config = ConfigFile.new() + config.load(ini) + print(str(items)) + var j = config.get_value(category,item,[]) + j.remove_at(config.get_value(category,item,[]).find(selected)) + config.set_value(item,module,j) + config.save(ini) + list_items() diff --git a/01 - Menus/04 - Modules/modules_list.gd.uid b/01 - Menus/04 - Modules/modules_list.gd.uid new file mode 100644 index 0000000..2d7f9d0 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_list.gd.uid @@ -0,0 +1 @@ +uid://bswsmlukpn7x4 diff --git a/01 - Menus/04 - Modules/modules_list.tscn b/01 - Menus/04 - Modules/modules_list.tscn new file mode 100644 index 0000000..1bcc1b2 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_list.tscn @@ -0,0 +1,88 @@ +[gd_scene load_steps=2 format=3 uid="uid://uo4yu1gwxcec"] + +[ext_resource type="Script" uid="uid://bswsmlukpn7x4" path="res://01 - Menus/04 - Modules/modules_list.gd" id="1_15vp0"] + +[node name="list" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_15vp0") + +[node name="background" type="ColorRect" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_right = 448.0 +offset_bottom = 1024.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="suggestions_background" type="ColorRect" parent="."] +unique_name_in_owner = true +z_index = 1 +layout_mode = 0 +offset_left = -64.0 +offset_top = 192.0 +offset_right = 512.0 +offset_bottom = 872.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="list" type="ItemList" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 32.0 +offset_top = 32.0 +offset_right = 416.0 +offset_bottom = 672.0 + +[node name="filter" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 64.0 +offset_top = 896.0 +offset_right = 384.0 +offset_bottom = 960.0 +placeholder_text = "Filter item" + +[node name="new_item" type="Button" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 64.0 +offset_top = 800.0 +offset_right = 384.0 +offset_bottom = 864.0 +text = "Add item" + +[node name="new_item_name" type="LineEdit" parent="."] +unique_name_in_owner = true +z_index = 1 +layout_mode = 0 +offset_top = 208.0 +offset_right = 448.0 +offset_bottom = 272.0 +placeholder_text = "Set Item Name" + +[node name="new_item_suggestions" type="ItemList" parent="."] +unique_name_in_owner = true +z_index = 1 +layout_mode = 0 +offset_left = -48.0 +offset_top = 272.0 +offset_right = 496.0 +offset_bottom = 856.0 +allow_reselect = true + +[node name="delete" type="Button" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 64.0 +offset_top = 704.0 +offset_right = 384.0 +offset_bottom = 768.0 +text = "Delete" + +[connection signal="item_selected" from="list" to="." method="_on_list_item_selected"] +[connection signal="text_changed" from="filter" to="." method="_on_filter_text_changed"] +[connection signal="button_up" from="new_item" to="." method="_on_new_item_button_up"] +[connection signal="editing_toggled" from="new_item_name" to="." method="_on_new_item_name_editing_toggled"] +[connection signal="text_changed" from="new_item_name" to="." method="_on_new_item_name_text_changed"] +[connection signal="item_selected" from="new_item_suggestions" to="." method="_on_new_item_suggestions_item_selected"] +[connection signal="button_up" from="delete" to="." method="_on_delete_button_up"] diff --git a/01 - Menus/04 - Modules/modules_location.gd b/01 - Menus/04 - Modules/modules_location.gd new file mode 100644 index 0000000..1dabbd5 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_location.gd @@ -0,0 +1,6 @@ +extends Control + +var item # e.g. grondir +var category # e.g. characters +var module # e.g. trait +var items = [] # e.g. ["Undergrounder","Tough"] diff --git a/01 - Menus/04 - Modules/modules_location.gd.uid b/01 - Menus/04 - Modules/modules_location.gd.uid new file mode 100644 index 0000000..1519a9b --- /dev/null +++ b/01 - Menus/04 - Modules/modules_location.gd.uid @@ -0,0 +1 @@ +uid://c50oko0aci1t8 diff --git a/01 - Menus/04 - Modules/modules_location.tscn b/01 - Menus/04 - Modules/modules_location.tscn new file mode 100644 index 0000000..70997f0 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_location.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://cynrv7v87br4g"] + +[ext_resource type="Script" uid="uid://c50oko0aci1t8" path="res://01 - Menus/04 - Modules/modules_location.gd" id="1_08287"] + +[node name="modules_location" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_08287") diff --git a/01 - Menus/04 - Modules/modules_modifier.gd b/01 - Menus/04 - Modules/modules_modifier.gd new file mode 100644 index 0000000..ee62733 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_modifier.gd @@ -0,0 +1,7 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] diff --git a/01 - Menus/04 - Modules/modules_modifier.gd.uid b/01 - Menus/04 - Modules/modules_modifier.gd.uid new file mode 100644 index 0000000..5390988 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_modifier.gd.uid @@ -0,0 +1 @@ +uid://bsni2icpr5xpg diff --git a/01 - Menus/04 - Modules/modules_modifier.tscn b/01 - Menus/04 - Modules/modules_modifier.tscn new file mode 100644 index 0000000..6db12d8 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_modifier.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://beaslpqen8eqr"] + +[ext_resource type="Script" uid="uid://bsni2icpr5xpg" path="res://01 - Menus/04 - Modules/modifier.gd" id="1_7leb1"] + +[node name="modifier" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_7leb1") diff --git a/01 - Menus/04 - Modules/modules_skill.gd b/01 - Menus/04 - Modules/modules_skill.gd new file mode 100644 index 0000000..0728218 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_skill.gd @@ -0,0 +1,123 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] + +var cost:Array = [0,0,0,0] +var difficulty:int = 0 +var action:String = "" +var success:String = "" +var failure:String = "" +var duration:int = 0 +var ends_on:int = 0 +var target:Array = [] +var stat:Array = [] +var challenge:String = "" + +var config = ConfigFile.new() +var item_filter = "" +var targets1 = "" + +func _enter_tree() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/" + category + ".ini") + #print(str(config.get_value(item,"cost"))) + cost = config.get_value(item,"cost",[0,0,0,0]) + difficulty = config.get_value(item,"difficulty",0) + action = config.get_value(item,"action","") + success = config.get_value(item,"success","") + failure = config.get_value(item,"failure","") + duration = config.get_value(item,"duration",0) + ends_on = config.get_value(item,"ends_on",0) + target = config.get_value(item,"target",[""]) + stat = config.get_value(item,"stat",[""]) + var j = 0 + for i in %cost.get_children(): + i.text = str(cost[j]) + j = j + 1 + %difficulty.text = str(difficulty) + %action.text = action + %success.text = success + %failure.text = failure + %duration.text = str(duration) + %ends_on.select(ends_on) + %target.item_count = 0 + for i in target: + %target.add_item(i) + config = ConfigFile.new() + config.load("res://02 - Configurations/stat.ini") + for i in stat: + %stat.add_item(i) + +func _on_body_text_changed(new_text: String) -> void: + cost[0] = int(new_text) + print(str(cost)) + get_parent().get_parent().show_save() + + +func _on_communication_text_changed(new_text: String) -> void: + cost[1] = int(new_text) + get_parent().get_parent().show_save() + + +func _on_mind_text_changed(new_text: String) -> void: + cost[2] = int(new_text) + get_parent().get_parent().show_save() + + +func _on_soul_text_changed(new_text: String) -> void: + cost[3] = int(new_text) + get_parent().get_parent().show_save() + +func save(): + config = ConfigFile.new() + config.load("res://02 - Configurations/" + category + ".ini") + config.set_value(item,"cost",cost) + config.set_value(item,"difficulty",difficulty) + config.set_value(item,"action",action) + config.set_value(item,"success",success) + config.set_value(item,"failure",failure) + config.set_value(item,"duration",duration) + config.set_value(item,"ends_on",ends_on) + config.set_value(item,"target",target) + config.set_value(item,"stat",stat) + config.save("res://02 - Configurations/" + category + ".ini") + %http.request("https://ttrpg.marty.tf/hi2/",["Content-Type: application/json"],HTTPClient.METHOD_PUT,"hi2") + + +func _on_difficulty_text_changed(new_text: String) -> void: + difficulty = int(new_text) + get_parent().get_parent().show_save() + + +func _on_action_text_changed() -> void: + action = %action.text + get_parent().get_parent().show_save() + + +func _on_success_text_changed() -> void: + success = %success.text + get_parent().get_parent().show_save() + + +func _on_failure_text_changed() -> void: + failure = %failure.text + get_parent().get_parent().show_save() + + +func _on_duration_text_changed(new_text) -> void: + duration = int(new_text) + print(str(duration)) + get_parent().get_parent().show_save() + + +func _on_ends_on_item_selected(index: int) -> void: + ends_on = index + get_parent().get_parent().show_save() + + +func _on_http_request_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray) -> void: + print(str(response_code)) diff --git a/01 - Menus/04 - Modules/modules_skill.gd.uid b/01 - Menus/04 - Modules/modules_skill.gd.uid new file mode 100644 index 0000000..baf11a8 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_skill.gd.uid @@ -0,0 +1 @@ +uid://cy7cil87c8jlm diff --git a/01 - Menus/04 - Modules/modules_skill.tscn b/01 - Menus/04 - Modules/modules_skill.tscn new file mode 100644 index 0000000..e1696f1 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_skill.tscn @@ -0,0 +1,177 @@ +[gd_scene load_steps=2 format=3 uid="uid://wvtkpsevhva0"] + +[ext_resource type="Script" uid="uid://cy7cil87c8jlm" path="res://01 - Menus/04 - Modules/modules_skill.gd" id="1_5eik8"] + +[node name="skill" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_5eik8") + +[node name="ColorRect" type="ColorRect" parent="."] +visible = false +layout_mode = 0 +offset_right = 1408.0 +offset_bottom = 1280.0 + +[node name="cost" type="Node2D" parent="."] +unique_name_in_owner = true + +[node name="body" type="LineEdit" parent="cost"] +unique_name_in_owner = true +offset_left = 64.0 +offset_top = 64.0 +offset_right = 206.0 +offset_bottom = 128.0 +theme_override_colors/font_color = Color(0.8509804, 0.29411766, 0.29411766, 1) +placeholder_text = "body" + +[node name="communication" type="LineEdit" parent="cost"] +unique_name_in_owner = true +offset_left = 256.0 +offset_top = 64.0 +offset_right = 398.0 +offset_bottom = 128.0 +placeholder_text = "communication" + +[node name="mind" type="LineEdit" parent="cost"] +unique_name_in_owner = true +offset_left = 64.0 +offset_top = 160.0 +offset_right = 206.0 +offset_bottom = 224.0 +placeholder_text = "mind" + +[node name="soul" type="LineEdit" parent="cost"] +unique_name_in_owner = true +offset_left = 256.0 +offset_top = 160.0 +offset_right = 398.0 +offset_bottom = 224.0 +placeholder_text = "soul" + +[node name="action" type="TextEdit" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 64.0 +offset_top = 320.0 +offset_right = 960.0 +offset_bottom = 576.0 +placeholder_text = "action" +wrap_mode = 1 +scroll_smooth = true +caret_blink = true + +[node name="success" type="TextEdit" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 64.0 +offset_top = 608.0 +offset_right = 960.0 +offset_bottom = 864.0 +placeholder_text = "success" +wrap_mode = 1 +scroll_smooth = true +caret_blink = true + +[node name="failure" type="TextEdit" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 64.0 +offset_top = 896.0 +offset_right = 960.0 +offset_bottom = 1152.0 +placeholder_text = "failure" +wrap_mode = 1 +scroll_smooth = true +caret_blink = true + +[node name="difficulty" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 576.0 +offset_top = 64.0 +offset_right = 718.0 +offset_bottom = 128.0 +placeholder_text = "difficulty" + +[node name="duration" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 832.0 +offset_top = 64.0 +offset_right = 974.0 +offset_bottom = 128.0 +placeholder_text = "duration" + +[node name="ends_on" type="OptionButton" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 1024.0 +offset_top = 64.0 +offset_right = 1344.0 +offset_bottom = 128.0 +selected = 0 +item_count = 3 +popup/item_0/id = 0 +popup/item_1/text = "Ends on Sleep" +popup/item_1/id = 1 +popup/item_2/text = "Ends on Rest" +popup/item_2/id = 2 + +[node name="challenge" type="OptionButton" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 512.0 +offset_top = 160.0 +offset_right = 1344.0 +offset_bottom = 224.0 +selected = 0 +item_count = 3 +popup/item_0/id = 0 +popup/item_1/text = "Throw 1 dice" +popup/item_1/id = 1 +popup/item_2/text = "Throw x dice" +popup/item_2/id = 2 + +[node name="target" type="ItemList" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 1024.0 +offset_top = 896.0 +offset_right = 1344.0 +offset_bottom = 1152.0 +mouse_filter = 2 +select_mode = 2 +item_count = 1 +item_0/text = "target" + +[node name="stat" type="ItemList" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_left = 1024.0 +offset_top = 320.0 +offset_right = 1344.0 +offset_bottom = 864.0 +mouse_filter = 2 +select_mode = 2 + +[node name="http" type="HTTPRequest" parent="."] +unique_name_in_owner = true +use_threads = true + +[connection signal="text_changed" from="cost/body" to="." method="_on_body_text_changed"] +[connection signal="text_changed" from="cost/communication" to="." method="_on_communication_text_changed"] +[connection signal="text_changed" from="cost/mind" to="." method="_on_mind_text_changed"] +[connection signal="text_changed" from="cost/soul" to="." method="_on_soul_text_changed"] +[connection signal="text_changed" from="action" to="." method="_on_action_text_changed"] +[connection signal="text_changed" from="success" to="." method="_on_success_text_changed"] +[connection signal="text_changed" from="failure" to="." method="_on_failure_text_changed"] +[connection signal="text_changed" from="difficulty" to="." method="_on_difficulty_text_changed"] +[connection signal="text_changed" from="duration" to="." method="_on_duration_text_changed"] +[connection signal="item_selected" from="ends_on" to="." method="_on_ends_on_item_selected"] +[connection signal="request_completed" from="http" to="." method="_on_http_request_completed"] diff --git a/01 - Menus/04 - Modules/modules_stat.gd b/01 - Menus/04 - Modules/modules_stat.gd new file mode 100644 index 0000000..ee62733 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_stat.gd @@ -0,0 +1,7 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] diff --git a/01 - Menus/04 - Modules/modules_stat.gd.uid b/01 - Menus/04 - Modules/modules_stat.gd.uid new file mode 100644 index 0000000..4b42898 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_stat.gd.uid @@ -0,0 +1 @@ +uid://uych52kioaci diff --git a/01 - Menus/04 - Modules/modules_stat.tscn b/01 - Menus/04 - Modules/modules_stat.tscn new file mode 100644 index 0000000..b172a2f --- /dev/null +++ b/01 - Menus/04 - Modules/modules_stat.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://bqswmmgfxstfw"] + +[ext_resource type="Script" uid="uid://bsni2icpr5xpg" path="res://01 - Menus/04 - Modules/modifier.gd" id="1_iafih"] + +[node name="stat" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_iafih") diff --git a/01 - Menus/04 - Modules/modules_text.gd b/01 - Menus/04 - Modules/modules_text.gd new file mode 100644 index 0000000..ea45fe8 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_text.gd @@ -0,0 +1,25 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] + +var config +var item_filter = "" + +func _enter_tree() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/" + category + ".ini") + %text.text = config.get_value(item,"text", "") + + +func _on_backstory_text_changed() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/" + category + ".ini") + config.set_value(item,"text",%text.text) + get_parent().get_parent().show_save() + +func save(): + config.save("res://02 - Configurations/" + category + ".ini") diff --git a/01 - Menus/04 - Modules/modules_text.gd.uid b/01 - Menus/04 - Modules/modules_text.gd.uid new file mode 100644 index 0000000..ad4d73a --- /dev/null +++ b/01 - Menus/04 - Modules/modules_text.gd.uid @@ -0,0 +1 @@ +uid://c7veejgoktxy4 diff --git a/01 - Menus/04 - Modules/modules_text.tscn b/01 - Menus/04 - Modules/modules_text.tscn new file mode 100644 index 0000000..60419e7 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_text.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=2 format=3 uid="uid://blinf0w4bd7xh"] + +[ext_resource type="Script" uid="uid://c7veejgoktxy4" path="res://01 - Menus/04 - Modules/text.gd" id="1_ed0wg"] + +[node name="text" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_ed0wg") + +[node name="text" type="TextEdit" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 0 +offset_top = 320.0 +offset_right = 576.0 +offset_bottom = 768.0 +wrap_mode = 1 + +[connection signal="text_changed" from="text" to="." method="_on_backstory_text_changed"] diff --git a/01 - Menus/04 - Modules/modules_trait.gd b/01 - Menus/04 - Modules/modules_trait.gd new file mode 100644 index 0000000..ee62733 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_trait.gd @@ -0,0 +1,7 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] diff --git a/01 - Menus/04 - Modules/modules_trait.gd.uid b/01 - Menus/04 - Modules/modules_trait.gd.uid new file mode 100644 index 0000000..4b6a326 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_trait.gd.uid @@ -0,0 +1 @@ +uid://5fupt8jhtnre diff --git a/01 - Menus/04 - Modules/modules_trait.tscn b/01 - Menus/04 - Modules/modules_trait.tscn new file mode 100644 index 0000000..136e3da --- /dev/null +++ b/01 - Menus/04 - Modules/modules_trait.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://bbtwis5vf5pgj"] + +[ext_resource type="Script" uid="uid://5fupt8jhtnre" path="res://01 - Menus/04 - Modules/trait.gd" id="1_elj4r"] + +[node name="trait" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_elj4r") diff --git a/01 - Menus/04 - Modules/modules_xenoline.gd b/01 - Menus/04 - Modules/modules_xenoline.gd new file mode 100644 index 0000000..ee62733 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_xenoline.gd @@ -0,0 +1,7 @@ +extends Control + + +var item # e.g. grondir +var category # e.g. character +var module # e.g. trait +var items # e.g. ["Undergrounder","Tough"] diff --git a/01 - Menus/04 - Modules/modules_xenoline.gd.uid b/01 - Menus/04 - Modules/modules_xenoline.gd.uid new file mode 100644 index 0000000..13745f2 --- /dev/null +++ b/01 - Menus/04 - Modules/modules_xenoline.gd.uid @@ -0,0 +1 @@ +uid://cbbigwfdfc2l4 diff --git a/01 - Menus/04 - Modules/modules_xenoline.tscn b/01 - Menus/04 - Modules/modules_xenoline.tscn new file mode 100644 index 0000000..48c633a --- /dev/null +++ b/01 - Menus/04 - Modules/modules_xenoline.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://cn53vjwt1k4wq"] + +[ext_resource type="Script" uid="uid://cbbigwfdfc2l4" path="res://01 - Menus/04 - Modules/xenoline.gd" id="1_bofh8"] + +[node name="xenoline" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_bofh8") diff --git a/01 - Menus/05 - Campaign Manager/campaign_manager.gd b/01 - Menus/05 - Campaign Manager/campaign_manager.gd new file mode 100644 index 0000000..995614b --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/campaign_manager.gd @@ -0,0 +1,40 @@ +extends Node2D + +var config +var items:Array +var module +var modules_list +var name_ +var name_self + + +func _enter_tree() -> void: + %scroll.visible = false + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + + +func _on_close_button_up() -> void: + queue_free() + + +func _on_items_button_up() -> void: + %scroll.visible = true + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + items = config.get_sections() + for j in %container.get_children(): + %container.remove_child(j) + for i in items + [""]: + var item = load("res://01 - Menus/05 - Campaign Manager/item_helper.tscn").instantiate() + item.item = i + %container.add_child(item) + + + +func _on_save_button_up() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + for i in items.size() + 1: + %container.get_child(i).save() + _on_items_button_up() diff --git a/01 - Menus/05 - Campaign Manager/campaign_manager.gd.uid b/01 - Menus/05 - Campaign Manager/campaign_manager.gd.uid new file mode 100644 index 0000000..8e033df --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/campaign_manager.gd.uid @@ -0,0 +1 @@ +uid://cn6njcwxgyat2 diff --git a/01 - Menus/05 - Campaign Manager/campaign_manager.tscn b/01 - Menus/05 - Campaign Manager/campaign_manager.tscn new file mode 100644 index 0000000..57e99c3 --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/campaign_manager.tscn @@ -0,0 +1,55 @@ +[gd_scene load_steps=2 format=3 uid="uid://c6cqrvu2ifno6"] + +[ext_resource type="Script" uid="uid://cn6njcwxgyat2" path="res://01 - Menus/05 - Campaign Manager/campaign_manager.gd" id="1_wb8ha"] + +[node name="campaign_manager" type="Node2D"] +script = ExtResource("1_wb8ha") + +[node name="ui_background" type="ColorRect" parent="."] +unique_name_in_owner = true +offset_right = 512.0 +offset_bottom = 1440.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="close" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1280.0 +offset_right = 416.0 +offset_bottom = 1344.0 +text = "Close" + +[node name="items" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 320.0 +offset_right = 416.0 +offset_bottom = 384.0 +text = "items" + +[node name="save" type="Button" parent="."] +unique_name_in_owner = true +offset_left = 96.0 +offset_top = 1184.0 +offset_right = 416.0 +offset_bottom = 1248.0 +text = "Save" + +[node name="scroll" type="ScrollContainer" parent="."] +unique_name_in_owner = true +clip_contents = false +offset_left = 576.0 +offset_top = 64.0 +offset_right = 2496.0 +offset_bottom = 1408.0 +horizontal_scroll_mode = 0 + +[node name="container" type="VBoxContainer" parent="scroll"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[connection signal="button_up" from="close" to="." method="_on_close_button_up"] +[connection signal="button_up" from="items" to="." method="_on_items_button_up"] +[connection signal="button_up" from="save" to="." method="_on_save_button_up"] diff --git a/01 - Menus/05 - Campaign Manager/item_helper.gd b/01 - Menus/05 - Campaign Manager/item_helper.gd new file mode 100644 index 0000000..14833d1 --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/item_helper.gd @@ -0,0 +1,117 @@ +extends Control + +var item +var config +var name_ +var name_self +var module +var modules_list +var main_menu_entry = "" + +func _enter_tree() -> void: + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + name_ = config.get_value(item,"name","") + name_self = config.get_value(item,"name_self","") + modules_list = config.get_value(item,"modules_list",[]) + %item.text = item + %name.text = name_ + %name_self.text = name_self + %add_new_select.visible = false + %module.add_item("") + %module.add_item(%item.text) + print("item_helper:_enter_tree: item_helper for " + item) + var modules:Array = [""] + var select_module = 0 + for i in config.get_sections(): + print("item_helper:_enter_tree:i populating %add_new_select with " + i) + %add_new_select.add_item(i) + var k = config.get_value(i,"module","") + if k == %item.text: # select item 1 when module has same name as item + print("item_helper:_enter_tree: selecting " + k) + select_module = 1 + elif k != "": # proceed only if module is set + if not modules.has(k): # don't duplicate entries + print("item_helper:_enter_tree:2 " + str(k) + " into " + str(modules)) + modules = modules + [config.get_value(i,"module","")] + %module.add_item(k) + + if k == config.get_value(item,"module",""): + print("item_helper:_enter_tree:3 selecting " + k + " for " + str(i)) + select_module = modules.find(k) + 1 + %module.select(select_module) + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/main_menu.ini") + var h = 1 + for i in config.get_sections(): + %categories.add_item(config.get_value(i,"name","")) + %categories.set_item_tooltip(%categories.item_count - 1,i) + if config.get_value(i,"items",[]).has(item): + %categories.select(h) + h = h + 1 + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + var j:float = modules_list.size() + if j != 0: + %modules_list.max_columns = j + %modules_list.fixed_column_width = %modules_list.size.x/(1.1*j) - (j *8) + for i in modules_list: + print("item_helper:_enter_tree:1 " + i) + %modules_list.add_item(i) + +func save(): + if %item.text != "": + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/categories.ini") + item = %item.text + config.set_value(item,"name",%name.text) + config.set_value(item,"name_self",%name_self.text) + config.set_value(item,"module",%module.text) + var j = [] + for i in %modules_list.item_count: + j = j + [%modules_list.get_item_text(i)] + config.set_value(item,"modules_list",j) + print("item_helper:save:1 saving " + item) + config.save("res://02 - Configurations/campaign/categories.ini") + + + config = ConfigFile.new() + config.load("res://02 - Configurations/campaign/main_menu.ini") + if not config.get_value(main_menu_entry,"items",[]).has(item) and main_menu_entry != "": + print("item_helper:save:2 " + item + " not in " + str(config.get_value(main_menu_entry,"items",[]))) + config.set_value(main_menu_entry,"items",config.get_value(main_menu_entry,"items",[]) + [item]) + config.save("res://02 - Configurations/campaign/main_menu.ini") + + + +func _on_modules_list_item_selected(index: int) -> void: + print("item_helper:_on_modules_list_item_selected:2 remove " + %modules_list.get_item_text(index)) + %modules_list.remove_item(index) + + +func _on_add_new_item_selected(index: int) -> void: + %modules_list.add_item(%add_new_select.get_item_text(index)) + var j:float = %modules_list.item_count + %modules_list.max_columns = j + %modules_list.fixed_column_width = %modules_list.size.x/(1.1*j) - (j *8) + %add_new_select.visible = false + +func _on_module_item_selected(index: int) -> void: + module = %module.get_item_text(index) + + +func _on_add_new_button_up() -> void: + print("item_helper:_on_add_new_button_up:1 Add new") + %add_new_select.visible = true + +func _on_add_new_select_focus_exited() -> void: + %add_new_select.visible = false + + +func _on_item_text_changed(new_text: String) -> void: + %module.set_item_text(1,new_text) + + +func _on_categories_item_selected(index: int) -> void: + main_menu_entry = %categories.get_item_tooltip(index) + print("item_helper:_on_categories_item_selected:1 " + str(main_menu_entry)) diff --git a/01 - Menus/05 - Campaign Manager/item_helper.gd.uid b/01 - Menus/05 - Campaign Manager/item_helper.gd.uid new file mode 100644 index 0000000..a6d508f --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/item_helper.gd.uid @@ -0,0 +1 @@ +uid://nft8qh8eyyn4 diff --git a/01 - Menus/05 - Campaign Manager/item_helper.tscn b/01 - Menus/05 - Campaign Manager/item_helper.tscn new file mode 100644 index 0000000..377a2a8 --- /dev/null +++ b/01 - Menus/05 - Campaign Manager/item_helper.tscn @@ -0,0 +1,131 @@ +[gd_scene load_steps=2 format=3 uid="uid://chky5yb5bj7gy"] + +[ext_resource type="Script" uid="uid://nft8qh8eyyn4" path="res://01 - Menus/05 - Campaign Manager/item_helper.gd" id="1_yac37"] + +[node name="item_helper" type="Control"] +custom_minimum_size = Vector2(0, 320) +layout_mode = 3 +anchors_preset = 0 +offset_right = 2112.0 +offset_bottom = 192.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1_yac37") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 0 +offset_right = 1920.0 +offset_bottom = 320.0 +color = Color(0.047058824, 0.07058824, 0.09803922, 1) + +[node name="item" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.030303031 +anchor_top = 0.2 +anchor_right = 0.030303031 +anchor_bottom = 0.2 +offset_right = 256.0 +offset_bottom = 64.0 +placeholder_text = "technical name" +metadata/_edit_use_anchors_ = true + +[node name="name_self" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.18200001 +anchor_top = 0.2 +anchor_right = 0.18200001 +anchor_bottom = 0.2 +offset_left = -0.3840332 +offset_right = 255.61597 +offset_bottom = 64.0 +placeholder_text = "singular name" +metadata/_edit_use_anchors_ = true + +[node name="name" type="LineEdit" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.333 +anchor_top = 0.2 +anchor_right = 0.333 +anchor_bottom = 0.2 +offset_left = 0.7039795 +offset_right = 256.70398 +offset_bottom = 64.0 +placeholder_text = "multiple name" +metadata/_edit_use_anchors_ = true + +[node name="modules_list" type="ItemList" parent="."] +unique_name_in_owner = true +clip_contents = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.030000001 +anchor_top = 0.5 +anchor_right = 0.030000001 +anchor_bottom = 0.5 +offset_left = 0.6399994 +offset_right = 1472.64 +offset_bottom = 128.0 +metadata/_edit_use_anchors_ = true + +[node name="add_new_select" type="OptionButton" parent="."] +unique_name_in_owner = true +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.54545456 +anchor_top = 0.6 +anchor_right = 0.54545456 +anchor_bottom = 0.6 +offset_right = 512.0 +offset_bottom = 64.0 +metadata/_edit_use_anchors_ = true + +[node name="module" type="OptionButton" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.4848485 +anchor_top = 0.2 +anchor_right = 0.4848485 +anchor_bottom = 0.2 +offset_right = 256.0 +offset_bottom = 64.0 +metadata/_edit_use_anchors_ = true + +[node name="add_new" type="Button" parent="."] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 1600.0 +offset_top = 192.0 +offset_right = 1856.0 +offset_bottom = 256.0 +text = "Add list" + +[node name="categories" type="OptionButton" parent="."] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.63600004 +anchor_top = 0.2 +anchor_right = 0.63600004 +anchor_bottom = 0.2 +offset_left = 0.76794434 +offset_right = 256.76794 +offset_bottom = 64.0 +item_count = 1 +popup/item_0/id = 0 +metadata/_edit_use_anchors_ = true + +[connection signal="text_changed" from="item" to="." method="_on_item_text_changed"] +[connection signal="item_selected" from="modules_list" to="." method="_on_modules_list_item_selected"] +[connection signal="focus_exited" from="add_new_select" to="." method="_on_add_new_select_focus_exited"] +[connection signal="item_selected" from="add_new_select" to="." method="_on_add_new_item_selected"] +[connection signal="item_selected" from="module" to="." method="_on_module_item_selected"] +[connection signal="button_up" from="add_new" to="." method="_on_add_new_button_up"] +[connection signal="item_selected" from="categories" to="." method="_on_categories_item_selected"] diff --git a/01 - Menus/06 - World Map/world_map.gd b/01 - Menus/06 - World Map/world_map.gd new file mode 100644 index 0000000..e251cf8 --- /dev/null +++ b/01 - Menus/06 - World Map/world_map.gd @@ -0,0 +1 @@ +extends Node2D diff --git a/01 - Menus/06 - World Map/world_map.gd.uid b/01 - Menus/06 - World Map/world_map.gd.uid new file mode 100644 index 0000000..a8745b7 --- /dev/null +++ b/01 - Menus/06 - World Map/world_map.gd.uid @@ -0,0 +1 @@ +uid://chr13mihhdey2 diff --git a/01 - Menus/06 - World Map/world_map.tscn b/01 - Menus/06 - World Map/world_map.tscn new file mode 100644 index 0000000..61d490b --- /dev/null +++ b/01 - Menus/06 - World Map/world_map.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://y3yq0k83jf6o"] + +[ext_resource type="Script" uid="uid://chr13mihhdey2" path="res://01 - Menus/06 - World Map/world_map.gd" id="1_oilm1"] + +[node name="world_map" type="Node2D"] +script = ExtResource("1_oilm1") diff --git a/02 - Configurations/attachment.ini b/02 - Configurations/attachment.ini new file mode 100644 index 0000000..96c1f0b --- /dev/null +++ b/02 - Configurations/attachment.ini @@ -0,0 +1,3 @@ +[Scope] + +type="attachment" diff --git a/02 - Configurations/campaign/campaign.ini b/02 - Configurations/campaign/campaign.ini new file mode 100644 index 0000000..174fbf9 --- /dev/null +++ b/02 - Configurations/campaign/campaign.ini @@ -0,0 +1,2 @@ +[ campaign ] +name="Cultists of Campath" diff --git a/02 - Configurations/campaign/categories.ini b/02 - Configurations/campaign/categories.ini new file mode 100644 index 0000000..085d463 --- /dev/null +++ b/02 - Configurations/campaign/categories.ini @@ -0,0 +1,125 @@ +[character] + +name="Characters" +name_self="Character" +module="character" +modules_list=["xenoline", "faction", "childhood", "youth", "trait", "stat", "skill", "pet"] + +[xenoline] + +name="Xenolines" +name_self="Xenoline" +module="xenoline" +modules_list=["trait", "stat", "skill"] + +[faction] + +name="Factions" +name_self="Faction" +module="text" +modules_list=["character", "country", "region", "city", "location"] + +[trait] + +name="Traits" +name_self="Trait" +module="trait" +modules_list=["stat", "skill"] + +[skill] + +name="Skills" +name_self="Skill" +module="skill" +modules_list=["stat", "target"] + +[stat] + +name="Stats" +name_self="Stat" +module="text" +modules_list=[] + +[ranged weapon] + +name="Ranged Weapons" +name_self="Ranged Weapon" +module="" +modules_list=["attachment"] + +[attachment] + +name="Attachments" +name_self="Attachment" +module="" +modules_list=[] + +[modifier] + +name="Modifiers" +name_self="Modifier" +module="" +modules_list=[] + +[target] + +name="Targets" +name_self="Target" +module="" +modules_list=[] + +[youth] + +name="Youths" +name_self="Youth" +module="" +modules_list=[] + +[childhood] + +name="Childhoods" +name_self="Childhood" +module="" +modules_list=[] + +[melee weapon] + +name="Melee Weapons" +name_self="Melee Weapon" +module="" +modules_list=[] + +[pet] + +name="Pets" +name_self="Pet" +module="text" +modules_list=["trait", "stat", "skill"] + +[country] + +name="Countries" +name_self="Country" +module="" +modules_list=["region", "city", "location"] + +[region] + +name="Regions" +name_self="Region" +module="" +modules_list=["city", "location"] + +[city] + +name="Cities" +name_self="City" +module="" +modules_list=["location"] + +[location] + +name="Locations" +name_self="Location" +module="location" +modules_list=[] diff --git a/02 - Configurations/campaign/main_menu.ini b/02 - Configurations/campaign/main_menu.ini new file mode 100644 index 0000000..5c071a0 --- /dev/null +++ b/02 - Configurations/campaign/main_menu.ini @@ -0,0 +1,19 @@ +[characters] + +name="Characters" +items=["character", "xenoline", "faction", "trait", "skill", "stat", "youth", "childhood", "pet"] + +[items] + +name="Items" +items=["ranged weapon", "attachment", "melee weapon"] + +[location] + +name="Locations" +items=["country", "region", "city", "location"] + +[battle_map] + +name="Battle Maps" +items=[] diff --git a/02 - Configurations/campath.ini b/02 - Configurations/campath.ini new file mode 100644 index 0000000..6515f33 --- /dev/null +++ b/02 - Configurations/campath.ini @@ -0,0 +1,3 @@ +[Wallia] + +type="campath" diff --git a/02 - Configurations/character.ini b/02 - Configurations/character.ini new file mode 100644 index 0000000..cb13f77 --- /dev/null +++ b/02 - Configurations/character.ini @@ -0,0 +1,39 @@ +[Grondir] + +type="character" +name=["Grondir", "Grondir Fearweaver"] +birthday="7.01.5389" +backstory="After decades in the mines, Grondir was one of the miners who found the Monolith in that horrible, jagged cave. On the third day of Spring, 5521, he was captured by the The Cultists of Campath for questioning." +childhood=[] +youth=[] +xenoline=["Dwarf"] +xenogene=[] +faction=["Unaffiliated"] +pet=[] +trait=[] +skill=[] +stat=[] + +[Alveus] + +type="character" +name=["Alveus", "The First"] +xenoline=["Inhuman"] +backstory="Alveus, the first Inhuman, trapped on Maveth, able to control other Inhumans." +trait=["Tough"] +faction=["Cultists of Campath"] + +[Lisa] + +type="character" +xenoline=["Human"] +faction=[] +pet=["Maika"] +trait=[] +skill=[] +stat=[] + +[Thorben] + +type="character" +xenoline=["Human"] diff --git a/02 - Configurations/city.ini b/02 - Configurations/city.ini new file mode 100644 index 0000000..5f41fec --- /dev/null +++ b/02 - Configurations/city.ini @@ -0,0 +1,4 @@ +[Wallia] + +type="city" +location=["Wavian Lair"] diff --git a/02 - Configurations/country.ini b/02 - Configurations/country.ini new file mode 100644 index 0000000..d8bd7d4 --- /dev/null +++ b/02 - Configurations/country.ini @@ -0,0 +1,9 @@ +[Wallia] + +type="country" +region=["The Wavian Peaks"] + +[Nurim] + +type="country" +region=["The Eatobel Heights"] diff --git a/02 - Configurations/drug.ini b/02 - Configurations/drug.ini new file mode 100644 index 0000000..d05fe17 --- /dev/null +++ b/02 - Configurations/drug.ini @@ -0,0 +1,3 @@ +[Luciferium] + +type="drug" diff --git a/02 - Configurations/faction.ini b/02 - Configurations/faction.ini new file mode 100644 index 0000000..6d8d584 --- /dev/null +++ b/02 - Configurations/faction.ini @@ -0,0 +1,6 @@ +[Cultists of Campath] + +type="faction" +character=["Alveus"] +country=[] +region=["The Eatobel Heights"] diff --git a/02 - Configurations/location.ini b/02 - Configurations/location.ini new file mode 100644 index 0000000..32cbc4d --- /dev/null +++ b/02 - Configurations/location.ini @@ -0,0 +1,7 @@ +[Wavian Lair] + +type="location" + +[The Monolith] + +type="location" diff --git a/02 - Configurations/modifier.ini b/02 - Configurations/modifier.ini new file mode 100644 index 0000000..6a701dd --- /dev/null +++ b/02 - Configurations/modifier.ini @@ -0,0 +1,41 @@ +[Certainty] + +type="modifier" +text="Certainty describes how much a character believes in their motives and agenda." + +[Cramped comfortability] + +type="modifier" +text="Cramped comfortability describes how comfortable a character is in cramped spaces." + +[Mining] + +type="modifier" +text="Mining describes how good a character is at breaking stone and other sturdy objects/walls." + +[Darkness sensitivity] + +type="modifier" +text="Darkness sensitivity describes how much a character can see in unlit areas. " + +[Light sensitivity] + +type="modifier" +text="Darkness sensitivity describes how much a character is affected by light, especially sunlight. Very low light sensitivity can physically harm a character when exposed to light." + +[Mental Health] + +type="modifier" +text="Mental Health describes how stable a character's mind is. +Very low mental health can trigger more and harsher mental breaks." + +[Physical Health] + +type="modifier" +text="Physical Health describes how stable a character's body is. +Very low physical health can trigger more and harsher health complications." + +[Work] + +type="modifier" +text="Work describes how good a character is at accomplishing a task, affecting both speed and quality." diff --git a/02 - Configurations/pet.ini b/02 - Configurations/pet.ini new file mode 100644 index 0000000..bc2cc72 --- /dev/null +++ b/02 - Configurations/pet.ini @@ -0,0 +1,8 @@ +[Maika] + +type="pet" +skill=["Detect humanoid"] +text="Maika is n HUUUUnd +" +trait=[] +stat=[] diff --git a/02 - Configurations/ranged weapon.ini b/02 - Configurations/ranged weapon.ini new file mode 100644 index 0000000..d359655 --- /dev/null +++ b/02 - Configurations/ranged weapon.ini @@ -0,0 +1,4 @@ +[M17] + +type="ranged weapon" +attachment=["Scope"] diff --git a/02 - Configurations/region.ini b/02 - Configurations/region.ini new file mode 100644 index 0000000..4005c07 --- /dev/null +++ b/02 - Configurations/region.ini @@ -0,0 +1,10 @@ +[The Wavian Peaks] + +type="region" +location=[] +city=["Wallia"] + +[The Eatobel Heights] + +type="region" +location=["The Monolith"] diff --git a/02 - Configurations/skill.ini b/02 - Configurations/skill.ini new file mode 100644 index 0000000..66e9e76 --- /dev/null +++ b/02 - Configurations/skill.ini @@ -0,0 +1,77 @@ +[Cleave the Stone] + +type="skill" +action="Break a wall or object of sturdy hardness using a suitable melee weapon." +duration=0 +ends_on=0 +cost=[2, 0, 0, 0] +cost_per_target=false +target=["object"] +difficulty=8 +success="The wall or object crumbles, allowing you to pass it." +failure="The sturdiness overwhelms you, leaving you staggered for the remainder of this turn." +stat=["Mining"] + +[Fortify the Mind] + +type="skill" +cost=[0, 1, 0, 0] +difficulty=5 +action="Fortify the mind of a living being." +success="The target will get 80% less mood debuffs. +The target will get 50% less mood buffs." +failure="The target will have to throw a dice. +On a 1, they instantly have a mental break. +On a 6, turn into a success instead." +duration=8 +ends_on=1 +target=["humanoid"] +stat=[""] + +[Calm humanoid] + +type="skill" +cost=[0, 1, 0, 1] +difficulty=4 +action="Calm a humanoid." +success="The target will gain advantage on mental break rolls." +failure="The target will have to throw a dice. +On a 1, they instantly have a mental break. +On a 6, turn into a success instead." +duration=8 +ends_on=1 +target=["humanoid"] +stat=["Mental Health"] + +[Kick down door] + +type="skill" +cost=[1, 0, 0, 0] +difficulty=4 +action="Kick down a non-sturdy door." +success="The door breaks, allowing you to pass it." +failure="The sturdiness overwhelms you, leaving you staggered for the remainder of this turn." +duration=0 +ends_on=0 +target=["object"] +stat=["Physical Health"] + +[Shape Flesh] + +cost=[0, 1, 1, 1] +difficulty=8 +action="Shape the flesh of a deceased being into a Fleshbeast." +success="Target up to 3 non-eroded organic bodies (at least size 1). +For each successful throw, enhance the Fleshbeast tier by 1. +If at least half of the throws are critical successes, the Fleshbeast gains an additional tier. +You control the Fleshbeast as your character." +failure="The respective Fleshbeast is created, but you do not control it. +It is aggressive towards all living beings, but its lack of a brain reduces its targets to those in sight." +duration=2 +ends_on=0 +target=["multiple", "dead"] +stat=[""] + +[Detect humanoid] + +type="skill" diff --git a/02 - Configurations/stat.ini b/02 - Configurations/stat.ini new file mode 120000 index 0000000..6472ba4 --- /dev/null +++ b/02 - Configurations/stat.ini @@ -0,0 +1 @@ +/home/marty/Cultists of Campath/Godot Project/02 - Configurations/modifier.ini \ No newline at end of file diff --git a/02 - Configurations/target.ini b/02 - Configurations/target.ini new file mode 100644 index 0000000..160e94f --- /dev/null +++ b/02 - Configurations/target.ini @@ -0,0 +1,32 @@ +[ self ] +type="target" + +[ humanoid ] +type="target" + +[ mechanoid ] +type="target" + +[ animal ] +type="target" + +[ object ] +type="target" + +[ multiple ] +type="target" + +[ solid area ] +type="target" + +[ liquid area ] +type="target" + +[ area ] +type="target" + +[ living ] +type="target" + +[ dead ] +type="target" diff --git a/02 - Configurations/trait.ini b/02 - Configurations/trait.ini new file mode 100644 index 0000000..f85fa3c --- /dev/null +++ b/02 - Configurations/trait.ini @@ -0,0 +1,26 @@ +[Undergrounder] + +character="Undergrounder characters have adapted to the dark, cramped spaces of the mountains. +They are more comfortable when inside, as their bodies no longer tolerate sunlight as well." +attribute=[3, 0, 0, -2] +skill=["Cleave the Stone"] +stat=["Mining"] + +[Tough] + +character="Tough characters have, through training or genetics, adapted their body to withstand external physical harm." +attribute=[4, 0, 0, 0] + +[Neurotic] + +type="trait" + +[Iron-Willed] + +type="trait" +skill=["Fortify the Mind"] +stat=["Certainty"] + +[Normal] + +type="trait" diff --git a/02 - Configurations/wallia.ini b/02 - Configurations/wallia.ini new file mode 100644 index 0000000..d9d357c --- /dev/null +++ b/02 - Configurations/wallia.ini @@ -0,0 +1,3 @@ +[h] + +type="wallia" diff --git a/02 - Configurations/weapon.ini b/02 - Configurations/weapon.ini new file mode 100644 index 0000000..68c989e --- /dev/null +++ b/02 - Configurations/weapon.ini @@ -0,0 +1,7 @@ +[M17] + +type="weapon" + +[B388] + +type="weapon" diff --git a/02 - Configurations/xenoline.ini b/02 - Configurations/xenoline.ini new file mode 100644 index 0000000..3078dcc --- /dev/null +++ b/02 - Configurations/xenoline.ini @@ -0,0 +1,20 @@ +[Human] + +life_expectancy=80 +childhood_years=13 +youth_years=8 +body_type=["humanoid"] +body_size=1.7 +trait=["Normal"] + +[Dwarf] + +life_expectancy=220 +childhood_years=20 +youth_years=20 +trait=["Undergrounder", "Tough"] + +[Inhuman] + +type="xenoline" +trait=["Neurotic"] diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..c6bbb7d --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..675c11a --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bs86c45lw1fbq" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/palette.tres b/palette.tres new file mode 100644 index 0000000..42e4fb0 --- /dev/null +++ b/palette.tres @@ -0,0 +1,4 @@ +[gd_resource type="ColorPalette" format=3 uid="uid://tiu8sf8sm6vt"] + +[resource] +colors = PackedColorArray(0.1254902, 0.1764706, 0.22745098, 1, 0.047058824, 0.07058824, 0.09803922, 1, 0.8509804, 0.29411766, 0.29411766, 1, 0.7411765, 0.7882353, 0.28627452, 1, 0.8666667, 0.67058825, 0.28627452, 1, 0.3137255, 0.5568628, 0.7607843, 1, 0.64705884, 0.3254902, 0.74509805, 1, 0.18431373, 0.7411765, 0.6627451, 1, 0.81960785, 0.81960785, 0.81960785, 1, 0.9137255, 0.8980392, 0.7921569, 1, 0.61960787, 0.627451, 0.58431375, 1, 0.8, 0.4, 0.4, 1, 0.70980394, 0.7411765, 0.40784314, 1, 0.9411765, 0.7764706, 0.45490196, 1, 0.5058824, 0.63529414, 0.74509805, 1, 0.69803923, 0.5803922, 0.73333335, 1, 0.5411765, 0.74509805, 0.7176471, 1, 1, 1, 1, 1) diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..c8bec5c --- /dev/null +++ b/project.godot @@ -0,0 +1,33 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Cultists of Campath" +run/main_scene="uid://c1qk762funu8g" +config/features=PackedStringArray("4.5", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/borderless=true +window/handheld/orientation=1 + +[gui] + +theme/custom="uid://lf2ixoythamg" + +[input] + +escape={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} diff --git a/project.sync-conflict-20251121-170023-6PJZD52.godot b/project.sync-conflict-20251121-170023-6PJZD52.godot new file mode 100644 index 0000000..6403303 --- /dev/null +++ b/project.sync-conflict-20251121-170023-6PJZD52.godot @@ -0,0 +1,34 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Cultists of Campath" +run/main_scene="uid://c1qk762funu8g" +config/features=PackedStringArray("4.5", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/mode=4 +window/size/borderless=true +window/handheld/orientation=1 + +[gui] + +theme/custom="uid://lf2ixoythamg" + +[input] + +escape={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} diff --git a/project.sync-conflict-20251121-170029-6PJZD52.godot b/project.sync-conflict-20251121-170029-6PJZD52.godot new file mode 100644 index 0000000..6403303 --- /dev/null +++ b/project.sync-conflict-20251121-170029-6PJZD52.godot @@ -0,0 +1,34 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Cultists of Campath" +run/main_scene="uid://c1qk762funu8g" +config/features=PackedStringArray("4.5", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/mode=4 +window/size/borderless=true +window/handheld/orientation=1 + +[gui] + +theme/custom="uid://lf2ixoythamg" + +[input] + +escape={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} diff --git a/theme.tres b/theme.tres new file mode 100644 index 0000000..9ba4141 --- /dev/null +++ b/theme.tres @@ -0,0 +1,237 @@ +[gd_resource type="Theme" load_steps=21 format=3 uid="uid://lf2ixoythamg"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e1x85"] +content_margin_left = 30.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wvktn"] +content_margin_left = 30.0 +bg_color = Color(5.017369, 5.017369, 5.017369, 0) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cjfk0"] +content_margin_left = 30.0 +bg_color = Color(0.047058824, 0.07058824, 0.09803922, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vj6dk"] +content_margin_left = 30.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_110ce"] +content_margin_left = 30.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_05tig"] +content_margin_left = 30.0 +bg_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +expand_margin_right = 15.0 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wvktn"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_e1x85"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_howt0"] +bg_color = Color(0.6, 0.6, 0.6, 0) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mihib"] +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mworl"] +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ndmpe"] +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_504p6"] +content_margin_left = 25.0 +content_margin_top = 25.0 +content_margin_right = 25.0 +content_margin_bottom = 25.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +corner_radius_top_left = 25 +corner_radius_top_right = 25 +corner_radius_bottom_right = 25 +corner_radius_bottom_left = 25 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1rmny"] +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n3ikw"] +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6cw85"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0ceoj"] +bg_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +border_width_bottom = 5 +corner_radius_top_left = 50 +corner_radius_top_right = 50 +corner_radius_bottom_right = 50 +corner_radius_bottom_left = 50 +shadow_size = 5 +shadow_offset = Vector2(-5, -5) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ttqs8"] +content_margin_left = 30.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +skew = Vector2(0.33, 0) +border_width_left = 15 +border_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cjfk0"] +content_margin_left = 32.0 +content_margin_top = 32.0 +content_margin_right = 32.0 +content_margin_bottom = 32.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6q1gq"] +content_margin_left = 25.0 +content_margin_top = 25.0 +content_margin_right = 25.0 +content_margin_bottom = 25.0 +bg_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0.047058824, 0.07058824, 0.09803922, 1) +border_blend = true +corner_radius_top_left = 25 +corner_radius_top_right = 25 +corner_radius_bottom_right = 25 +corner_radius_bottom_left = 25 +shadow_size = 5 +shadow_offset = Vector2(5, 5) + +[resource] +default_font_size = 30 +/colors/base = Color(0.11764706, 0.11764706, 0.18039216, 1) +/constants/outline_size = 50 +/font_sizes/big = 50 +/font_sizes/default = 30 +Button/colors/font_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +Button/colors/font_disabled_color = Color(0.61960787, 0.627451, 0.58431375, 1) +Button/colors/font_focus_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +Button/colors/font_hover_color = Color(0.70980394, 0.7411765, 0.40784314, 1) +Button/colors/font_hover_pressed_color = Color(0.70980394, 0.7411765, 0.40784314, 1) +Button/colors/font_outline_color = Color(0.047058824, 0.07058824, 0.09803922, 1) +Button/colors/font_pressed_color = Color(0.7411765, 0.7882353, 0.28627452, 1) +Button/constants/outline_size = 10 +Button/styles/disabled = SubResource("StyleBoxFlat_e1x85") +Button/styles/focus = SubResource("StyleBoxFlat_wvktn") +Button/styles/hover = SubResource("StyleBoxFlat_cjfk0") +Button/styles/hover_pressed = SubResource("StyleBoxFlat_vj6dk") +Button/styles/normal = SubResource("StyleBoxFlat_110ce") +Button/styles/pressed = SubResource("StyleBoxFlat_05tig") +ItemList/colors/font_color = Color(0.9137255, 0.8980392, 0.7921569, 1) +ItemList/colors/font_hovered_color = Color(0.7411765, 0.7882353, 0.28627452, 1) +ItemList/colors/font_hovered_selected_color = Color(0.7411765, 0.7882353, 0.28627452, 1) +ItemList/colors/font_outline_color = Color(0.047058824, 0.07058824, 0.09803922, 1) +ItemList/colors/font_selected_color = Color(0.70980394, 0.7411765, 0.40784314, 1) +ItemList/colors/guide_color = Color(0.7, 0.7, 0.7, 0.25) +ItemList/constants/h_separation = 50 +ItemList/constants/v_separation = 20 +ItemList/styles/cursor = SubResource("StyleBoxEmpty_wvktn") +ItemList/styles/cursor_unfocused = SubResource("StyleBoxEmpty_e1x85") +ItemList/styles/focus = SubResource("StyleBoxFlat_howt0") +ItemList/styles/hovered = SubResource("StyleBoxFlat_mihib") +ItemList/styles/hovered_selected = SubResource("StyleBoxFlat_mworl") +ItemList/styles/hovered_selected_focus = SubResource("StyleBoxFlat_ndmpe") +ItemList/styles/panel = SubResource("StyleBoxFlat_504p6") +ItemList/styles/selected = SubResource("StyleBoxFlat_1rmny") +ItemList/styles/selected_focus = SubResource("StyleBoxFlat_n3ikw") +Label/colors/font_color = Color(0.1254902, 0.1764706, 0.22745098, 1) +Label/colors/font_outline_color = Color(0.047058824, 0.07058824, 0.09803922, 1) +Label/colors/font_shadow_color = Color(0, 0, 0, 0) +Label/constants/outline_size = 3 +Label/styles/focus = SubResource("StyleBoxFlat_6cw85") +Label/styles/normal = SubResource("StyleBoxFlat_0ceoj") +LineEdit/styles/focus = SubResource("StyleBoxFlat_ttqs8") +LineEdit/styles/normal = SubResource("StyleBoxFlat_ttqs8") +LineEdit/styles/read_only = SubResource("StyleBoxFlat_ttqs8") +ScrollContainer/styles/focus = SubResource("StyleBoxEmpty_cjfk0") +ScrollContainer/styles/panel = SubResource("StyleBoxEmpty_cjfk0") +TextEdit/styles/focus = SubResource("StyleBoxFlat_6q1gq") +TextEdit/styles/normal = SubResource("StyleBoxFlat_6q1gq") +TextEdit/styles/read_only = SubResource("StyleBoxFlat_6q1gq")