Merge branch 'cards' into 'main'
Cards, Post_its and Card Picker ready for vertical slice See merge request betalars/frame-of-mind!1
This commit is contained in:
commit
4edcd4a2bc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
design/post-its.blend (Stored with Git LFS)
BIN
design/post-its.blend (Stored with Git LFS)
Binary file not shown.
|
|
@ -0,0 +1,142 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="1024"
|
||||||
|
height="1024"
|
||||||
|
viewBox="0 0 270.93333 270.93333"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
sodipodi:docname="void_overlay.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#eeeeee"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:showpageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#505050"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.64693624"
|
||||||
|
inkscape:cx="-183.17106"
|
||||||
|
inkscape:cy="428.17203"
|
||||||
|
inkscape:window-width="3840"
|
||||||
|
inkscape:window-height="2095"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="0.83069605"
|
||||||
|
id="stop923" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop921" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient925"
|
||||||
|
id="radialGradient927"
|
||||||
|
cx="61.507626"
|
||||||
|
cy="103.71676"
|
||||||
|
fx="61.507626"
|
||||||
|
fy="103.71676"
|
||||||
|
r="37.458996"
|
||||||
|
gradientTransform="matrix(1.0848971,-0.01406165,0.0138466,1.0683051,-22.35128,-66.298143)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter978"
|
||||||
|
x="-0.01480182"
|
||||||
|
y="-0.01480182"
|
||||||
|
width="1.0296036"
|
||||||
|
height="1.0296036">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.45032961"
|
||||||
|
id="feGaussianBlur980" />
|
||||||
|
</filter>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient925"
|
||||||
|
id="radialGradient988"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0848971,-0.01406165,0.0138466,1.0683051,-170.87366,-73.433246)"
|
||||||
|
cx="61.507626"
|
||||||
|
cy="103.71676"
|
||||||
|
fx="61.507626"
|
||||||
|
fy="103.71676"
|
||||||
|
r="37.458996" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient925"
|
||||||
|
id="radialGradient992"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0848971,-0.01406165,0.0138466,1.0683051,-170.87366,-73.433246)"
|
||||||
|
cx="61.507626"
|
||||||
|
cy="103.71676"
|
||||||
|
fx="61.507626"
|
||||||
|
fy="103.71676"
|
||||||
|
r="37.458996" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient925"
|
||||||
|
id="radialGradient996"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0848971,-0.01406165,0.0138466,1.0683051,-170.87366,-73.433246)"
|
||||||
|
cx="61.507626"
|
||||||
|
cy="103.71676"
|
||||||
|
fx="61.507626"
|
||||||
|
fy="103.71676"
|
||||||
|
r="37.458996" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<circle
|
||||||
|
style="mix-blend-mode:normal;fill:url(#radialGradient927);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4, 7.99999;paint-order:stroke fill markers;filter:url(#filter978)"
|
||||||
|
id="path234"
|
||||||
|
cx="46.295574"
|
||||||
|
cy="40.149464"
|
||||||
|
r="36.50872"
|
||||||
|
transform="matrix(3.1115622,0,0,3.1115622,5.288915,8.187228)" />
|
||||||
|
<circle
|
||||||
|
style="mix-blend-mode:normal;fill:url(#radialGradient988);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4, 7.99999;paint-order:stroke fill markers;filter:url(#filter978)"
|
||||||
|
id="circle986"
|
||||||
|
cx="-102.22681"
|
||||||
|
cy="33.014359"
|
||||||
|
r="36.50872"
|
||||||
|
transform="matrix(-0.80533158,3.0055383,-3.0055383,-0.80533158,163.1273,460.36095)" />
|
||||||
|
<circle
|
||||||
|
style="mix-blend-mode:normal;fill:url(#radialGradient992);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4, 7.99999;paint-order:stroke fill markers;filter:url(#filter978)"
|
||||||
|
id="circle990"
|
||||||
|
cx="-102.22681"
|
||||||
|
cy="33.014359"
|
||||||
|
r="36.50872"
|
||||||
|
transform="matrix(-2.4562477,-1.9101484,1.9101484,-2.4562477,-189.30339,20.919674)" />
|
||||||
|
<circle
|
||||||
|
style="mix-blend-mode:normal;fill:url(#radialGradient996);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4, 7.99999;paint-order:stroke fill markers;filter:url(#filter978)"
|
||||||
|
id="circle994"
|
||||||
|
cx="-102.22681"
|
||||||
|
cy="33.014359"
|
||||||
|
r="36.50872"
|
||||||
|
transform="matrix(-2.6962828,1.5530224,-1.5530224,-2.6962828,-89.765778,394.04656)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.0 KiB |
|
|
@ -0,0 +1,282 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bvowj4l8dtceu"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="1_xrckx"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="2_ucudl"]
|
||||||
|
|
||||||
|
[node name="board of devs" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="childhood" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
||||||
|
[node name="c_homework" parent="childhood" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 34.0
|
||||||
|
offset_top = 31.0
|
||||||
|
offset_right = 334.0
|
||||||
|
offset_bottom = 251.0
|
||||||
|
text = "I never put in much effort for homework "
|
||||||
|
|
||||||
|
[node name="p_good_grades" parent="childhood/c_homework" groups=["c_body", "c_boy_stuff", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 324.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 624.0
|
||||||
|
offset_bottom = 116.0
|
||||||
|
text = "but at least I get good grades."
|
||||||
|
|
||||||
|
[node name="p_upset_peers" parent="childhood/c_homework" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 327.0
|
||||||
|
offset_top = 118.0
|
||||||
|
offset_right = 627.0
|
||||||
|
offset_bottom = 218.0
|
||||||
|
text = "and my peers were upset about that."
|
||||||
|
|
||||||
|
[node name="c_teachers" parent="childhood" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 35.0
|
||||||
|
offset_top = 261.0
|
||||||
|
offset_right = 335.0
|
||||||
|
offset_bottom = 481.0
|
||||||
|
text = "I like my teachers more than my classmates "
|
||||||
|
|
||||||
|
[node name="p_volunteering" parent="childhood/c_teachers" groups=["c_Joy", "c_backlash", "c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 318.0
|
||||||
|
offset_top = 13.0
|
||||||
|
offset_right = 618.0
|
||||||
|
offset_bottom = 113.0
|
||||||
|
text = "doing voluntary social service at my school would be great."
|
||||||
|
|
||||||
|
[node name="p_becoming_teacher" parent="childhood/c_teachers" groups=["c_Joy", "c_backlash", "c_homework"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 321.0
|
||||||
|
offset_top = 115.0
|
||||||
|
offset_right = 621.0
|
||||||
|
offset_bottom = 215.0
|
||||||
|
text = "maybe I want to become a teacher."
|
||||||
|
|
||||||
|
[node name="c_Joy" parent="childhood" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 40.0
|
||||||
|
offset_top = 489.0
|
||||||
|
offset_right = 340.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
text = "I can put ages into things I enjoy "
|
||||||
|
|
||||||
|
[node name="p_worried_mother" parent="childhood/c_Joy" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 320.0
|
||||||
|
offset_top = 7.0
|
||||||
|
offset_right = 620.0
|
||||||
|
offset_bottom = 107.0
|
||||||
|
text = "my mother would be worried about that"
|
||||||
|
|
||||||
|
[node name="p_thomas" parent="childhood/c_Joy" groups=["c_backlash", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 323.0
|
||||||
|
offset_top = 109.0
|
||||||
|
offset_right = 623.0
|
||||||
|
offset_bottom = 209.0
|
||||||
|
text = "Mr Thomas thinks that makes me gifted."
|
||||||
|
|
||||||
|
[node name="voice_training" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
||||||
|
[node name="c_comic_heroes" parent="voice_training" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 685.0
|
||||||
|
offset_top = 26.0
|
||||||
|
offset_right = 985.0
|
||||||
|
offset_bottom = 246.0
|
||||||
|
text = "Comic heroes are my role models "
|
||||||
|
|
||||||
|
[node name="p_effort" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_hit", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 324.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 624.0
|
||||||
|
offset_bottom = 116.0
|
||||||
|
text = "when I put in the effort, I can make the world a better place"
|
||||||
|
|
||||||
|
[node name="p_upset_peers" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_body", "c_boy_stuff", "c_hit"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 327.0
|
||||||
|
offset_top = 118.0
|
||||||
|
offset_right = 627.0
|
||||||
|
offset_bottom = 218.0
|
||||||
|
text = "and I want to be like agent q!"
|
||||||
|
|
||||||
|
[node name="c_boy_stuff" parent="voice_training" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 691.0
|
||||||
|
offset_top = 270.0
|
||||||
|
offset_right = 991.0
|
||||||
|
offset_bottom = 490.0
|
||||||
|
text = "I like boy stuff "
|
||||||
|
|
||||||
|
[node name="p_slut" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_hit", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 318.0
|
||||||
|
offset_top = 13.0
|
||||||
|
offset_right = 618.0
|
||||||
|
offset_bottom = 113.0
|
||||||
|
text = "others think I only pretend to."
|
||||||
|
|
||||||
|
[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_comic_heroes", "c_hit", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 321.0
|
||||||
|
offset_top = 115.0
|
||||||
|
offset_right = 621.0
|
||||||
|
offset_bottom = 215.0
|
||||||
|
text = "and girls don't get that."
|
||||||
|
|
||||||
|
[node name="c_backlash" parent="voice_training" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 691.0
|
||||||
|
offset_top = 493.0
|
||||||
|
offset_right = 991.0
|
||||||
|
offset_bottom = 713.0
|
||||||
|
text = "Despite the backlash, I protected Joyo in front of class "
|
||||||
|
|
||||||
|
[node name="p_cross_friend" parent="voice_training/c_backlash" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_hit"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 320.0
|
||||||
|
offset_top = 7.0
|
||||||
|
offset_right = 620.0
|
||||||
|
offset_bottom = 107.0
|
||||||
|
text = "I would never cross a friend, even if it was for my own good."
|
||||||
|
|
||||||
|
[node name="p_reward" parent="voice_training/c_backlash" groups=["c_Joy"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 323.0
|
||||||
|
offset_top = 109.0
|
||||||
|
offset_right = 623.0
|
||||||
|
offset_bottom = 209.0
|
||||||
|
text = "those who put in the effort should be rewarded."
|
||||||
|
|
||||||
|
[node name="juijutsu" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
|
||||||
|
[node name="c_body" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1332.0
|
||||||
|
offset_top = 34.0
|
||||||
|
offset_right = 1632.0
|
||||||
|
offset_bottom = 254.0
|
||||||
|
text = "my body makes me uncomfortable "
|
||||||
|
|
||||||
|
[node name="p_boobs" parent="juijutsu/c_body" groups=["c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 324.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 624.0
|
||||||
|
offset_bottom = 116.0
|
||||||
|
text = "boobs are just not made for fighting."
|
||||||
|
|
||||||
|
[node name="p_fat" parent="juijutsu/c_body" instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 327.0
|
||||||
|
offset_top = 118.0
|
||||||
|
offset_right = 627.0
|
||||||
|
offset_bottom = 218.0
|
||||||
|
text = "I despise all the fat on my hips."
|
||||||
|
|
||||||
|
[node name="c_hit" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1338.0
|
||||||
|
offset_top = 278.0
|
||||||
|
offset_right = 1638.0
|
||||||
|
offset_bottom = 498.0
|
||||||
|
text = "I know how to properly hit people "
|
||||||
|
|
||||||
|
[node name="p_confidence" parent="juijutsu/c_hit" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 318.0
|
||||||
|
offset_top = 13.0
|
||||||
|
offset_right = 618.0
|
||||||
|
offset_bottom = 113.0
|
||||||
|
text = "..., that gives me a lot of confidence."
|
||||||
|
|
||||||
|
[node name="p_vent" parent="juijutsu/c_hit" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 321.0
|
||||||
|
offset_top = 115.0
|
||||||
|
offset_right = 621.0
|
||||||
|
offset_bottom = 215.0
|
||||||
|
text = "and that’s a great vent."
|
||||||
|
|
||||||
|
[node name="c_void" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1338.0
|
||||||
|
offset_top = 501.0
|
||||||
|
offset_right = 1638.0
|
||||||
|
offset_bottom = 721.0
|
||||||
|
|
||||||
|
[node name="p_wet" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 320.0
|
||||||
|
offset_top = 7.0
|
||||||
|
offset_right = 620.0
|
||||||
|
offset_bottom = 107.0
|
||||||
|
text = "… I was wet, so I must have been into it."
|
||||||
|
|
||||||
|
[node name="p_stop" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 323.0
|
||||||
|
offset_top = 109.0
|
||||||
|
offset_right = 623.0
|
||||||
|
offset_bottom = 209.0
|
||||||
|
text = "… I didn’t say stop."
|
||||||
|
|
||||||
|
[node name="test" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = 730.0
|
||||||
|
offset_top = -3.0
|
||||||
|
offset_right = 770.0
|
||||||
|
offset_bottom = 37.0
|
||||||
|
|
||||||
|
[node name="c_random1" parent="test" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1332.0
|
||||||
|
offset_top = 34.0
|
||||||
|
offset_right = 1632.0
|
||||||
|
offset_bottom = 254.0
|
||||||
|
|
||||||
|
[node name="p_random11" parent="test/c_random1" groups=["c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 324.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 624.0
|
||||||
|
offset_bottom = 116.0
|
||||||
|
text = "random 1"
|
||||||
|
|
||||||
|
[node name="p_random12" parent="test/c_random1" instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 327.0
|
||||||
|
offset_top = 118.0
|
||||||
|
offset_right = 627.0
|
||||||
|
offset_bottom = 218.0
|
||||||
|
text = "random 1"
|
||||||
|
|
||||||
|
[node name="c_pick" parent="test" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1338.0
|
||||||
|
offset_top = 278.0
|
||||||
|
offset_right = 1638.0
|
||||||
|
offset_bottom = 498.0
|
||||||
|
|
||||||
|
[node name="p_pick" parent="test/c_pick" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 318.0
|
||||||
|
offset_top = 13.0
|
||||||
|
offset_right = 618.0
|
||||||
|
offset_bottom = 113.0
|
||||||
|
text = "pick me 2"
|
||||||
|
|
||||||
|
[node name="p_goof" parent="test/c_pick" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 321.0
|
||||||
|
offset_top = 115.0
|
||||||
|
offset_right = 621.0
|
||||||
|
offset_bottom = 215.0
|
||||||
|
text = "you done goofed"
|
||||||
|
|
||||||
|
[node name="c_random2" parent="test" instance=ExtResource("1_xrckx")]
|
||||||
|
offset_left = 1338.0
|
||||||
|
offset_top = 501.0
|
||||||
|
offset_right = 1638.0
|
||||||
|
offset_bottom = 721.0
|
||||||
|
|
||||||
|
[node name="p_random21" parent="test/c_random2" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 320.0
|
||||||
|
offset_top = 7.0
|
||||||
|
offset_right = 620.0
|
||||||
|
offset_bottom = 107.0
|
||||||
|
text = "random 2"
|
||||||
|
|
||||||
|
[node name="p_random22" parent="test/c_random2" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
|
offset_left = 323.0
|
||||||
|
offset_top = 109.0
|
||||||
|
offset_right = 623.0
|
||||||
|
offset_bottom = 209.0
|
||||||
|
text = "random 2"
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
extends CenterContainer
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
$cards/card_1/AnimationPlayer.play("select")
|
||||||
|
await $cards/card_1/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_1/AnimationPlayer.play("deselect")
|
||||||
|
$cards/card_2/AnimationPlayer.play("select")
|
||||||
|
await $cards/card_1/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_2/AnimationPlayer.play("deselect")
|
||||||
|
$cards/card_3/AnimationPlayer.play("select")
|
||||||
|
await $cards/card_2/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_3/AnimationPlayer.play("deselect")
|
||||||
|
await $cards/card_3/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_1/AnimationPlayer.play("select")
|
||||||
|
await $cards/card_1/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_1/AnimationPlayer.play("take")
|
||||||
|
$cards/card_2/AnimationPlayer.play("unshuffle")
|
||||||
|
$cards/card_3/AnimationPlayer.play("shuffle")
|
||||||
|
await $cards/card_3/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
for card in $cards.get_children():
|
||||||
|
card.get_child(1).play("RESET")
|
||||||
|
|
||||||
|
$cards/card_2/AnimationPlayer.queue("select")
|
||||||
|
await $cards/card_2/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_2/AnimationPlayer.play("take")
|
||||||
|
$cards/card_3/AnimationPlayer.play("unshuffle")
|
||||||
|
$cards/card_1/AnimationPlayer.play("shuffle")
|
||||||
|
await $cards/card_1/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
for card in $cards.get_children():
|
||||||
|
card.get_child(1).play("RESET")
|
||||||
|
|
||||||
|
$cards/card_3/AnimationPlayer.queue("select")
|
||||||
|
await $cards/card_3/AnimationPlayer.animation_finished
|
||||||
|
$cards/card_3/AnimationPlayer.play("take")
|
||||||
|
$cards/card_1/AnimationPlayer.play("unshuffle")
|
||||||
|
$cards/card_2/AnimationPlayer.play("shuffle")
|
||||||
|
await $cards/card_2/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
$postIts.show()
|
||||||
|
|
||||||
|
for card in $postIts.get_children():
|
||||||
|
card.get_child(1).play("post")
|
||||||
|
|
||||||
|
await $postIts/postIt_1/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("select")
|
||||||
|
await $postIts/postIt_1/AnimationPlayer.animation_finished
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("deselect")
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("select")
|
||||||
|
await $postIts/postIt_2/AnimationPlayer.animation_finished
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("deselect")
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("select")
|
||||||
|
await $postIts/postIt_3/AnimationPlayer.animation_finished
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("deselect")
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("select")
|
||||||
|
await $postIts/postIt_4/AnimationPlayer.animation_finished
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("deselect")
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("select")
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("pick")
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("shuffle")
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("unshuffle")
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("unshuffle")
|
||||||
|
|
||||||
|
await $postIts/postIt_2/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
for card in $postIts.get_children():
|
||||||
|
card.get_child(1).play("post")
|
||||||
|
|
||||||
|
await $postIts/postIt_1/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("select")
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("pick")
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("shuffle")
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("unshuffle")
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("unshuffle")
|
||||||
|
|
||||||
|
await $postIts/postIt_3/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
for card in $postIts.get_children():
|
||||||
|
card.get_child(1).play("post")
|
||||||
|
|
||||||
|
await $postIts/postIt_1/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("select")
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("pick")
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("shuffle")
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("unshuffle")
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("unshuffle")
|
||||||
|
|
||||||
|
await $postIts/postIt_4/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
for card in $postIts.get_children():
|
||||||
|
card.get_child(1).play("post")
|
||||||
|
|
||||||
|
await $postIts/postIt_1/AnimationPlayer.animation_finished
|
||||||
|
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("select")
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
$postIts/postIt_4/AnimationPlayer.play("pick")
|
||||||
|
$postIts/postIt_1/AnimationPlayer.play("shuffle")
|
||||||
|
$postIts/postIt_2/AnimationPlayer.play("unshuffle")
|
||||||
|
$postIts/postIt_3/AnimationPlayer.play("unshuffle")
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,72 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
const dev_board_pre = preload("res://dev-util/board of devs.tscn")
|
||||||
|
var dev_board: Control
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
dev_board = dev_board_pre.instantiate()
|
||||||
|
|
||||||
|
if $cards.get_child_count(false) > 0:
|
||||||
|
$cards.get_children(false)[0].grab_focus()
|
||||||
|
|
||||||
|
# Testing code
|
||||||
|
for item in dev_board.find_children("*"):
|
||||||
|
if item is Card:
|
||||||
|
spawn_card((item as Card).duplicate())
|
||||||
|
elif item is PostIt:
|
||||||
|
spawn_postit((item as PostIt).duplicate())
|
||||||
|
|
||||||
|
func _process(delta: float):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func spawn_card(card: Card):
|
||||||
|
$cards.add_child(card)
|
||||||
|
|
||||||
|
if $cards.get_child_count(false) == 1:
|
||||||
|
$cards.get_children(false)[0].grab_focus()
|
||||||
|
|
||||||
|
populate_focus_neighbors()
|
||||||
|
|
||||||
|
func spawn_postit(postit: PostIt):
|
||||||
|
$postits.add_child(postit)
|
||||||
|
|
||||||
|
populate_focus_neighbors()
|
||||||
|
|
||||||
|
func populate_focus_neighbors():
|
||||||
|
# TODO reorder cards based on position
|
||||||
|
|
||||||
|
if $cards.get_child_count(false) <= 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
var first_card = $cards.get_children(false)[0]
|
||||||
|
var first_postit = $postits.get_children(false)[0] if $postits.get_child_count(false) > 0 else first_card
|
||||||
|
|
||||||
|
var first_board_card = $mindmap.get_children(false)[0] if $mindmap.get_child_count(false) > 0 else first_card
|
||||||
|
|
||||||
|
var cards = $cards.get_children(false) as Array[Card]
|
||||||
|
for i in cards.size():
|
||||||
|
var card = cards[i]
|
||||||
|
if card == first_card or not (card is Card):
|
||||||
|
continue
|
||||||
|
card.focus_neighbor_right = first_board_card # FIXME should be a valid focusable object, but it refuses
|
||||||
|
card.focus_neighbor_left = first_postit
|
||||||
|
card.focus_neighbor_up = cards[(i - 1) % cards.size()]
|
||||||
|
card.focus_neighbor_down = cards[(i + 1) % cards.size()]
|
||||||
|
|
||||||
|
var postits = $postits.get_children(false) as Array[PostIt]
|
||||||
|
for i in postits.size():
|
||||||
|
var postit = postits[i]
|
||||||
|
if not (postit is PostIt):
|
||||||
|
continue
|
||||||
|
postit.focus_neighbor_right = first_card
|
||||||
|
postit.focus_neighbor_left = first_board_card
|
||||||
|
postit.focus_neighbor_up = postits[(i - 1) % postits.size()]
|
||||||
|
postit.focus_neighbor_down = postits[(i + 1) % postits.size()]
|
||||||
|
|
||||||
|
var board_items = $mindmap.get_children(false) as Array
|
||||||
|
for i in board_items.size():
|
||||||
|
var board_item = board_items[i]
|
||||||
|
board_item.focus_neighbor_right = first_postit
|
||||||
|
board_item.focus_neighbor_left = first_card
|
||||||
|
board_item.focus_neighbor_up = board_items[(i - 1) % board_items.size()]
|
||||||
|
board_item.focus_neighbor_down = board_items[(i + 1) % board_items.size()]
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://bpk4hhck7xb8a"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://logic-scenes/board/board.gd" id="1_0rxlw"]
|
||||||
|
|
||||||
|
[node name="board" 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_0rxlw")
|
||||||
|
|
||||||
|
[node name="mindmap" type="Panel" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="cards" type="Panel" parent="."]
|
||||||
|
custom_minimum_size = Vector2(100, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 9
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_right = 30.0
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="postits" type="Panel" parent="."]
|
||||||
|
custom_minimum_size = Vector2(100, 0)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 11
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 2
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://sv0nhkkur1tt"
|
||||||
|
path="res://.godot/imported/cardsheet.png-aa9a1276947e1ea9c07388cd560d5919.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://logic-scenes/board/card-textures/cardsheet.png"
|
||||||
|
dest_files=["res://.godot/imported/cardsheet.png-aa9a1276947e1ea9c07388cd560d5919.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c8ckkjmdegyis"
|
||||||
|
path="res://.godot/imported/postitsheet.png-a6afe1969b145c3d0f8e274a0a6fb36e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://logic-scenes/board/card-textures/postitsheet.png"
|
||||||
|
dest_files=["res://.godot/imported/postitsheet.png-a6afe1969b145c3d0f8e274a0a6fb36e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
@tool
|
||||||
|
|
||||||
|
extends Control
|
||||||
|
class_name Card
|
||||||
|
var compatible_postits: Array[PostIt] = []
|
||||||
|
var own_postits: Array[PostIt] = []
|
||||||
|
|
||||||
|
@export var text: String = "" :
|
||||||
|
set (value):
|
||||||
|
text = value
|
||||||
|
if is_inside_tree() or Engine.is_editor_hint():
|
||||||
|
$Label.text = value
|
||||||
|
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||||
|
if is_inside_tree():
|
||||||
|
$BackgroundSprite.void_active = value == ""
|
||||||
|
@export var voice_line: AudioStream = null
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if not Engine.is_editor_hint() and is_inside_tree():
|
||||||
|
for postit in self.get_children():
|
||||||
|
if postit is PostIt: self.own_postits.append(postit as PostIt)
|
||||||
|
|
||||||
|
for postit in get_tree().get_nodes_in_group(name):
|
||||||
|
if postit is PostIt: self.compatible_postits.append(postit as PostIt)
|
||||||
|
|
||||||
|
compatible_postits.append_array(own_postits)
|
||||||
|
|
||||||
|
if own_postits.size() == 2:
|
||||||
|
own_postits[0].sibling = own_postits[1]
|
||||||
|
own_postits[1].sibling = own_postits[0]
|
||||||
|
|
||||||
|
$BackgroundSprite.frame = randi() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||||
|
$Label.text = self.text
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func replace_with(card: Card):
|
||||||
|
self.text = card.text
|
||||||
|
self.compatible_postits = card.compatible_postits
|
||||||
|
self.own_postits = card.own_postits
|
||||||
|
self.voice_line = card.voice_line
|
||||||
|
|
||||||
|
func _on_focus_entered():
|
||||||
|
print(self, "is focused")
|
||||||
|
|
||||||
|
func _on_focus_exited():
|
||||||
|
print(self, "is not focused")
|
||||||
|
|
@ -0,0 +1,206 @@
|
||||||
|
[gd_scene load_steps=20 format=3 uid="uid://dy5rd437h5hsw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_emip0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_ioijn"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="3_bwtbh"]
|
||||||
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_rktsa"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_fwm1k"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ykk13"]
|
||||||
|
atlas = ExtResource("2_ioijn")
|
||||||
|
region = Rect2(0, 0, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_l43eo"]
|
||||||
|
atlas = ExtResource("2_ioijn")
|
||||||
|
region = Rect2(600, 0, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_x2vcn"]
|
||||||
|
atlas = ExtResource("2_ioijn")
|
||||||
|
region = Rect2(0, 440, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_e7401"]
|
||||||
|
atlas = ExtResource("2_ioijn")
|
||||||
|
region = Rect2(600, 440, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_j7wh6"]
|
||||||
|
atlas = ExtResource("2_ioijn")
|
||||||
|
region = Rect2(0, 880, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_ckivt"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ykk13")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_l43eo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_x2vcn")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_e7401")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_j7wh6")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_8bs16"]
|
||||||
|
script/source = "extends AnimatedSprite2D
|
||||||
|
|
||||||
|
@onready var particles = $GPUParticles2D
|
||||||
|
@onready var initial_position = position
|
||||||
|
var noise_position = randf()
|
||||||
|
var noise: Noise = FastNoiseLite.new()
|
||||||
|
var void_active:
|
||||||
|
set(become_void):
|
||||||
|
if not (void_active == become_void):
|
||||||
|
if is_inside_tree():
|
||||||
|
$GPUParticles2D.is_void = become_void
|
||||||
|
$GPUParticles2D.emitting = become_void
|
||||||
|
$Sprite2D.is_void = become_void
|
||||||
|
void_active = become_void
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if void_active and not State.reduce_motion:
|
||||||
|
noise_position += delta * 10
|
||||||
|
|
||||||
|
var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position))
|
||||||
|
|
||||||
|
random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5
|
||||||
|
|
||||||
|
position = initial_position - random_position
|
||||||
|
|
||||||
|
rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01
|
||||||
|
|
||||||
|
particles.position = random_position
|
||||||
|
|
||||||
|
else: position = initial_position
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_v70nd"]
|
||||||
|
interpolation_mode = 2
|
||||||
|
offsets = PackedFloat32Array(0, 0.0529197, 0.191606, 1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0.491329, 1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xxq8p"]
|
||||||
|
gradient = SubResource("Gradient_v70nd")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_q6cmf"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 3.16529, 0, 0, Vector2(0.241056, 0.191336), 0.132446, 0.132446, 0, 0, Vector2(1, 1), 3.94797, 0.0, 0, 0]
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_cg0w1"]
|
||||||
|
curve = SubResource("Curve_q6cmf")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_by44l"]
|
||||||
|
emission_shape = 6
|
||||||
|
emission_ring_axis = Vector3(0, 0, 1)
|
||||||
|
emission_ring_height = 0.0
|
||||||
|
emission_ring_radius = 180.0
|
||||||
|
emission_ring_inner_radius = 185.0
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
spread = 180.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
initial_velocity_min = -10.0
|
||||||
|
initial_velocity_max = 10.0
|
||||||
|
angular_velocity_min = -150.0
|
||||||
|
angular_velocity_max = -150.0
|
||||||
|
orbit_velocity_min = 0.0
|
||||||
|
orbit_velocity_max = 0.0
|
||||||
|
radial_accel_min = -20.0
|
||||||
|
radial_accel_max = -5.0
|
||||||
|
tangential_accel_min = 20.0
|
||||||
|
tangential_accel_max = 30.0
|
||||||
|
scale_min = 3.0
|
||||||
|
scale_max = 5.0
|
||||||
|
scale_curve = SubResource("CurveTexture_cg0w1")
|
||||||
|
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
||||||
|
turbulence_noise_strength = 0.1
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_vjwk7"]
|
||||||
|
script/source = "extends GPUParticles2D
|
||||||
|
|
||||||
|
var is_void:bool = false
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
self.visible = !State.reduce_motion and is_void
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_tgc0b"]
|
||||||
|
script/source = "extends Sprite2D
|
||||||
|
|
||||||
|
var is_void:bool = false
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
self.visible = State.reduce_motion and is_void
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="card" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = -150.0
|
||||||
|
offset_top = -110.0
|
||||||
|
offset_right = 150.0
|
||||||
|
offset_bottom = 110.0
|
||||||
|
focus_mode = 2
|
||||||
|
script = ExtResource("1_emip0")
|
||||||
|
|
||||||
|
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="."]
|
||||||
|
clip_children = 2
|
||||||
|
position = Vector2(150, 110)
|
||||||
|
scale = Vector2(0.6, 0.6)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_ckivt")
|
||||||
|
frame = 3
|
||||||
|
script = SubResource("GDScript_8bs16")
|
||||||
|
|
||||||
|
[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"]
|
||||||
|
visible = false
|
||||||
|
amount = 500
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_by44l")
|
||||||
|
texture = ExtResource("3_bwtbh")
|
||||||
|
lifetime = 2.5
|
||||||
|
speed_scale = 1.3
|
||||||
|
explosiveness = 0.2
|
||||||
|
randomness = 0.14
|
||||||
|
local_coords = true
|
||||||
|
script = SubResource("GDScript_vjwk7")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"]
|
||||||
|
visible = false
|
||||||
|
scale = Vector2(0.4, 0.4)
|
||||||
|
texture = ExtResource("4_fwm1k")
|
||||||
|
script = SubResource("GDScript_tgc0b")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -127.0
|
||||||
|
offset_top = -82.5
|
||||||
|
offset_right = 127.0
|
||||||
|
offset_bottom = 82.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("3_rktsa")
|
||||||
|
theme_type_variation = &"card_text"
|
||||||
|
autowrap_mode = 3
|
||||||
|
|
||||||
|
[node name="postit anchor" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = 100.0
|
||||||
|
offset_top = 148.0
|
||||||
|
offset_right = 140.0
|
||||||
|
offset_bottom = 188.0
|
||||||
|
|
||||||
|
[connection signal="focus_entered" from="." to="." method="_on_focus_entered"]
|
||||||
|
[connection signal="focus_exited" from="." to="." method="_on_focus_exited"]
|
||||||
|
[connection signal="focus_entered" from="postit anchor" to="." method="_on_postit_anchor_focus_entered"]
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://kpmk21d8rlso"
|
||||||
|
path="res://.godot/imported/star.png-cb025d5aa45574fdb1b3cdd678fdbecd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://logic-scenes/board/particle_textures/star.png"
|
||||||
|
dest_files=["res://.godot/imported/star.png-cb025d5aa45574fdb1b3cdd678fdbecd.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bqilajx05t0eb"
|
||||||
|
path="res://.godot/imported/void_nomotion.png-feea4a00de7607ab1e264c944eff6917.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://logic-scenes/board/particle_textures/void_nomotion.png"
|
||||||
|
dest_files=["res://.godot/imported/void_nomotion.png-feea4a00de7607ab1e264c944eff6917.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
@tool
|
||||||
|
|
||||||
|
extends Control
|
||||||
|
class_name PostIt
|
||||||
|
var sibling
|
||||||
|
|
||||||
|
@export var text: String = "" :
|
||||||
|
set (value):
|
||||||
|
if is_inside_tree() or Engine.is_editor_hint():
|
||||||
|
$Label.text = value
|
||||||
|
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||||
|
text = value
|
||||||
|
@export var voice_line: AudioStream = null
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$Label.text = self.text
|
||||||
|
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||||
|
|
||||||
|
func replace_with(postit: PostIt):
|
||||||
|
self.text = postit.text
|
||||||
|
self.voice_line = postit.voice_line
|
||||||
|
self.sibling = postit.sibling
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _on_focus_entered():
|
||||||
|
print(self, "is focused")
|
||||||
|
|
||||||
|
func _on_focus_exited():
|
||||||
|
print(self, "is not focused")
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
[gd_scene load_steps=17 format=3 uid="uid://vkcdj8c3ytbq"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://logic-scenes/board/post-it.gd" id="1_yvh5n"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c8ckkjmdegyis" path="res://logic-scenes/board/card-textures/postitsheet.png" id="2_j17jn"]
|
||||||
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_hu2as"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_nj16s"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(0, 0, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_23tiq"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(500, 0, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_aomh0"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1000, 0, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_n3svg"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1500, 0, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_tfg7a"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(0, 220, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_dtics"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(500, 220, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_e0ocs"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1000, 220, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_bpwg2"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1500, 220, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_xaxol"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(0, 440, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ifitb"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(500, 440, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_6slhe"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1000, 440, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_4tk5m"]
|
||||||
|
atlas = ExtResource("2_j17jn")
|
||||||
|
region = Rect2(1500, 440, 500, 220)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_2amsi"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_nj16s")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_23tiq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_aomh0")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_n3svg")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_tfg7a")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_dtics")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_e0ocs")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_bpwg2")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_xaxol")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ifitb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_6slhe")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_4tk5m")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="post-it" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = -150.0
|
||||||
|
offset_top = -50.0
|
||||||
|
offset_right = 150.0
|
||||||
|
offset_bottom = 50.0
|
||||||
|
focus_mode = 2
|
||||||
|
script = ExtResource("1_yvh5n")
|
||||||
|
|
||||||
|
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(150, 50)
|
||||||
|
scale = Vector2(0.65, 0.65)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_2amsi")
|
||||||
|
frame = 5
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -139.5
|
||||||
|
offset_top = -50.0
|
||||||
|
offset_right = 137.5
|
||||||
|
offset_bottom = 47.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("3_hu2as")
|
||||||
|
theme_type_variation = &"card_text"
|
||||||
|
vertical_alignment = 1
|
||||||
|
autowrap_mode = 3
|
||||||
|
|
||||||
|
[connection signal="focus_entered" from="." to="." method="_on_focus_entered"]
|
||||||
|
[connection signal="focus_exited" from="." to="." method="_on_focus_exited"]
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
[gd_resource type="VisualShader" load_steps=2 format=3 uid="uid://bwjioe14xggin"]
|
||||||
|
|
||||||
|
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_i5j4e"]
|
||||||
|
output_port_for_preview = 0
|
||||||
|
input_name = "color"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
code = "shader_type canvas_item;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// Input:2
|
||||||
|
vec4 n_out2p0 = COLOR;
|
||||||
|
|
||||||
|
|
||||||
|
// Output:0
|
||||||
|
COLOR.rgb = vec3(n_out2p0.xyz);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
"
|
||||||
|
graph_offset = Vector2(-496.091, 53.946)
|
||||||
|
mode = 1
|
||||||
|
flags/light_only = false
|
||||||
|
nodes/fragment/2/node = SubResource("VisualShaderNodeInput_i5j4e")
|
||||||
|
nodes/fragment/2/position = Vector2(-60, 180)
|
||||||
|
nodes/fragment/connections = PackedInt32Array(2, 0, 0, 0)
|
||||||
|
|
@ -0,0 +1,203 @@
|
||||||
|
[gd_scene load_steps=20 format=3 uid="uid://dp4eps03igd3w"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_6ceun"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_buevv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="3_8wu8j"]
|
||||||
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_mi4ah"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_jam8u"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ykk13"]
|
||||||
|
atlas = ExtResource("2_buevv")
|
||||||
|
region = Rect2(0, 0, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_l43eo"]
|
||||||
|
atlas = ExtResource("2_buevv")
|
||||||
|
region = Rect2(600, 0, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_x2vcn"]
|
||||||
|
atlas = ExtResource("2_buevv")
|
||||||
|
region = Rect2(0, 440, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_e7401"]
|
||||||
|
atlas = ExtResource("2_buevv")
|
||||||
|
region = Rect2(600, 440, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_j7wh6"]
|
||||||
|
atlas = ExtResource("2_buevv")
|
||||||
|
region = Rect2(0, 880, 600, 440)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_ckivt"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ykk13")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_l43eo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_x2vcn")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_e7401")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_j7wh6")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_8bs16"]
|
||||||
|
script/source = "extends AnimatedSprite2D
|
||||||
|
|
||||||
|
@onready var particles = $GPUParticles2D
|
||||||
|
@onready var initial_position = position
|
||||||
|
var noise_position = randf()
|
||||||
|
var noise: Noise = FastNoiseLite.new()
|
||||||
|
var void_active:
|
||||||
|
set(become_void):
|
||||||
|
if not (void_active == become_void):
|
||||||
|
if is_inside_tree():
|
||||||
|
$GPUParticles2D.is_void = become_void
|
||||||
|
$GPUParticles2D.emitting = become_void
|
||||||
|
$Sprite2D.is_void = become_void
|
||||||
|
void_active = become_void
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if void_active and not State.reduce_motion:
|
||||||
|
noise_position += delta * 10
|
||||||
|
|
||||||
|
var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position))
|
||||||
|
|
||||||
|
random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5
|
||||||
|
|
||||||
|
position = initial_position - random_position
|
||||||
|
|
||||||
|
rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01
|
||||||
|
|
||||||
|
particles.position = random_position
|
||||||
|
|
||||||
|
else: position = initial_position
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_v70nd"]
|
||||||
|
interpolation_mode = 2
|
||||||
|
offsets = PackedFloat32Array(0, 0.0529197, 0.191606, 1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0.491329, 1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xxq8p"]
|
||||||
|
gradient = SubResource("Gradient_v70nd")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_q6cmf"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 3.16529, 0, 0, Vector2(0.241056, 0.191336), 0.132446, 0.132446, 0, 0, Vector2(1, 1), 3.94797, 0.0, 0, 0]
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_cg0w1"]
|
||||||
|
curve = SubResource("Curve_q6cmf")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_by44l"]
|
||||||
|
emission_shape = 6
|
||||||
|
emission_ring_axis = Vector3(0, 0, 1)
|
||||||
|
emission_ring_height = 0.0
|
||||||
|
emission_ring_radius = 180.0
|
||||||
|
emission_ring_inner_radius = 185.0
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
spread = 180.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
initial_velocity_min = -10.0
|
||||||
|
initial_velocity_max = 10.0
|
||||||
|
angular_velocity_min = -150.0
|
||||||
|
angular_velocity_max = -150.0
|
||||||
|
orbit_velocity_min = 0.0
|
||||||
|
orbit_velocity_max = 0.0
|
||||||
|
radial_accel_min = -20.0
|
||||||
|
radial_accel_max = -5.0
|
||||||
|
tangential_accel_min = 20.0
|
||||||
|
tangential_accel_max = 30.0
|
||||||
|
scale_min = 1.5
|
||||||
|
scale_max = 3.0
|
||||||
|
scale_curve = SubResource("CurveTexture_cg0w1")
|
||||||
|
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
||||||
|
turbulence_noise_strength = 0.1
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_vjwk7"]
|
||||||
|
script/source = "extends GPUParticles2D
|
||||||
|
|
||||||
|
var is_void:bool = false
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
self.visible = !State.reduce_motion and is_void
|
||||||
|
"
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_tgc0b"]
|
||||||
|
script/source = "extends Sprite2D
|
||||||
|
|
||||||
|
var is_void:bool = false
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
self.visible = State.reduce_motion and is_void
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="card" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = -150.0
|
||||||
|
offset_top = -110.0
|
||||||
|
offset_right = 150.0
|
||||||
|
offset_bottom = 110.0
|
||||||
|
focus_mode = 2
|
||||||
|
script = ExtResource("1_6ceun")
|
||||||
|
|
||||||
|
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="."]
|
||||||
|
clip_children = 2
|
||||||
|
position = Vector2(150, 110)
|
||||||
|
scale = Vector2(0.6, 0.6)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_ckivt")
|
||||||
|
script = SubResource("GDScript_8bs16")
|
||||||
|
|
||||||
|
[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"]
|
||||||
|
amount = 500
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_by44l")
|
||||||
|
texture = ExtResource("3_8wu8j")
|
||||||
|
lifetime = 2.5
|
||||||
|
speed_scale = 1.3
|
||||||
|
explosiveness = 0.2
|
||||||
|
randomness = 0.14
|
||||||
|
script = SubResource("GDScript_vjwk7")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"]
|
||||||
|
visible = false
|
||||||
|
scale = Vector2(0.4, 0.4)
|
||||||
|
texture = ExtResource("4_jam8u")
|
||||||
|
script = SubResource("GDScript_tgc0b")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -127.0
|
||||||
|
offset_top = -82.5
|
||||||
|
offset_right = 127.0
|
||||||
|
offset_bottom = 82.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("3_mi4ah")
|
||||||
|
theme_type_variation = &"card_text"
|
||||||
|
autowrap_mode = 3
|
||||||
|
|
||||||
|
[node name="postit anchor" type="Control" parent="."]
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_left = 100.0
|
||||||
|
offset_top = 148.0
|
||||||
|
offset_right = 140.0
|
||||||
|
offset_bottom = 188.0
|
||||||
|
|
||||||
|
[connection signal="focus_entered" from="." to="." method="_on_focus_entered"]
|
||||||
|
[connection signal="focus_exited" from="." to="." method="_on_focus_exited"]
|
||||||
|
[connection signal="focus_entered" from="postit anchor" to="." method="_on_postit_anchor_focus_entered"]
|
||||||
|
|
@ -0,0 +1,118 @@
|
||||||
|
extends CenterContainer
|
||||||
|
|
||||||
|
enum {
|
||||||
|
INI,
|
||||||
|
CARDS,
|
||||||
|
TRANSITION,
|
||||||
|
POSTS,
|
||||||
|
DONE
|
||||||
|
}
|
||||||
|
|
||||||
|
@onready var debug_board:Control = $"board of devs"
|
||||||
|
|
||||||
|
var selection_state
|
||||||
|
|
||||||
|
var anim_players:Array
|
||||||
|
var curr_selection_id: int = -1:
|
||||||
|
set(new_id):
|
||||||
|
if selection_state == CARDS or selection_state == POSTS:
|
||||||
|
if not curr_selection_id == -1: anim_players[curr_selection_id].play("deselect")
|
||||||
|
|
||||||
|
if new_id > options.size() -1: curr_selection_id = 0
|
||||||
|
elif new_id < 0: curr_selection_id = options.size() - 1
|
||||||
|
else: curr_selection_id = new_id
|
||||||
|
|
||||||
|
anim_players[curr_selection_id].play("select")
|
||||||
|
else:
|
||||||
|
curr_selection_id = new_id
|
||||||
|
|
||||||
|
print(curr_selection_id)
|
||||||
|
|
||||||
|
var output:Array
|
||||||
|
var options:Array
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
var card_controls = $cards.get_children()
|
||||||
|
for control in card_controls:
|
||||||
|
options.append(control.get_child(1))
|
||||||
|
anim_players.append(control.get_child(0))
|
||||||
|
selection_state = CARDS
|
||||||
|
|
||||||
|
fill_card_slots()
|
||||||
|
|
||||||
|
func fill_card_slots():
|
||||||
|
for i in range($cards.get_child_count()):
|
||||||
|
var card:Card = $cards.get_child(i).get_child(1)
|
||||||
|
card.replace_with(debug_board.get_child(2).get_child(i) as Card)
|
||||||
|
|
||||||
|
func fill_post_slots():
|
||||||
|
var post_its: Array[PostIt] = []
|
||||||
|
for card in output:
|
||||||
|
post_its.append_array(card.own_postits)
|
||||||
|
print(card.own_postits)
|
||||||
|
|
||||||
|
for i in range(post_its.size()):
|
||||||
|
options[i].replace_with(post_its[i])
|
||||||
|
|
||||||
|
func _unhandled_input(event):
|
||||||
|
if event.is_action_pressed("ui_up") or event.is_action_pressed("ui_left") or event.is_action_pressed("ui_focus_next"):
|
||||||
|
curr_selection_id -= 1
|
||||||
|
elif event.is_action_pressed("ui_down") or event.is_action_pressed("ui_right") or event.is_action_pressed("ui_focus_prev"):
|
||||||
|
curr_selection_id += 1
|
||||||
|
if event.is_action_pressed("ui_accept"):
|
||||||
|
pick(curr_selection_id)
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func pick(id: int):
|
||||||
|
print("meep")
|
||||||
|
if id == -1:
|
||||||
|
curr_selection_id = 0
|
||||||
|
return
|
||||||
|
anim_players[id].play("pick")
|
||||||
|
var yield_to = anim_players[id].animation_finished
|
||||||
|
output.append(options[id])
|
||||||
|
|
||||||
|
var sibling_id = -1
|
||||||
|
if selection_state == POSTS:
|
||||||
|
|
||||||
|
sibling_id = options.find(options[id].sibling)
|
||||||
|
|
||||||
|
print("yeet sibling ", sibling_id)
|
||||||
|
|
||||||
|
options.remove_at(id)
|
||||||
|
anim_players.remove_at(id)
|
||||||
|
|
||||||
|
randomize()
|
||||||
|
var winning_id = randi() % options.size()
|
||||||
|
|
||||||
|
print("Winning ID ", id)
|
||||||
|
|
||||||
|
if winning_id == sibling_id:
|
||||||
|
winning_id = (winning_id + 1) % options.size()
|
||||||
|
|
||||||
|
output.append(options.pop_at(winning_id))
|
||||||
|
anim_players.pop_at(winning_id).play("shuffle")
|
||||||
|
|
||||||
|
for anim in anim_players:
|
||||||
|
anim.play("unshuffle")
|
||||||
|
|
||||||
|
await yield_to
|
||||||
|
|
||||||
|
if selection_state == CARDS:
|
||||||
|
selection_state = TRANSITION
|
||||||
|
options = []
|
||||||
|
anim_players = []
|
||||||
|
for control in $postIts.get_children():
|
||||||
|
options.append(control.get_child(1))
|
||||||
|
anim_players.append(control.get_child(0))
|
||||||
|
control.get_child(0).play("post")
|
||||||
|
curr_selection_id = -1
|
||||||
|
|
||||||
|
fill_post_slots()
|
||||||
|
|
||||||
|
await anim_players[0].animation_finished
|
||||||
|
selection_state = POSTS
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://cq2s8oa1ql28l"]
|
[gd_scene load_steps=10 format=3 uid="uid://gldtxysavetf"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://logic-scenes/startup/start_frame.png" id="1_8giso"]
|
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://logic-scenes/startup/start_frame.png" id="1_8giso"]
|
||||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="1_b01tw"]
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="1_b01tw"]
|
||||||
|
|
@ -11,45 +11,45 @@ script/source = "extends TabContainer
|
||||||
var focus_list: Array
|
var focus_list: Array
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
for child in get_children():
|
for child in get_children():
|
||||||
focus_list.append(_find_selectable_in(child))
|
focus_list.append(_find_selectable_in(child))
|
||||||
|
|
||||||
func _find_selectable_in(parent:Control):
|
func _find_selectable_in(parent:Control):
|
||||||
if parent.focus_mode != FOCUS_NONE:
|
if parent.focus_mode != FOCUS_NONE:
|
||||||
return parent
|
return parent
|
||||||
if parent.get_child_count() == 0:
|
if parent.get_child_count() == 0:
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
for child in parent.get_children():
|
for child in parent.get_children():
|
||||||
var ret = _find_selectable_in(child)
|
var ret = _find_selectable_in(child)
|
||||||
if not ret == self:
|
if not ret == self:
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _unhandled_input(event):
|
||||||
|
|
||||||
if event.is_action_type():
|
if event.is_action_type():
|
||||||
if event.is_action_pressed(\"ui_left\"): previous()
|
if event.is_action_pressed(\"ui_left\"): previous()
|
||||||
elif event.is_action_pressed(\"ui_right\"): next()
|
elif event.is_action_pressed(\"ui_right\"): next()
|
||||||
|
|
||||||
func next():
|
func next():
|
||||||
if current_tab < get_tab_count()-1:
|
if current_tab < get_tab_count()-1:
|
||||||
if !Input.is_action_just_released(\"mouse_left\"):
|
if !Input.is_action_just_released(\"mouse_left\"):
|
||||||
if not get_viewport().gui_get_focus_owner() == null:
|
if not get_viewport().gui_get_focus_owner() == null:
|
||||||
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
||||||
current_tab += 1
|
current_tab += 1
|
||||||
focus_list[current_tab].grab_focus()
|
focus_list[current_tab].grab_focus()
|
||||||
else:
|
else:
|
||||||
current_tab += 1
|
current_tab += 1
|
||||||
|
|
||||||
func previous():
|
func previous():
|
||||||
if current_tab > 0:
|
if current_tab > 0:
|
||||||
if !Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
if !Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
||||||
if not get_viewport().gui_get_focus_owner() == null:
|
if not get_viewport().gui_get_focus_owner() == null:
|
||||||
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
focus_list[current_tab] = get_viewport().gui_get_focus_owner()
|
||||||
current_tab -= 1
|
current_tab -= 1
|
||||||
focus_list[current_tab].grab_focus()
|
focus_list[current_tab].grab_focus()
|
||||||
else:
|
else:
|
||||||
current_tab -= 1
|
current_tab -= 1
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_v567h"]
|
[sub_resource type="GDScript" id="GDScript_v567h"]
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -24,10 +24,13 @@ State="*res://singletons/global_state.gd"
|
||||||
|
|
||||||
window/size/viewport_width=1440
|
window/size/viewport_width=1440
|
||||||
window/size/viewport_height=1080
|
window/size/viewport_height=1080
|
||||||
window/size/mode=3
|
|
||||||
window/stretch/mode="canvas_items"
|
window/stretch/mode="canvas_items"
|
||||||
window/stretch/aspect="expand"
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
|
||||||
|
theme/custom="res://logic-scenes/themes/messy.theme"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
player_right={
|
player_right={
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue