Character.tscn 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. [gd_scene load_steps=5 format=3 uid="uid://duqpp1dik8h8h"]
  2. [ext_resource type="Script" path="res://sources/gui/character/Character.gd" id="2_aacye"]
  3. [ext_resource type="Script" path="res://sources/gui/character/Attributes.gd" id="2_nrudd"]
  4. [ext_resource type="Script" path="res://sources/gui/character/Stats.gd" id="3_v4km6"]
  5. [ext_resource type="Script" path="res://sources/gui/character/Traits.gd" id="4_1wiqu"]
  6. [node name="Character" type="VBoxContainer"]
  7. anchors_preset = 15
  8. anchor_right = 1.0
  9. anchor_bottom = 1.0
  10. grow_horizontal = 2
  11. grow_vertical = 2
  12. script = ExtResource("2_aacye")
  13. [node name="PlayerName" type="PanelContainer" parent="."]
  14. custom_minimum_size = Vector2(260, 0)
  15. layout_mode = 2
  16. size_flags_horizontal = 4
  17. [node name="MarginContainer" type="MarginContainer" parent="PlayerName"]
  18. layout_mode = 2
  19. theme_override_constants/margin_top = 8
  20. [node name="VBoxContainer" type="VBoxContainer" parent="PlayerName/MarginContainer"]
  21. layout_mode = 2
  22. [node name="Title" type="Label" parent="PlayerName/MarginContainer/VBoxContainer"]
  23. layout_mode = 2
  24. text = "Name"
  25. horizontal_alignment = 1
  26. [node name="HSeparator" type="HSeparator" parent="PlayerName/MarginContainer/VBoxContainer"]
  27. layout_mode = 2
  28. [node name="Entry" type="LineEdit" parent="PlayerName/MarginContainer/VBoxContainer"]
  29. visible = false
  30. custom_minimum_size = Vector2(250, 32)
  31. layout_mode = 2
  32. size_flags_vertical = 3
  33. placeholder_text = "Enter Character Name"
  34. alignment = 1
  35. expand_to_text_length = true
  36. context_menu_enabled = false
  37. [node name="Name" type="Label" parent="PlayerName/MarginContainer/VBoxContainer"]
  38. custom_minimum_size = Vector2(0, 20)
  39. layout_mode = 2
  40. size_flags_vertical = 1
  41. horizontal_alignment = 1
  42. [node name="EmptyTop" type="Control" parent="."]
  43. layout_mode = 2
  44. size_flags_vertical = 3
  45. [node name="Display" type="HBoxContainer" parent="."]
  46. layout_mode = 2
  47. [node name="EmptyLeft" type="Control" parent="Display"]
  48. layout_mode = 2
  49. size_flags_horizontal = 3
  50. [node name="Attributes" type="PanelContainer" parent="Display"]
  51. visible = false
  52. layout_mode = 2
  53. size_flags_vertical = 0
  54. theme_type_variation = &"PanelSideLeft"
  55. script = ExtResource("2_nrudd")
  56. [node name="Margin" type="MarginContainer" parent="Display/Attributes"]
  57. layout_mode = 2
  58. theme_override_constants/margin_left = 12
  59. theme_override_constants/margin_right = 12
  60. [node name="VBox" type="VBoxContainer" parent="Display/Attributes/Margin"]
  61. custom_minimum_size = Vector2(250, 0)
  62. layout_mode = 2
  63. [node name="Label" type="Label" parent="Display/Attributes/Margin/VBox"]
  64. layout_mode = 2
  65. text = "Attributes"
  66. horizontal_alignment = 1
  67. [node name="HSeparator" type="HSeparator" parent="Display/Attributes/Margin/VBox"]
  68. layout_mode = 2
  69. [node name="Strength" type="HBoxContainer" parent="Display/Attributes/Margin/VBox"]
  70. layout_mode = 2
  71. [node name="Name" type="Label" parent="Display/Attributes/Margin/VBox/Strength"]
  72. layout_mode = 2
  73. text = "Strength"
  74. [node name="Empty" type="Control" parent="Display/Attributes/Margin/VBox/Strength"]
  75. layout_mode = 2
  76. size_flags_horizontal = 3
  77. [node name="Minus" type="Button" parent="Display/Attributes/Margin/VBox/Strength"]
  78. custom_minimum_size = Vector2(25, 25)
  79. layout_mode = 2
  80. text = "-"
  81. [node name="Value" type="Label" parent="Display/Attributes/Margin/VBox/Strength"]
  82. custom_minimum_size = Vector2(32, 0)
  83. layout_mode = 2
  84. text = "0"
  85. horizontal_alignment = 1
  86. [node name="Plus" type="Button" parent="Display/Attributes/Margin/VBox/Strength"]
  87. custom_minimum_size = Vector2(25, 25)
  88. layout_mode = 2
  89. text = "+"
  90. [node name="Vitality" type="HBoxContainer" parent="Display/Attributes/Margin/VBox"]
  91. layout_mode = 2
  92. [node name="Name" type="Label" parent="Display/Attributes/Margin/VBox/Vitality"]
  93. layout_mode = 2
  94. text = "Vitality"
  95. [node name="Empty" type="Control" parent="Display/Attributes/Margin/VBox/Vitality"]
  96. layout_mode = 2
  97. size_flags_horizontal = 3
  98. [node name="Minus" type="Button" parent="Display/Attributes/Margin/VBox/Vitality"]
  99. custom_minimum_size = Vector2(25, 25)
  100. layout_mode = 2
  101. text = "-"
  102. [node name="Value" type="Label" parent="Display/Attributes/Margin/VBox/Vitality"]
  103. custom_minimum_size = Vector2(32, 0)
  104. layout_mode = 2
  105. text = "0"
  106. horizontal_alignment = 1
  107. [node name="Plus" type="Button" parent="Display/Attributes/Margin/VBox/Vitality"]
  108. custom_minimum_size = Vector2(25, 25)
  109. layout_mode = 2
  110. text = "+"
  111. [node name="Agility" type="HBoxContainer" parent="Display/Attributes/Margin/VBox"]
  112. layout_mode = 2
  113. [node name="Name" type="Label" parent="Display/Attributes/Margin/VBox/Agility"]
  114. layout_mode = 2
  115. text = "Agility"
  116. [node name="Empty" type="Control" parent="Display/Attributes/Margin/VBox/Agility"]
  117. layout_mode = 2
  118. size_flags_horizontal = 3
  119. [node name="Minus" type="Button" parent="Display/Attributes/Margin/VBox/Agility"]
  120. custom_minimum_size = Vector2(25, 25)
  121. layout_mode = 2
  122. text = "-"
  123. [node name="Value" type="Label" parent="Display/Attributes/Margin/VBox/Agility"]
  124. custom_minimum_size = Vector2(32, 0)
  125. layout_mode = 2
  126. text = "0"
  127. horizontal_alignment = 1
  128. [node name="Plus" type="Button" parent="Display/Attributes/Margin/VBox/Agility"]
  129. custom_minimum_size = Vector2(25, 25)
  130. layout_mode = 2
  131. text = "+"
  132. [node name="Endurance" type="HBoxContainer" parent="Display/Attributes/Margin/VBox"]
  133. layout_mode = 2
  134. [node name="Name" type="Label" parent="Display/Attributes/Margin/VBox/Endurance"]
  135. layout_mode = 2
  136. text = "Endurance"
  137. [node name="Empty" type="Control" parent="Display/Attributes/Margin/VBox/Endurance"]
  138. layout_mode = 2
  139. size_flags_horizontal = 3
  140. [node name="Minus" type="Button" parent="Display/Attributes/Margin/VBox/Endurance"]
  141. custom_minimum_size = Vector2(25, 25)
  142. layout_mode = 2
  143. text = "-"
  144. [node name="Value" type="Label" parent="Display/Attributes/Margin/VBox/Endurance"]
  145. custom_minimum_size = Vector2(32, 0)
  146. layout_mode = 2
  147. text = "0"
  148. horizontal_alignment = 1
  149. [node name="Plus" type="Button" parent="Display/Attributes/Margin/VBox/Endurance"]
  150. custom_minimum_size = Vector2(25, 25)
  151. layout_mode = 2
  152. text = "+"
  153. [node name="Concentration" type="HBoxContainer" parent="Display/Attributes/Margin/VBox"]
  154. layout_mode = 2
  155. [node name="Name" type="Label" parent="Display/Attributes/Margin/VBox/Concentration"]
  156. layout_mode = 2
  157. text = "Concentration"
  158. [node name="Empty" type="Control" parent="Display/Attributes/Margin/VBox/Concentration"]
  159. layout_mode = 2
  160. size_flags_horizontal = 3
  161. [node name="Minus" type="Button" parent="Display/Attributes/Margin/VBox/Concentration"]
  162. custom_minimum_size = Vector2(25, 25)
  163. layout_mode = 2
  164. text = "-"
  165. [node name="Value" type="Label" parent="Display/Attributes/Margin/VBox/Concentration"]
  166. custom_minimum_size = Vector2(32, 0)
  167. layout_mode = 2
  168. text = "0"
  169. horizontal_alignment = 1
  170. [node name="Plus" type="Button" parent="Display/Attributes/Margin/VBox/Concentration"]
  171. custom_minimum_size = Vector2(25, 25)
  172. layout_mode = 2
  173. text = "+"
  174. [node name="Stats" type="PanelContainer" parent="Display"]
  175. visible = false
  176. layout_mode = 2
  177. size_flags_vertical = 0
  178. theme_type_variation = &"PanelSideLeft"
  179. script = ExtResource("3_v4km6")
  180. [node name="Margin" type="MarginContainer" parent="Display/Stats"]
  181. layout_mode = 2
  182. theme_override_constants/margin_left = 12
  183. theme_override_constants/margin_right = 12
  184. [node name="VBox" type="VBoxContainer" parent="Display/Stats/Margin"]
  185. custom_minimum_size = Vector2(250, 0)
  186. layout_mode = 2
  187. [node name="Label" type="Label" parent="Display/Stats/Margin/VBox"]
  188. layout_mode = 2
  189. text = "Stats"
  190. horizontal_alignment = 1
  191. [node name="HSeparator" type="HSeparator" parent="Display/Stats/Margin/VBox"]
  192. layout_mode = 2
  193. [node name="Level" type="HBoxContainer" parent="Display/Stats/Margin/VBox"]
  194. layout_mode = 2
  195. [node name="Name" type="Label" parent="Display/Stats/Margin/VBox/Level"]
  196. layout_mode = 2
  197. text = "Level"
  198. [node name="Empty" type="Control" parent="Display/Stats/Margin/VBox/Level"]
  199. layout_mode = 2
  200. size_flags_horizontal = 3
  201. [node name="Value" type="Label" parent="Display/Stats/Margin/VBox/Level"]
  202. custom_minimum_size = Vector2(32, 0)
  203. layout_mode = 2
  204. text = "1"
  205. horizontal_alignment = 2
  206. [node name="Location" type="HBoxContainer" parent="Display/Stats/Margin/VBox"]
  207. layout_mode = 2
  208. [node name="Name" type="Label" parent="Display/Stats/Margin/VBox/Location"]
  209. layout_mode = 2
  210. text = "Location"
  211. [node name="Empty" type="Control" parent="Display/Stats/Margin/VBox/Location"]
  212. layout_mode = 2
  213. size_flags_horizontal = 3
  214. [node name="Value" type="Label" parent="Display/Stats/Margin/VBox/Location"]
  215. custom_minimum_size = Vector2(32, 0)
  216. layout_mode = 2
  217. text = "Artis"
  218. horizontal_alignment = 1
  219. [node name="Selection" type="HBoxContainer" parent="Display/Stats/Margin/VBox"]
  220. layout_mode = 2
  221. [node name="Previous" type="Button" parent="Display/Stats/Margin/VBox/Selection"]
  222. layout_mode = 2
  223. size_flags_horizontal = 3
  224. text = "Previous"
  225. [node name="Empty" type="Control" parent="Display/Stats/Margin/VBox/Selection"]
  226. layout_mode = 2
  227. size_flags_horizontal = 3
  228. [node name="Next" type="Button" parent="Display/Stats/Margin/VBox/Selection"]
  229. custom_minimum_size = Vector2(32, 0)
  230. layout_mode = 2
  231. size_flags_horizontal = 3
  232. text = "Next"
  233. [node name="EmptyMiddleLeft" type="Control" parent="Display"]
  234. layout_mode = 2
  235. size_flags_horizontal = 3
  236. [node name="EmptyMiddleRight" type="Control" parent="Display"]
  237. layout_mode = 2
  238. size_flags_horizontal = 3
  239. [node name="Traits" type="PanelContainer" parent="Display"]
  240. visible = false
  241. layout_mode = 2
  242. size_flags_vertical = 0
  243. theme_type_variation = &"PanelSideRight"
  244. script = ExtResource("4_1wiqu")
  245. [node name="Margin" type="MarginContainer" parent="Display/Traits"]
  246. layout_mode = 2
  247. theme_override_constants/margin_left = 12
  248. theme_override_constants/margin_right = 12
  249. [node name="VBox" type="VBoxContainer" parent="Display/Traits/Margin"]
  250. custom_minimum_size = Vector2(250, 0)
  251. layout_mode = 2
  252. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox"]
  253. layout_mode = 2
  254. text = "Traits"
  255. horizontal_alignment = 1
  256. [node name="HSeparator" type="HSeparator" parent="Display/Traits/Margin/VBox"]
  257. layout_mode = 2
  258. [node name="Hairstyle" type="HBoxContainer" parent="Display/Traits/Margin/VBox"]
  259. layout_mode = 2
  260. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox/Hairstyle"]
  261. layout_mode = 2
  262. text = "Hairstyle"
  263. [node name="Empty" type="Control" parent="Display/Traits/Margin/VBox/Hairstyle"]
  264. layout_mode = 2
  265. size_flags_horizontal = 3
  266. [node name="Previous" type="Button" parent="Display/Traits/Margin/VBox/Hairstyle"]
  267. custom_minimum_size = Vector2(25, 25)
  268. layout_mode = 2
  269. text = "<"
  270. [node name="Name" type="Label" parent="Display/Traits/Margin/VBox/Hairstyle"]
  271. custom_minimum_size = Vector2(120, 0)
  272. layout_mode = 2
  273. text = "Hairstyle"
  274. horizontal_alignment = 1
  275. [node name="Next" type="Button" parent="Display/Traits/Margin/VBox/Hairstyle"]
  276. custom_minimum_size = Vector2(25, 25)
  277. layout_mode = 2
  278. text = ">"
  279. [node name="HairColor" type="HBoxContainer" parent="Display/Traits/Margin/VBox"]
  280. layout_mode = 2
  281. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox/HairColor"]
  282. layout_mode = 2
  283. text = "Hair Color"
  284. [node name="Empty" type="Control" parent="Display/Traits/Margin/VBox/HairColor"]
  285. layout_mode = 2
  286. size_flags_horizontal = 3
  287. [node name="Previous" type="Button" parent="Display/Traits/Margin/VBox/HairColor"]
  288. custom_minimum_size = Vector2(25, 25)
  289. layout_mode = 2
  290. text = "<"
  291. [node name="Name" type="Label" parent="Display/Traits/Margin/VBox/HairColor"]
  292. custom_minimum_size = Vector2(120, 0)
  293. layout_mode = 2
  294. text = "Hair Color"
  295. horizontal_alignment = 1
  296. [node name="Next" type="Button" parent="Display/Traits/Margin/VBox/HairColor"]
  297. custom_minimum_size = Vector2(25, 25)
  298. layout_mode = 2
  299. text = ">"
  300. [node name="Gender" type="HBoxContainer" parent="Display/Traits/Margin/VBox"]
  301. layout_mode = 2
  302. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox/Gender"]
  303. layout_mode = 2
  304. text = "Gender"
  305. [node name="Empty" type="Control" parent="Display/Traits/Margin/VBox/Gender"]
  306. layout_mode = 2
  307. size_flags_horizontal = 3
  308. [node name="Previous" type="Button" parent="Display/Traits/Margin/VBox/Gender"]
  309. custom_minimum_size = Vector2(25, 25)
  310. layout_mode = 2
  311. text = "<"
  312. [node name="Name" type="Label" parent="Display/Traits/Margin/VBox/Gender"]
  313. custom_minimum_size = Vector2(120, 0)
  314. layout_mode = 2
  315. text = "Gender"
  316. horizontal_alignment = 1
  317. [node name="Next" type="Button" parent="Display/Traits/Margin/VBox/Gender"]
  318. custom_minimum_size = Vector2(25, 25)
  319. layout_mode = 2
  320. text = ">"
  321. [node name="Race" type="HBoxContainer" parent="Display/Traits/Margin/VBox"]
  322. layout_mode = 2
  323. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox/Race"]
  324. layout_mode = 2
  325. text = "Race"
  326. [node name="Empty" type="Control" parent="Display/Traits/Margin/VBox/Race"]
  327. layout_mode = 2
  328. size_flags_horizontal = 3
  329. [node name="Previous" type="Button" parent="Display/Traits/Margin/VBox/Race"]
  330. custom_minimum_size = Vector2(25, 25)
  331. layout_mode = 2
  332. text = "<"
  333. [node name="Name" type="Label" parent="Display/Traits/Margin/VBox/Race"]
  334. custom_minimum_size = Vector2(120, 0)
  335. layout_mode = 2
  336. text = "Ethnicity"
  337. horizontal_alignment = 1
  338. [node name="Next" type="Button" parent="Display/Traits/Margin/VBox/Race"]
  339. custom_minimum_size = Vector2(25, 25)
  340. layout_mode = 2
  341. text = ">"
  342. [node name="SkinTone" type="HBoxContainer" parent="Display/Traits/Margin/VBox"]
  343. layout_mode = 2
  344. [node name="Label" type="Label" parent="Display/Traits/Margin/VBox/SkinTone"]
  345. layout_mode = 2
  346. text = "Skin Tone"
  347. [node name="EmptyLeft" type="Control" parent="Display/Traits/Margin/VBox/SkinTone"]
  348. layout_mode = 2
  349. size_flags_horizontal = 3
  350. [node name="Previous" type="Button" parent="Display/Traits/Margin/VBox/SkinTone"]
  351. custom_minimum_size = Vector2(25, 25)
  352. layout_mode = 2
  353. text = "<"
  354. [node name="Name" type="Label" parent="Display/Traits/Margin/VBox/SkinTone"]
  355. custom_minimum_size = Vector2(120, 0)
  356. layout_mode = 2
  357. text = "Skin Tone"
  358. horizontal_alignment = 1
  359. [node name="Next" type="Button" parent="Display/Traits/Margin/VBox/SkinTone"]
  360. custom_minimum_size = Vector2(25, 25)
  361. layout_mode = 2
  362. text = ">"
  363. [node name="EmptyRight" type="Control" parent="Display"]
  364. layout_mode = 2
  365. size_flags_horizontal = 3
  366. [node name="EmptyBottom" type="Control" parent="."]
  367. layout_mode = 2
  368. size_flags_vertical = 3
  369. [connection signal="focus_entered" from="PlayerName/MarginContainer/VBoxContainer/Entry" to="." method="_on_text_focus_entered"]
  370. [connection signal="focus_exited" from="PlayerName/MarginContainer/VBoxContainer/Entry" to="." method="_on_text_focus_exited"]
  371. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Strength/Minus" to="Display/Attributes" method="_on_strength_minus_button"]
  372. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Strength/Plus" to="Display/Attributes" method="_on_strength_plus_button"]
  373. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Vitality/Minus" to="Display/Attributes" method="_on_vitality_minus_button"]
  374. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Vitality/Plus" to="Display/Attributes" method="_on_vitality_plus_button"]
  375. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Agility/Minus" to="Display/Attributes" method="_on_agility_minus_button"]
  376. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Agility/Plus" to="Display/Attributes" method="_on_agility_plus_button"]
  377. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Endurance/Minus" to="Display/Attributes" method="_on_endurance_minus_button"]
  378. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Endurance/Plus" to="Display/Attributes" method="_on_endurance_plus_button"]
  379. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Concentration/Minus" to="Display/Attributes" method="_on_concentration_minus_button"]
  380. [connection signal="pressed" from="Display/Attributes/Margin/VBox/Concentration/Plus" to="Display/Attributes" method="_on_concentration_plus_button"]
  381. [connection signal="pressed" from="Display/Stats/Margin/VBox/Selection/Previous" to="Display/Stats" method="_on_previous_pressed"]
  382. [connection signal="pressed" from="Display/Stats/Margin/VBox/Selection/Next" to="Display/Stats" method="_on_next_pressed"]
  383. [connection signal="pressed" from="Display/Traits/Margin/VBox/Hairstyle/Previous" to="Display/Traits" method="_on_hairstyle_prev_button"]
  384. [connection signal="pressed" from="Display/Traits/Margin/VBox/Hairstyle/Next" to="Display/Traits" method="_on_hairstyle_next_button"]
  385. [connection signal="pressed" from="Display/Traits/Margin/VBox/HairColor/Previous" to="Display/Traits" method="_on_haircolor_prev_button"]
  386. [connection signal="pressed" from="Display/Traits/Margin/VBox/HairColor/Next" to="Display/Traits" method="_on_haircolor_next_button"]
  387. [connection signal="pressed" from="Display/Traits/Margin/VBox/Gender/Previous" to="Display/Traits" method="_on_gender_prev_button"]
  388. [connection signal="pressed" from="Display/Traits/Margin/VBox/Gender/Next" to="Display/Traits" method="_on_gender_next_button"]
  389. [connection signal="pressed" from="Display/Traits/Margin/VBox/Race/Previous" to="Display/Traits" method="_on_race_prev_button"]
  390. [connection signal="pressed" from="Display/Traits/Margin/VBox/Race/Next" to="Display/Traits" method="_on_race_next_button"]
  391. [connection signal="pressed" from="Display/Traits/Margin/VBox/SkinTone/Previous" to="Display/Traits" method="_on_skintone_prev_button"]
  392. [connection signal="pressed" from="Display/Traits/Margin/VBox/SkinTone/Next" to="Display/Traits" method="_on_skintone_next_button"]