x12 windowing system

This commit is contained in:
martyTF 2025-12-09 20:17:57 +01:00
parent e16b468e23
commit e6ab1fb39a
60 changed files with 701 additions and 877 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
.godot/
/android/
.stfolder/
.stignore

View file

@ -8,7 +8,7 @@ var item_proper_names = []
var categories
var pixel_x
var pixel_y
var ui_scale = 1
var ui_scale
func _enter_tree() -> void:
conf_mm = ConfigFile.new()
@ -17,13 +17,6 @@ func _enter_tree() -> void:
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]
@ -50,7 +43,7 @@ func item_selected(k,tab):
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)
menu_item.set_menu_items()
func remove_tabs(tab):
remove_child.call_deferred(tab)
@ -59,38 +52,41 @@ 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_scale = 1
if get_viewport_rect().size[0] + get_viewport_rect().size[1] < 3000:
ui_scale = 0.7
pixel_x = get_viewport_rect().size[0] / ui_scale
pixel_y = get_viewport_rect().size[1] / ui_scale
$".".scale = Vector2(ui_scale,ui_scale)
#print("main_menu:set_menu_items:1 " + str(pixel_x) + " " + str(pixel_y))
%scroll.size.y = pixel_y - (320 )
%scroll.position.y = 128
%campaign_manager.position.y = pixel_y - 192
%exit.position.y = pixel_y - 96
%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
i.size.x = pixel_x - 128
i.position.x = 64
else:
%ui_main_menu.size.x = 512.0 * ui_scale
%ui_main_menu.size.x = 512.0
for i in [%scroll,%exit,%campaign_manager]:
i.scale = Vector2(ui_scale,ui_scale)
i.size.x = 448
i.position.x = 32 * ui_scale
i.position.x = 32
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:
if get_viewport_rect().size[0] + get_viewport_rect().size[1] < 3000:
ui_scale = 0.7
pixel_x = get_viewport_rect().size[0] / ui_scale
pixel_y = get_viewport_rect().size[1] / ui_scale
if menu_item:
menu_item.set_menu_items(pixel_x,pixel_y,ui_scale)
menu_item.set_menu_items()
set_menu_items()

View file

@ -1,99 +0,0 @@
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)

View file

@ -27,10 +27,10 @@ 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
offset_left = 88.0
offset_top = 1176.0
offset_right = 408.0
offset_bottom = 1240.0
text = "Campaign Manager"
[node name="scroll" type="ScrollContainer" parent="."]

View file

@ -13,7 +13,6 @@ 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
@ -21,6 +20,7 @@ func _enter_tree() -> void:
%save.text = "Save " + category
#print(category)
list_items()
set_menu_items()
func _on_close_button_up() -> void:
queue_free()
@ -50,7 +50,6 @@ func list_items() -> void:
func refresh_view():
%item_name.text = item
if item != "":
config = ConfigFile.new()
config.load(ini)
@ -62,15 +61,11 @@ func _on_list_item_selected(index: int) -> void:
#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 = load("res://01 - Menus/07 - Window/window.tscn").instantiate()
sheet.item = item
sheet.category = category
sheet.position.x = 512
sheet.position.y = 256
add_child(sheet)
#sheet.set_menu_items()
refresh_view()
@ -129,24 +124,27 @@ func _on_save_button_up() -> void:
func show_save():
%save.visible = true
func set_menu_items(pixel_x,pixel_y,ui_scale):
func set_menu_items():
var ui_scale = 1
if get_viewport_rect().size[0] + get_viewport_rect().size[1] < 3000:
ui_scale = 0.7
var pixel_x = get_viewport_rect().size[0] / ui_scale
var pixel_y = get_viewport_rect().size[1] / 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
%close.position.y = pixel_y - 96
%new_item.position.y = pixel_y - 192
%new_item_name.position.y = pixel_y - 192
%delete.position.y = pixel_y - 286
%filter.position.y = pixel_y - 384
%list.position = (Vector2(128,128))
%list.size.y = pixel_y - 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
i.size.x = pixel_x - 128
i.position.x = 64
else:
%ui_background.size.x = 512.0 * ui_scale
%ui_background.size.x = 512.0
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
i.position.x = 32

View file

@ -48,7 +48,6 @@ 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
@ -74,16 +73,6 @@ 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"]

View file

@ -1,74 +0,0 @@
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()

View file

@ -1 +0,0 @@
uid://d1ixiojxt27x7

View file

@ -1,25 +0,0 @@
[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

View file

@ -0,0 +1,130 @@
extends Control
var config = ConfigFile.new()
var category = ""
var item = ""
var stats = []
var items = []
var module_scene
# Called when the node enters the scene tree for the first time.
func _enter_tree() -> void:
config.load("res://02 - Configurations/" + category + ".ini")
%scroll.size = $".".size
create_book()
func set_items():
for i in %container.get_children():
match i.tooltip_text:
"Text:long":
i.get_child(1).custom_minimum_size = Vector2(%scroll.size.x - 400,192)
"Array:int":
var count = i.get_child(1).get_child_count()
for j in count:
i.get_child(1).get_child(j).custom_minimum_size.x = (%scroll.size.x - 96) / count
func create_book():
var conf_modules = ConfigFile.new()
conf_modules.load("res://02 - Configurations/campaign/modules.ini")
stats = conf_modules.get_section_keys(category)
print(str(stats))
for i in stats:
module_scene = load("res://01 - Menus/04 - Modules/module.tscn").instantiate()
module_scene.size.x = %container.size.x
%container.add_child(module_scene)
module_scene.set_stat_text(i)
module_scene.custom_minimum_size = Vector2(256,64)
var module = conf_modules.get_value(category,i,"").split(":",true)
create_module(module,i)
func create_module(module,i):
match module[0]:
"Array":
match module[1]:
"int":
var fixed_array = [0]
fixed_array.resize(int(module[2]))
fixed_array.fill(0)
var value = config.get_value(item,i,fixed_array)
for j in value:
module_scene.set_value(LineEdit,j)
"list":
match module[2]:
"rec":
pass
"multi":
for j in config.get_value(item,i,[]):
module_scene.set_value(LineEdit,j)
var conf_category = ConfigFile.new()
conf_category.load("res://02 - Configurations/" + i + ".ini")
var add_stat = OptionButton.new()
add_stat.add_separator("Add " + i)
add_stat.set_item_disabled(0,true)
for j in conf_category.get_sections():
if not config.get_value(item,i,[]).has(j):
add_stat.add_item(j)
add_stat.select(0)
"single":
var conf_category = ConfigFile.new()
conf_category.load("res://02 - Configurations/" + i + ".ini")
var add_stat = OptionButton.new()
add_stat.add_separator("Select " + i)
add_stat.set_item_disabled(0,true)
for j in conf_category.get_sections():
add_stat.add_item(j)
add_stat.select(1 + conf_category.get_sections().find(config.get_value(item,i,[""])[0]))
"Text":
match module[1]:
"short":
var stat = LineEdit.new()
stat.text = str(config.get_value(item,i,""))
"long":
var stat = TextEdit.new()
stat.wrap_mode = 1
stat.clip_contents = false
stat.text = config.get_value(item,i,"")
set_items()
#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_close_button_up() -> void:
queue_free()

View file

@ -0,0 +1 @@
uid://bmphhxrifc4gc

View file

@ -0,0 +1,39 @@
[gd_scene load_steps=2 format=3 uid="uid://4q13obqp8uh8"]
[ext_resource type="Script" uid="uid://bmphhxrifc4gc" path="res://01 - Menus/03 - Sheets/sheet.gd" id="1_v0a3n"]
[node name="sheet" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_bottom = 8.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_v0a3n")
[node name="scroll" type="ScrollContainer" parent="."]
unique_name_in_owner = true
layout_mode = 0
offset_right = 448.0
offset_bottom = 256.0
[node name="container" type="VBoxContainer" parent="scroll"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="close" type="Button" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 0
offset_left = 56.0
offset_top = 360.0
offset_right = 164.0
offset_bottom = 402.0
text = "Close"
[connection signal="button_up" from="close" to="." method="_on_close_button_up"]

View file

@ -0,0 +1,21 @@
extends Control
var size_x = 192
var size_y = 164
var text = "button"
var config
# Called when the node enters the scene tree for the first time.
func _enter_tree() -> void:
%button.size = Vector2(size_x,size_y)
%button.text = text
custom_minimum_size = %button.size
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
func _on_button_pressed() -> void:
pass # Replace with function body.

View file

@ -0,0 +1 @@
uid://c5e5v6ai5yv0w

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=2 format=3 uid="uid://csa8o3aa1jxx5"]
[ext_resource type="Script" uid="uid://c5e5v6ai5yv0w" path="res://01 - Menus/04 - Modules/ini_button.gd" id="1_jc31o"]
[node name="ini_button" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_jc31o")
[node name="button" type="Button" parent="."]
unique_name_in_owner = true
layout_mode = 0
offset_right = 256.0
offset_bottom = 64.0
text = "button"
[connection signal="pressed" from="button" to="." method="_on_button_pressed"]

View file

@ -0,0 +1,10 @@
extends Control
func set_stat_text(text):
%stat.text = text
func set_value(module_type,value):
var module = module_type.new()
module.text = str(value)
%value.add_child(module)

View file

@ -0,0 +1 @@
uid://b5l5ei1tt4wka

View file

@ -0,0 +1,32 @@
[gd_scene load_steps=2 format=3 uid="uid://j2f5hra8e7um"]
[ext_resource type="Script" uid="uid://b5l5ei1tt4wka" path="res://01 - Menus/04 - Modules/module.gd" id="1_rxp26"]
[node name="module" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_rxp26")
[node name="vbox" type="VBoxContainer" parent="."]
unique_name_in_owner = true
layout_mode = 0
offset_right = 760.0
offset_bottom = 51.0
[node name="stat" type="Label" parent="vbox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
text = "stat"
horizontal_alignment = 1
[node name="value" type="HBoxContainer" parent="vbox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3

View file

@ -1,5 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. characters
var module # e.g. trait

View file

@ -1 +0,0 @@
uid://cj7dq6bxffndm

View file

@ -1,12 +0,0 @@
[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")

View file

@ -1,5 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. characters
var module # e.g. trait

View file

@ -1 +0,0 @@
uid://b0g20c0f26vke

View file

@ -1,8 +0,0 @@
[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")

View file

@ -32,6 +32,7 @@ func _enter_tree() -> void:
%new_item_suggestions.visible = false
ini = "res://02 - Configurations/" + category + ".ini"
list_items()
set_menu_items()
func list_items():
config = ConfigFile.new()
@ -169,3 +170,21 @@ func _on_delete_button_up() -> void:
config.set_value(item,module,j)
config.save(ini)
list_items()
func set_menu_items():
var ui_scale = 1
var pixel_x = get_viewport_rect().size[0]
var pixel_y = get_viewport_rect().size[1]
if pixel_x + pixel_y < 2900:
ui_scale = 0.7
%background.size.y = pixel_y
if pixel_x < pixel_y: #mobile
self.position = Vector2(0,0)
%background.size.x = pixel_x
for i in [%list]:
i.scale = Vector2(ui_scale,ui_scale)
i.size.x = pixel_x/ui_scale - 128
i.position.x = 64 * ui_scale
else:
self.position = Vector2(1020 * ui_scale,0)
%background.size.x = 256*ui_scale

View file

@ -1,6 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. characters
var module # e.g. trait
var items = [] # e.g. ["Undergrounder","Tough"]

View file

@ -1 +0,0 @@
uid://c50oko0aci1t8

View file

@ -1,12 +0,0 @@
[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")

View file

@ -1,7 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. character
var module # e.g. trait
var items # e.g. ["Undergrounder","Tough"]

View file

@ -1 +0,0 @@
uid://bsni2icpr5xpg

View file

@ -1,12 +0,0 @@
[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")

View file

@ -1,123 +0,0 @@
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))

View file

@ -1 +0,0 @@
uid://cy7cil87c8jlm

View file

@ -1,177 +0,0 @@
[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"]

View file

@ -1,7 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. character
var module # e.g. trait
var items # e.g. ["Undergrounder","Tough"]

View file

@ -1 +0,0 @@
uid://uych52kioaci

View file

@ -1,12 +0,0 @@
[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")

View file

@ -1,25 +0,0 @@
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")

View file

@ -1 +0,0 @@
uid://c7veejgoktxy4

View file

@ -1,19 +0,0 @@
[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"]

View file

@ -1,7 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. character
var module # e.g. trait
var items # e.g. ["Undergrounder","Tough"]

View file

@ -1 +0,0 @@
uid://5fupt8jhtnre

View file

@ -1,8 +0,0 @@
[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")

View file

@ -1,7 +0,0 @@
extends Control
var item # e.g. grondir
var category # e.g. character
var module # e.g. trait
var items # e.g. ["Undergrounder","Tough"]

View file

@ -1 +0,0 @@
uid://cbbigwfdfc2l4

View file

@ -1,8 +0,0 @@
[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")

View file

@ -13,10 +13,10 @@ 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
offset_left = 104.0
offset_top = 152.0
offset_right = 424.0
offset_bottom = 216.0
text = "Close"
[node name="items" type="Button" parent="."]

View file

@ -0,0 +1,210 @@
extends Control
var pixel_x
var pixel_y
var ui_scale
var minsize
var restore_minimize
var module
var category = "character"
var item = "Grondir"
var origin = null
var distance = null
var dragPoint = null
var dragPoint_move = null
var minimized = false
var window_size
var window_position
var resizer
func _enter_tree() -> void:
module = load("res://01 - Menus/03 - Sheets/sheet.tscn").instantiate()
module.category = category
module.item = item
%window.position = Vector2(600,400)
%category.text = category
%item.text = item
%window.add_child(module)
ui_scale = 1
if get_viewport_rect().size[0] + get_viewport_rect().size[1] < 3000:
ui_scale = 0.7
pixel_x = get_viewport_rect().size[0] / ui_scale
pixel_y = get_viewport_rect().size[1] / ui_scale
module_fit_window()
#call_deferred("module_fit_window")
set_bar_items()
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
module_fit_window()
func module_fit_window():
if get_viewport_rect().size[0] > get_viewport_rect().size[1]:
module.get_child(0).size = %ui_background.size - Vector2(64,64)
module.get_child(0).position = %ui_background.position + Vector2(32,32)
else:
position = Vector2(0,0)
%ui_background.size = get_viewport_rect().size
module.get_child(0).size = %ui_background.size - Vector2(64,64)
module.get_child(0).position = Vector2(32,96)
%ui_bar.size.x = %ui_background.size.x
%item.position.x = 64
%close.position.x = %ui_bar.size.x - 92
%minimize.position.x = %close.position.x - 92
for i in [%size_right,%size_left,%size_bottom]:
i.visible = false
module.set_items()
move_child(module,1)
func _on_ui_bar_gui_input(ev: InputEvent) -> void:
if ev is InputEventMouseButton:
if ev.button_index == MOUSE_BUTTON_LEFT:
if ev.pressed:
dragPoint = get_global_mouse_position() - %window.get_position()
get_parent().move_child(self,get_parent().get_child_count())
else:
dragPoint = null
if ev is InputEventMouseMotion and dragPoint != null:
%window.position = get_global_mouse_position()/ui_scale - dragPoint/ui_scale
func _on_minimize_button_up() -> void:
if minimized:
for i in [%ui_background,module]:
i.visible = true
minimized = false
%minimize.text = "-"
for i in [%size_left,%size_right]:
i.size.y = %ui_bar.size.y + %ui_background.size.y
%size_bottom.visible = true
else:
for i in [%ui_background,module]:
i.visible = false
module.visible = false
minimized = true
%minimize.text = "+"
for i in [%size_left,%size_right]:
i.size.y = %ui_bar.size.y
%size_bottom.visible = false
func _on_close_button_up() -> void:
queue_free()
func _on_size_gui_input(ev: InputEvent) -> void:
match resizer:
"right":
resizer = %size_right
"left":
resizer = %size_left
"bottom":
resizer = %size_bottom
if ev is InputEventMouseButton:
if ev.button_index == MOUSE_BUTTON_LEFT:
if ev.pressed:
dragPoint = get_global_mouse_position() * ui_scale
origin = resizer.position
else:
var reset_right = %size_right.position.x - %size_left.position.x - 32
dragPoint = null
distance = null
origin = null
for i in [%size_left,%size_right]:
i.size.y = %ui_background.size.y + 32
i.position.y = 0
%size_bottom.size.x = %ui_bar.size.x
%size_bottom.position.x = %ui_bar.position.x
%window.set_position(%ui_bar.global_position)
%size_left.position = Vector2(-32,0)
%size_right.position.x = reset_right
if ev is InputEventMouseMotion and dragPoint :
distance = get_global_mouse_position() - dragPoint * ui_scale
resizer.position = origin + distance
for i in [%ui_background,%ui_bar]:
i.size.x = %size_right.position.x - %size_left.position.x
if %ui_background.size.x >= 700:
i.position.x = %size_left.position.x + 32
%ui_background.size.y = %size_bottom.position.y - %ui_bar.position.y - 32
set_bar_items()
module_fit_window()
func set_bar_items():
if %ui_background.size.y < 500:
%ui_background.size.y = 500
for i in [%size_left,%size_right]:
i.size.y = 500
%size_bottom.position.y = 532
minsize = true
else:
minsize = false
if %ui_bar.size.x < 700:
for i in [%ui_bar,%ui_background]:
i.size.x = 700
%size_left.position.x = %ui_bar.position.x - 32
elif %ui_bar.size.x < 1200:
%category.visible = false
%item.visible = true
%item.position.x = (%ui_bar.size.x - 256) / 6
minsize = false
else:
%category.visible = true
%item.visible = true
%category.position.x = %ui_bar.size.x /6
%item.position.x = %category.position.x + %category.size.x + 64
minsize = false
%close.position.x = %ui_bar.size.x - 96
%minimize.position.x = %ui_bar.size.x - 192
%size_right.position.x = %ui_bar.position.x + %ui_bar.size.x - 32
func _on_size_mouse_entered() -> void:
#print("in")
Input.set_default_cursor_shape(Input.CURSOR_HSIZE)
func _on_size_mouse_exited() -> void:
#print("out")
Input.set_default_cursor_shape(Input.CURSOR_ARROW)
func _on_size_right_mouse_entered() -> void:
_on_size_mouse_entered()
resizer = "right"
func _on_size_right_mouse_exited() -> void:
_on_size_mouse_exited()
dragPoint = null
func _on_size_left_mouse_entered() -> void:
_on_size_mouse_entered()
resizer = "left"
func _on_size_left_mouse_exited() -> void:
_on_size_mouse_exited()
dragPoint = null
func _on_size_bottom_mouse_entered() -> void:
_on_size_mouse_entered()
resizer = "bottom"
func _on_size_bottom_mouse_exited() -> void:
_on_size_mouse_exited()
dragPoint = null

View file

@ -0,0 +1 @@
uid://ber8skhqnnfa0

View file

@ -0,0 +1,116 @@
[gd_scene load_steps=2 format=3 uid="uid://dy3yn2hesb83"]
[ext_resource type="Script" uid="uid://ber8skhqnnfa0" path="res://01 - Menus/07 - Window/window.gd" id="1_ykjtc"]
[node name="window" type="Control"]
layout_mode = 3
anchors_preset = 0
offset_right = 128.0
offset_bottom = 128.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ykjtc")
[node name="window" type="Control" parent="."]
unique_name_in_owner = true
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="ui_background" type="ColorRect" parent="window"]
unique_name_in_owner = true
layout_mode = 0
offset_top = 64.0
offset_right = 1008.0
offset_bottom = 912.0
color = Color(0.047058824, 0.07058824, 0.09803922, 1)
[node name="size_right" type="Control" parent="window"]
unique_name_in_owner = true
layout_mode = 1
anchor_left = 7.8750005
anchor_top = 3.5620003
anchor_right = 7.8750005
anchor_bottom = 3.5620003
offset_left = 661.0
offset_top = -142.48001
offset_right = 725.0
offset_bottom = 769.52
[node name="size_left" type="Control" parent="window"]
unique_name_in_owner = true
layout_mode = 1
anchor_top = 3.5620003
anchor_bottom = 3.5620003
offset_left = -32.0
offset_top = -142.48001
offset_right = 32.0
offset_bottom = 769.52
[node name="size_bottom" type="Control" parent="window"]
unique_name_in_owner = true
layout_mode = 1
anchor_left = 3.9370003
anchor_top = 7.0620003
anchor_right = 3.9370003
anchor_bottom = 7.0620003
offset_left = -157.48001
offset_top = 597.52
offset_right = 850.52
offset_bottom = 661.52
[node name="ui_bar" type="ColorRect" parent="window"]
unique_name_in_owner = true
layout_mode = 0
offset_right = 1008.0
offset_bottom = 64.0
color = Color(0.1254902, 0.1764706, 0.22745098, 1)
[node name="minimize" type="Button" parent="window/ui_bar"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 808.0
offset_top = 8.0
offset_right = 856.0
offset_bottom = 56.0
text = "-"
[node name="close" type="Button" parent="window/ui_bar"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 904.0
offset_top = 8.0
offset_right = 952.0
offset_bottom = 56.0
text = "x"
[node name="category" type="Label" parent="window/ui_bar"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 32.0
offset_top = 8.0
offset_right = 288.0
offset_bottom = 55.0
horizontal_alignment = 1
[node name="item" type="Label" parent="window/ui_bar"]
unique_name_in_owner = true
layout_mode = 0
offset_left = 320.0
offset_top = 8.0
offset_right = 744.0
offset_bottom = 55.0
horizontal_alignment = 1
[connection signal="gui_input" from="window/size_right" to="." method="_on_size_gui_input"]
[connection signal="mouse_entered" from="window/size_right" to="." method="_on_size_right_mouse_entered"]
[connection signal="mouse_exited" from="window/size_right" to="." method="_on_size_right_mouse_exited"]
[connection signal="gui_input" from="window/size_left" to="." method="_on_size_gui_input"]
[connection signal="mouse_entered" from="window/size_left" to="." method="_on_size_left_mouse_entered"]
[connection signal="mouse_exited" from="window/size_left" to="." method="_on_size_left_mouse_exited"]
[connection signal="gui_input" from="window/size_bottom" to="." method="_on_size_gui_input"]
[connection signal="mouse_entered" from="window/size_bottom" to="." method="_on_size_bottom_mouse_entered"]
[connection signal="mouse_exited" from="window/size_bottom" to="." method="_on_size_bottom_mouse_exited"]
[connection signal="gui_input" from="window/ui_bar" to="." method="_on_ui_bar_gui_input"]
[connection signal="button_up" from="window/ui_bar/minimize" to="." method="_on_minimize_button_up"]
[connection signal="button_up" from="window/ui_bar/close" to="." method="_on_close_button_up"]

View file

@ -2,124 +2,106 @@
name="Characters"
name_self="Character"
module="character"
modules_list=["xenoline", "faction", "childhood", "youth", "trait", "stat", "skill", "pet"]
modules=["xenoline","backstory", "faction", "childhood", "youth", "trait", "stat", "skill", "pet"]
[xenoline]
name="Xenolines"
name_self="Xenoline"
module="xenoline"
modules_list=["trait", "stat", "skill"]
modules=["trait", "stat", "skill"]
[faction]
name="Factions"
name_self="Faction"
module="text"
modules_list=["character", "country", "region", "city", "location"]
modules=["character", "country", "region", "city", "location"]
[trait]
name="Traits"
name_self="Trait"
module="trait"
modules_list=["stat", "skill"]
modules=["stat", "skill"]
[skill]
name="Skills"
name_self="Skill"
module="skill"
modules_list=["stat", "target"]
[stat]
name="Stats"
name_self="Stat"
module="text"
modules_list=[]
modules=[]
[ranged weapon]
name="Ranged Weapons"
name_self="Ranged Weapon"
module=""
modules_list=["attachment"]
modules=["attachment"]
[attachment]
name="Attachments"
name_self="Attachment"
module=""
modules_list=[]
modules=[]
[modifier]
name="Modifiers"
name_self="Modifier"
module=""
modules_list=[]
modules=[]
[target]
name="Targets"
name_self="Target"
module=""
modules_list=[]
modules=[]
[youth]
name="Youths"
name_self="Youth"
module=""
modules_list=[]
modules=[]
[childhood]
name="Childhoods"
name_self="Childhood"
module=""
modules_list=[]
modules=[]
[melee weapon]
name="Melee Weapons"
name_self="Melee Weapon"
module=""
modules_list=[]
modules=[]
[pet]
name="Pets"
name_self="Pet"
module="text"
modules_list=["trait", "stat", "skill"]
modules=["trait", "stat", "skill"]
[country]
name="Countries"
name_self="Country"
module=""
modules_list=["region", "city", "location"]
modules=["region", "city", "location"]
[region]
name="Regions"
name_self="Region"
module=""
modules_list=["city", "location"]
modules=["city", "location"]
[city]
name="Cities"
name_self="City"
module=""
modules_list=["location"]
modules=["location"]
[location]
name="Locations"
name_self="Location"
module="location"
modules_list=[]
modules=[]

View file

@ -0,0 +1,12 @@
[ skill ]
action="Text:long"
duration="Number"
;ends_on="Array:list:single"
cost="Array:int:4"
cost_per_target="Toggle"
target="Array:list:multi"
difficulty="Text:short"
stat="Array:list:rec"
success="Text:long"
failure="Text:long"

View file

@ -18,7 +18,7 @@ stat=[]
type="character"
name=["Alveus", "The First"]
xenoline=["Inhuman"]
xenoline=[]
backstory="Alveus, the first Inhuman, trapped on Maveth, able to control other Inhumans."
trait=["Tough"]
faction=["Cultists of Campath"]

View file

@ -3,7 +3,7 @@
type="skill"
action="Break a wall or object of sturdy hardness using a suitable melee weapon."
duration=0
ends_on=0
ends_on="sleep"
cost=[2, 0, 0, 0]
cost_per_target=false
target=["object"]
@ -75,3 +75,7 @@ stat=[""]
[Detect humanoid]
type="skill"
[Calm animal]
type="skill"

View file

@ -1 +0,0 @@
/home/marty/Cultists of Campath/Godot Project/02 - Configurations/modifier.ini

View file

@ -18,6 +18,7 @@ config/icon="res://icon.svg"
[display]
window/size/borderless=true
window/subwindows/embed_subwindows=false
window/handheld/orientation=1
[gui]

View file

@ -1,34 +0,0 @@
; 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)
]
}

View file

@ -1,34 +0,0 @@
; 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)
]
}

View file

@ -1,27 +1,6 @@
[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)
[gd_resource type="Theme" load_steps=20 format=3 uid="uid://lf2ixoythamg"]
[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
@ -32,39 +11,35 @@ 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)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_vj6dk"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wvktn"]
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_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)
@ -198,10 +173,10 @@ Button/colors/font_hover_pressed_color = Color(0.70980394, 0.7411765, 0.40784314
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/disabled = SubResource("StyleBoxFlat_cjfk0")
Button/styles/focus = SubResource("StyleBoxEmpty_vj6dk")
Button/styles/hover = SubResource("StyleBoxFlat_wvktn")
Button/styles/hover_pressed = SubResource("StyleBoxFlat_110ce")
Button/styles/normal = SubResource("StyleBoxFlat_110ce")
Button/styles/pressed = SubResource("StyleBoxFlat_05tig")
ItemList/colors/font_color = Color(0.9137255, 0.8980392, 0.7921569, 1)