Merge branch 'main' of clone.gloom.garden:puregarlic/ld58-collector
BIN
assets/background/full_bg_example.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
40
assets/background/full_bg_example.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dsfng5b065eyp"
|
||||||
|
path="res://.godot/imported/full_bg_example.png-23e9c1b2438a4cb21327fd2eaf815f60.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/background/full_bg_example.png"
|
||||||
|
dest_files=["res://.godot/imported/full_bg_example.png-23e9c1b2438a4cb21327fd2eaf815f60.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/cursor/cursor_closed.png
Normal file
|
After Width: | Height: | Size: 568 B |
40
assets/cursor/cursor_closed.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cmgvwq3ln4i3l"
|
||||||
|
path="res://.godot/imported/cursor_closed.png-3fe743bdc2c756b0e9a9f93044240563.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/cursor/cursor_closed.png"
|
||||||
|
dest_files=["res://.godot/imported/cursor_closed.png-3fe743bdc2c756b0e9a9f93044240563.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/cursor/cursor_open.png
Normal file
|
After Width: | Height: | Size: 713 B |
40
assets/cursor/cursor_open.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c756mdbly76s5"
|
||||||
|
path="res://.godot/imported/cursor_open.png-1ad5a8d3700c189c39f47dfeab1576b7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/cursor/cursor_open.png"
|
||||||
|
dest_files=["res://.godot/imported/cursor_open.png-1ad5a8d3700c189c39f47dfeab1576b7.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/game sfx/failed-round.wav
Normal file
24
assets/game sfx/failed-round.wav.import
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://db67ob7kkhsc0"
|
||||||
|
path="res://.godot/imported/failed-round.wav-11bf6cf03896386b908cad8ea4dbe98a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/game sfx/failed-round.wav"
|
||||||
|
dest_files=["res://.godot/imported/failed-round.wav-11bf6cf03896386b908cad8ea4dbe98a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
BIN
assets/game sfx/next-round.wav
Normal file
24
assets/game sfx/next-round.wav.import
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cicodo74wnevu"
|
||||||
|
path="res://.godot/imported/next-round.wav-624bc347adba86ecf8954a591facf09b.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/game sfx/next-round.wav"
|
||||||
|
dest_files=["res://.godot/imported/next-round.wav-624bc347adba86ecf8954a591facf09b.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
BIN
assets/menus/final score/loss.ogg
Normal file
19
assets/menus/final score/loss.ogg.import
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://cyl2wxt5nwot5"
|
||||||
|
path="res://.godot/imported/loss.ogg-47e5ca74e491f12870ff324c15af04c1.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/final score/loss.ogg"
|
||||||
|
dest_files=["res://.godot/imported/loss.ogg-47e5ca74e491f12870ff324c15af04c1.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
assets/menus/final score/morshu-anger-large.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
40
assets/menus/final score/morshu-anger-large.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d24dlalqmr6r0"
|
||||||
|
path="res://.godot/imported/morshu-anger-large.png-a42c6b2792682051956723f333dbba40.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/final score/morshu-anger-large.png"
|
||||||
|
dest_files=["res://.godot/imported/morshu-anger-large.png-a42c6b2792682051956723f333dbba40.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/menus/final score/morshu-happy-large.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
40
assets/menus/final score/morshu-happy-large.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cabsfveh1oc6i"
|
||||||
|
path="res://.godot/imported/morshu-happy-large.png-ca9678fe4ca200c5029c9feeb830e07d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/final score/morshu-happy-large.png"
|
||||||
|
dest_files=["res://.godot/imported/morshu-happy-large.png-ca9678fe4ca200c5029c9feeb830e07d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/menus/final score/win.ogg
Normal file
19
assets/menus/final score/win.ogg.import
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://bvauoea3ms47l"
|
||||||
|
path="res://.godot/imported/win.ogg-629872b052fcf2b1837befd90cc62630.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/final score/win.ogg"
|
||||||
|
dest_files=["res://.godot/imported/win.ogg-629872b052fcf2b1837befd90cc62630.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
assets/menus/main/main.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
40
assets/menus/main/main.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cyheahpjvgaec"
|
||||||
|
path="res://.godot/imported/main.png-1b49f043df990fcf9e842115f5c997b0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/main/main.png"
|
||||||
|
dest_files=["res://.godot/imported/main.png-1b49f043df990fcf9e842115f5c997b0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
assets/menus/main/mainmenu.ogg
Normal file
19
assets/menus/main/mainmenu.ogg.import
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://ntdnmk07dvjp"
|
||||||
|
path="res://.godot/imported/mainmenu.ogg-576e3b76c2c1c563c44d509923f90dec.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/main/mainmenu.ogg"
|
||||||
|
dest_files=["res://.godot/imported/mainmenu.ogg-576e3b76c2c1c563c44d509923f90dec.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
assets/menus/main/press-any.png
Normal file
|
After Width: | Height: | Size: 491 B |
40
assets/menus/main/press-any.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhpsbi6fwtdfd"
|
||||||
|
path="res://.godot/imported/press-any.png-80234bfe7df974c7971a6530c84775eb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/menus/main/press-any.png"
|
||||||
|
dest_files=["res://.godot/imported/press-any.png-80234bfe7df974c7971a6530c84775eb.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
10
cursor_manager.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var hover = load("res://assets/cursor/cursor_open.png")
|
||||||
|
var click = load("res://assets/cursor/cursor_closed.png")
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
Input.set_custom_mouse_cursor(hover)
|
||||||
|
|
||||||
|
# need to find the correct cursor mode for changing on click
|
||||||
|
Input.set_custom_mouse_cursor(click, Input.CURSOR_DRAG)
|
||||||
1
cursor_manager.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dds738kgqrpux
|
||||||
6
cursor_manager.tscn
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://6a4hl2twv0lj"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dds738kgqrpux" path="res://cursor_manager.gd" id="1_vunjj"]
|
||||||
|
|
||||||
|
[node name="CursorManager" type="Node"]
|
||||||
|
script = ExtResource("1_vunjj")
|
||||||
|
|
@ -87,6 +87,7 @@ func _handle_gavel_hit():
|
||||||
|
|
||||||
func destroy_painting():
|
func destroy_painting():
|
||||||
# Painting destruction animation/particle effect
|
# Painting destruction animation/particle effect
|
||||||
|
$FailedPainting.play()
|
||||||
current_painting += 1
|
current_painting += 1
|
||||||
DisplayServer.tts_speak("Oh nooooooo! Took too long!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch)
|
DisplayServer.tts_speak("Oh nooooooo! Took too long!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch)
|
||||||
DisplayServer.tts_speak("Try to make it up on the next painting!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch)
|
DisplayServer.tts_speak("Try to make it up on the next painting!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch)
|
||||||
|
|
@ -97,6 +98,7 @@ func sell_painting():
|
||||||
total_sales = total_sales + current_bid
|
total_sales = total_sales + current_bid
|
||||||
|
|
||||||
func next_painting(a: int):
|
func next_painting(a: int):
|
||||||
|
$NextPainting.play()
|
||||||
starting_price = paintings[a]
|
starting_price = paintings[a]
|
||||||
current_bid = 0
|
current_bid = 0
|
||||||
|
|
||||||
|
|
|
||||||
23
main.tscn
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=19 format=3 uid="uid://dt4nq0nkmjiit"]
|
[gd_scene load_steps=22 format=3 uid="uid://dt4nq0nkmjiit"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b5tcsve1oo5ht" path="res://game_manager.gd" id="1_ig7tw"]
|
[ext_resource type="Script" uid="uid://b5tcsve1oo5ht" path="res://game_manager.gd" id="1_ig7tw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cvqsf1nlfqwpr" path="res://assets/background/background.png" id="1_lquwl"]
|
[ext_resource type="Texture2D" uid="uid://cvqsf1nlfqwpr" path="res://assets/background/background.png" id="1_lquwl"]
|
||||||
|
|
@ -6,10 +6,13 @@
|
||||||
[ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="2_5vw27"]
|
[ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="2_5vw27"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cpj3xw8js3h3" path="res://assets/chairs/chairs_back.png" id="2_7mycd"]
|
[ext_resource type="Texture2D" uid="uid://cpj3xw8js3h3" path="res://assets/chairs/chairs_back.png" id="2_7mycd"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d03ot1f34pyhu" path="res://assets/chairs/chairs_front.png" id="3_272bh"]
|
[ext_resource type="Texture2D" uid="uid://d03ot1f34pyhu" path="res://assets/chairs/chairs_front.png" id="3_272bh"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://db67ob7kkhsc0" path="res://assets/game sfx/failed-round.wav" id="5_cegan"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cicodo74wnevu" path="res://assets/game sfx/next-round.wav" id="6_82xsv"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c1acpop6amvcl" path="res://audience_manager.tscn" id="6_272bh"]
|
[ext_resource type="PackedScene" uid="uid://c1acpop6amvcl" path="res://audience_manager.tscn" id="6_272bh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b8key4hjaldui" path="res://turn_manager.tscn" id="7_272bh"]
|
[ext_resource type="PackedScene" uid="uid://b8key4hjaldui" path="res://turn_manager.tscn" id="7_272bh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d2142cf22t1lv" path="res://assets/buttons/button1.png" id="9_2cqfq"]
|
[ext_resource type="Texture2D" uid="uid://d2142cf22t1lv" path="res://assets/buttons/button1.png" id="9_2cqfq"]
|
||||||
[ext_resource type="Script" uid="uid://bg1vk1o2eq3fg" path="res://bark_buttons.gd" id="9_yaehf"]
|
[ext_resource type="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="9_kek77"]
|
||||||
|
[ext_resource type="Script" path="res://bark_buttons.gd" id="9_yaehf"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ut655l8y8xmi" path="res://assets/buttons/button1pressed.png" id="10_yaehf"]
|
[ext_resource type="Texture2D" uid="uid://ut655l8y8xmi" path="res://assets/buttons/button1pressed.png" id="10_yaehf"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c0iad21xtnjdd" path="res://assets/buttons/button3.png" id="11_074og"]
|
[ext_resource type="Texture2D" uid="uid://c0iad21xtnjdd" path="res://assets/buttons/button3.png" id="11_074og"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dx4dadmb37khl" path="res://assets/buttons/button3pressed.png" id="12_cegan"]
|
[ext_resource type="Texture2D" uid="uid://dx4dadmb37khl" path="res://assets/buttons/button3pressed.png" id="12_cegan"]
|
||||||
|
|
@ -17,12 +20,13 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://dve6bedyuod2b" path="res://assets/buttons/button2pressed.png" id="14_getpj"]
|
[ext_resource type="Texture2D" uid="uid://dve6bedyuod2b" path="res://assets/buttons/button2pressed.png" id="14_getpj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://heqlxtsfl26k" path="res://assets/buttons/button4.png" id="15_ryguw"]
|
[ext_resource type="Texture2D" uid="uid://heqlxtsfl26k" path="res://assets/buttons/button4.png" id="15_ryguw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bnjj1gp2jx82x" path="res://assets/buttons/button4pressed.png" id="16_d13ii"]
|
[ext_resource type="Texture2D" uid="uid://bnjj1gp2jx82x" path="res://assets/buttons/button4pressed.png" id="16_d13ii"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://6a4hl2twv0lj" path="res://cursor_manager.tscn" id="20_82xsv"]
|
||||||
|
|
||||||
[sub_resource type="Theme" id="Theme_272bh"]
|
[sub_resource type="Theme" id="Theme_272bh"]
|
||||||
default_font = ExtResource("2_5vw27")
|
default_font = ExtResource("2_5vw27")
|
||||||
default_font_size = 12
|
default_font_size = 12
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Main" type="Node"]
|
||||||
|
|
||||||
[node name="Background" type="Sprite2D" parent="."]
|
[node name="Background" type="Sprite2D" parent="."]
|
||||||
position = Vector2(640, 360)
|
position = Vector2(640, 360)
|
||||||
|
|
@ -38,6 +42,9 @@ texture = ExtResource("2_7mycd")
|
||||||
position = Vector2(640, 360)
|
position = Vector2(640, 360)
|
||||||
texture = ExtResource("3_272bh")
|
texture = ExtResource("3_272bh")
|
||||||
|
|
||||||
|
[node name="Painting" parent="." instance=ExtResource("9_kek77")]
|
||||||
|
position = Vector2(1075, 130)
|
||||||
|
|
||||||
[node name="GameManager" type="Node2D" parent="." node_paths=PackedStringArray("audience_manager", "desk", "turn_manager", "current_bid_display")]
|
[node name="GameManager" type="Node2D" parent="." node_paths=PackedStringArray("audience_manager", "desk", "turn_manager", "current_bid_display")]
|
||||||
script = ExtResource("1_ig7tw")
|
script = ExtResource("1_ig7tw")
|
||||||
audience_manager = NodePath("../AudienceManager")
|
audience_manager = NodePath("../AudienceManager")
|
||||||
|
|
@ -48,6 +55,14 @@ current_bid_display = NodePath("../UI/RichTextLabel")
|
||||||
[node name="Timer" type="Timer" parent="GameManager"]
|
[node name="Timer" type="Timer" parent="GameManager"]
|
||||||
wait_time = 300.0
|
wait_time = 300.0
|
||||||
|
|
||||||
|
[node name="FailedPainting" type="AudioStreamPlayer" parent="GameManager"]
|
||||||
|
stream = ExtResource("5_cegan")
|
||||||
|
volume_db = -10.0
|
||||||
|
|
||||||
|
[node name="NextPainting" type="AudioStreamPlayer" parent="GameManager"]
|
||||||
|
stream = ExtResource("6_82xsv")
|
||||||
|
volume_db = -4.933
|
||||||
|
|
||||||
[node name="Desk" parent="." node_paths=PackedStringArray("game_manager", "turn_manager", "audience_manager") instance=ExtResource("2_0xm2m")]
|
[node name="Desk" parent="." node_paths=PackedStringArray("game_manager", "turn_manager", "audience_manager") instance=ExtResource("2_0xm2m")]
|
||||||
game_manager = NodePath("../GameManager")
|
game_manager = NodePath("../GameManager")
|
||||||
turn_manager = NodePath("../TurnManager")
|
turn_manager = NodePath("../TurnManager")
|
||||||
|
|
@ -119,6 +134,8 @@ texture_normal = ExtResource("15_ryguw")
|
||||||
texture_pressed = ExtResource("16_d13ii")
|
texture_pressed = ExtResource("16_d13ii")
|
||||||
texture_hover = ExtResource("16_d13ii")
|
texture_hover = ExtResource("16_d13ii")
|
||||||
|
|
||||||
|
[node name="CursorManager" parent="." instance=ExtResource("20_82xsv")]
|
||||||
|
|
||||||
[connection signal="button_down" from="BarkButtons/GreatBuy" to="BarkButtons" method="_on_great_buy_button_down"]
|
[connection signal="button_down" from="BarkButtons/GreatBuy" to="BarkButtons" method="_on_great_buy_button_down"]
|
||||||
[connection signal="button_down" from="BarkButtons/InvestmentPiece" to="BarkButtons" method="_on_investment_piece_button_down"]
|
[connection signal="button_down" from="BarkButtons/InvestmentPiece" to="BarkButtons" method="_on_investment_piece_button_down"]
|
||||||
[connection signal="button_down" from="BarkButtons/StunningMessage" to="BarkButtons" method="_on_stunning_message_button_down"]
|
[connection signal="button_down" from="BarkButtons/StunningMessage" to="BarkButtons" method="_on_stunning_message_button_down"]
|
||||||
|
|
|
||||||
57
main_menu.tscn
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://q1x5v4q6uxsj"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dsfng5b065eyp" path="res://assets/background/full_bg_example.png" id="1_06t4h"]
|
||||||
|
[ext_resource type="Theme" uid="uid://d2rlcffg7nguy" path="res://menus.tres" id="2_jix8l"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cyheahpjvgaec" path="res://assets/menus/main/main.png" id="3_glbon"]
|
||||||
|
|
||||||
|
[node name="Main Menu" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Background" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(640, 360)
|
||||||
|
texture = ExtResource("1_06t4h")
|
||||||
|
|
||||||
|
[node name="Vignette" type="ColorRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0.18431373, 0.09411765, 0.10980392, 0.7529412)
|
||||||
|
|
||||||
|
[node name="PressAnyKey" 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 = -173.0
|
||||||
|
offset_top = 229.0
|
||||||
|
offset_right = 173.0
|
||||||
|
offset_bottom = 252.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("2_jix8l")
|
||||||
|
text = "Press any key to start"
|
||||||
|
|
||||||
|
[node name="Title" type="TextureRect" 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 = -450.0
|
||||||
|
offset_top = -145.0
|
||||||
|
offset_right = 450.0
|
||||||
|
offset_bottom = 145.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("3_glbon")
|
||||||
6
menus.tres
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_resource type="Theme" load_steps=2 format=3 uid="uid://d2rlcffg7nguy"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="1_tgj2w"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
default_font = ExtResource("1_tgj2w")
|
||||||
|
|
@ -60,5 +60,7 @@ func keypad_submit():
|
||||||
_:
|
_:
|
||||||
error_audio_player.play()
|
error_audio_player.play()
|
||||||
|
|
||||||
|
# need to avoid starting the reminder timer before
|
||||||
|
# the auction starts
|
||||||
reminder_timer.start(-1)
|
reminder_timer.start(-1)
|
||||||
numpad_buffer.clear()
|
numpad_buffer.clear()
|
||||||
|
|
|
||||||
21
paintings/.clang-format
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
AlignAfterOpenBracket: DontAlign
|
||||||
|
AlignOperands: DontAlign
|
||||||
|
AlignTrailingComments:
|
||||||
|
# Kind: Never
|
||||||
|
# OverEmptyLines: 0
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
ColumnLimit: 0
|
||||||
|
ContinuationIndentWidth: 8
|
||||||
|
IndentCaseLabels: true
|
||||||
|
IndentWidth: 4
|
||||||
|
InsertBraces: true
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
RemoveSemicolon: true
|
||||||
|
SpacesInLineCommentPrefix:
|
||||||
|
# Minimum: 0 # We want a minimum of 1 for comments, but allow 0 for disabled code.
|
||||||
|
# Maximum: -1
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Always
|
||||||
67
paintings/fractal.gd
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
@tool
|
||||||
|
extends ColorRect
|
||||||
|
|
||||||
|
|
||||||
|
@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize
|
||||||
|
|
||||||
|
|
||||||
|
@export var smoothing := true:
|
||||||
|
set(x): material.set_shader_parameter('smoothing', x)
|
||||||
|
get(): return material.get_shader_parameter('smoothing')
|
||||||
|
|
||||||
|
@export var use_color_gradient := false:
|
||||||
|
set(x): material.set_shader_parameter('use_color_gradient', x)
|
||||||
|
get(): return material.get_shader_parameter('use_color_gradient')
|
||||||
|
|
||||||
|
@export var gradient_start := Color(.18, 0, .45):
|
||||||
|
set(x): material.set_shader_parameter('gradient_start', x)
|
||||||
|
get(): return material.get_shader_parameter('gradient_start')
|
||||||
|
|
||||||
|
@export var gradient_end := Color.YELLOW:
|
||||||
|
set(x): material.set_shader_parameter('gradient_end', x)
|
||||||
|
get(): return material.get_shader_parameter('gradient_end')
|
||||||
|
|
||||||
|
@export var gradient_accent := Color.YELLOW:
|
||||||
|
set(x): material.set_shader_parameter('gradient_accent', x)
|
||||||
|
get(): return material.get_shader_parameter('gradient_accent')
|
||||||
|
|
||||||
|
@export var fractal_scale := 0.5:
|
||||||
|
set(x): material.set_shader_parameter('scale', x)
|
||||||
|
get(): return material.get_shader_parameter('scale')
|
||||||
|
|
||||||
|
@export var fractal_seed := Vector2(-0.529, 0.136):
|
||||||
|
set(x): material.set_shader_parameter('seed', x)
|
||||||
|
get(): return material.get_shader_parameter('seed')
|
||||||
|
|
||||||
|
@export var fractal_power := 3:
|
||||||
|
set(x): material.set_shader_parameter('power', x)
|
||||||
|
get(): return material.get_shader_parameter('power')
|
||||||
|
|
||||||
|
@export var fractal_escape := 1.0:
|
||||||
|
set(x): material.set_shader_parameter('escape', x)
|
||||||
|
get(): return material.get_shader_parameter('escape')
|
||||||
|
|
||||||
|
|
||||||
|
func _on_resized() -> void:
|
||||||
|
material.set_shader_parameter('aspect_ratio', size.aspect())
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
_on_resized()
|
||||||
|
|
||||||
|
|
||||||
|
func randomize(rng_seed := randi()) -> void:
|
||||||
|
var rng := RandomNumberGenerator.new()
|
||||||
|
rng.seed = rng_seed
|
||||||
|
fractal_power = rng.randi_range(2, 5)
|
||||||
|
fractal_escape = rng.randi_range(1, 4)
|
||||||
|
#fractal_scale = randf_range(0.5, 0.5 * size.aspect()) - 0.1
|
||||||
|
match fractal_power:
|
||||||
|
5: fractal_seed = Vector2(rng.randf_range(-0.7, -0.6), rng.randf_range(-0.1, 0.1))
|
||||||
|
4: fractal_seed = Vector2(rng.randf_range(-1.2, -1), rng.randf_range(-0.2, 0.2))
|
||||||
|
3: fractal_seed = Vector2(rng.randf_range(0.45, 0.7), rng.randf_range(-0.7, 0.7))
|
||||||
|
2: match fractal_escape:
|
||||||
|
1.0: fractal_seed = Vector2(rng.randf_range(-0.9, -0.8), rng.randf_range(0, 0))
|
||||||
|
2.0: fractal_seed = Vector2(rng.randf_range(-1.8, -1.), rng.randf_range(0, 0))
|
||||||
|
_: fractal_seed = Vector2.RIGHT.rotated(randf_range(0, TAU)) * Vector2(0.6, 1)
|
||||||
|
_: fractal_seed = Vector2(rng.randf_range(-1, 1), rng.randf_range(-1, 1))
|
||||||
1
paintings/fractal.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://bnmc3t0wxeayv
|
||||||
148
paintings/fractal.gdshader
Normal file
|
|
@ -0,0 +1,148 @@
|
||||||
|
// Original code is MIT licensed by Cory Petkovsek
|
||||||
|
// https://github.com/TokisanGames/godot-fractal-art
|
||||||
|
|
||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform bool smoothing = true;
|
||||||
|
uniform bool use_color_gradient = false;
|
||||||
|
uniform vec4 gradient_start : source_color = vec4(0.18, 0., 0.45, 1.);
|
||||||
|
uniform vec4 gradient_end : source_color = vec4(1., 1., 0., 1.);
|
||||||
|
uniform vec4 gradient_accent : source_color = vec4(1., 1., 0., 1.);
|
||||||
|
uniform float accent_position = 0.65;
|
||||||
|
uniform float accent_width = 0.34;
|
||||||
|
uniform float red_frequency = 1.6615;
|
||||||
|
uniform float green_frequency = 1.246;
|
||||||
|
uniform float blue_frequency = 0.831;
|
||||||
|
uniform float red_phase = 6.3;
|
||||||
|
uniform float green_phase = 6.3;
|
||||||
|
uniform float blue_phase = 6.3;
|
||||||
|
|
||||||
|
uniform highp float scale = 0.5;
|
||||||
|
uniform highp vec2 position = vec2(0, 0);
|
||||||
|
uniform float aspect_ratio = 1.33333;
|
||||||
|
|
||||||
|
uniform highp vec2 seed = vec2(-0.794084, 0.136444);
|
||||||
|
uniform int power = 2;
|
||||||
|
uniform float iterations = 50.0;
|
||||||
|
uniform float escape = 4.0;
|
||||||
|
|
||||||
|
// Convert from rectangular to polar
|
||||||
|
highp vec2 c_pol(highp vec2 c) {
|
||||||
|
highp float radius = length(c);
|
||||||
|
highp float theta = atan(c.y, c.x);
|
||||||
|
return vec2(radius, theta);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert from rectangular to Polar
|
||||||
|
highp vec2 c_rec(highp vec2 c) {
|
||||||
|
highp float radius = abs(c.x);
|
||||||
|
highp float theta = c.y;
|
||||||
|
highp float a = radius * cos(theta);
|
||||||
|
highp float b = radius * sin(theta);
|
||||||
|
return vec2(a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate base ^ exponent
|
||||||
|
highp vec2 c_pow(highp vec2 base, highp float ex) {
|
||||||
|
highp vec2 b = c_pol(base);
|
||||||
|
return c_rec(vec2(pow(b.x, ex), b.y * ex));
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 alpha_blend(vec4 top, vec4 bot) {
|
||||||
|
return vec4(top.r * top.a + bot.r * bot.a * (1. - top.a),
|
||||||
|
top.g * top.a + bot.g * bot.a * (1. - top.a),
|
||||||
|
top.b * top.a + bot.b * bot.a * (1. - top.a),
|
||||||
|
1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 getColor(float i) {
|
||||||
|
if (use_color_gradient) {
|
||||||
|
// Create gradient
|
||||||
|
vec4 ramp = mix(gradient_start, gradient_end, i);
|
||||||
|
|
||||||
|
// gaussian formula ae^( -(x-b)^2 / 2c^2 )
|
||||||
|
// a = curve's peak = 1.0
|
||||||
|
// b = center of peak position
|
||||||
|
// c = standard deviation which controls width of bell
|
||||||
|
|
||||||
|
float gaussianx = exp(-((i - accent_position) * (i - accent_position)) / (2. * accent_width * accent_width));
|
||||||
|
vec4 accent = vec4(gradient_accent.r * gaussianx,
|
||||||
|
gradient_accent.g * gaussianx,
|
||||||
|
gradient_accent.b * gaussianx,
|
||||||
|
gaussianx);
|
||||||
|
|
||||||
|
return alpha_blend(accent, ramp);
|
||||||
|
} else {
|
||||||
|
/* Sin/Cos creates a smooth wave between 1 and -1, offset from each other.
|
||||||
|
* You can have 4 evenly distributed offsets from sin, cos, -sin, -cos
|
||||||
|
* (sin(x) +1) / 2 -> changes the wave to go between 0 and 1 with the same frequency, +2../4 will go from 0.5 and 1.0
|
||||||
|
* Calculate full cycles with: sin(cycles*6.5*i) or (sin(cycles*5.4*i)+1.0)/2.0 or (cos(cycles*3.8*i)+1.0)/2.0
|
||||||
|
*/
|
||||||
|
return vec4((sin(red_frequency * 6.5 * i + red_phase) + 1.0) / 2.0,
|
||||||
|
(sin(green_frequency * 6.5 * i + green_phase) + 1.0) / 2.0,
|
||||||
|
(sin(blue_frequency * 6.5 * i + blue_phase) + 1.0) / 2.0,
|
||||||
|
1.);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 random(vec2 uv) {
|
||||||
|
return vec2(fract(sin(dot(uv.xy,
|
||||||
|
vec2(12.9898,78.233))) * 43758.5453123));
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 voronoi(vec2 uv, float columns, float rows) {
|
||||||
|
vec2 index_uv = floor(vec2(uv.x * columns, uv.y * rows));
|
||||||
|
vec2 fract_uv = fract(vec2(uv.x * columns, uv.y * rows));
|
||||||
|
|
||||||
|
float minimum_dist = 1.0;
|
||||||
|
vec2 minimum_point;
|
||||||
|
|
||||||
|
for (int y= -1; y <= 1; y++) {
|
||||||
|
for (int x= -1; x <= 1; x++) {
|
||||||
|
vec2 neighbor = vec2(float(x),float(y));
|
||||||
|
vec2 point = random(index_uv + neighbor);
|
||||||
|
|
||||||
|
vec2 diff = neighbor + point - fract_uv;
|
||||||
|
float dist = length(diff);
|
||||||
|
|
||||||
|
if(dist < minimum_dist) {
|
||||||
|
minimum_dist = dist;
|
||||||
|
minimum_point = point;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return minimum_point;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
float i = 0.0;
|
||||||
|
|
||||||
|
highp vec2 c = seed;
|
||||||
|
|
||||||
|
highp vec2 z;
|
||||||
|
z.x = aspect_ratio * (UV.x - 0.5) / scale - position.x;
|
||||||
|
z.y = (UV.y - 0.5) / scale + position.y;
|
||||||
|
|
||||||
|
if (power == 2) {
|
||||||
|
while (i < iterations && length(z) <= escape) {
|
||||||
|
z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c; // 20fps
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
while (i < iterations && length(z) <= escape) {
|
||||||
|
z = c_pow(z, float(power)) + c; // 6-7fps
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i >= iterations) {
|
||||||
|
float r = voronoi(UV + seed, 10.0, 5.0).r;
|
||||||
|
COLOR = getColor(r);
|
||||||
|
} else {
|
||||||
|
if (smoothing && power > 1) {
|
||||||
|
i -= log(log(length(z))) / log(float(power));
|
||||||
|
}
|
||||||
|
COLOR = getColor(i / iterations);
|
||||||
|
}
|
||||||
|
}
|
||||||
1
paintings/fractal.gdshader.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b8yiyjkjgvful
|
||||||
41
paintings/fractal.tscn
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bx4upo2n66wke"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://b8yiyjkjgvful" path="res://paintings/fractal.gdshader" id="1_4re67"]
|
||||||
|
[ext_resource type="Script" uid="uid://bnmc3t0wxeayv" path="res://paintings/fractal.gd" id="2_o3htp"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_o3htp"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("1_4re67")
|
||||||
|
shader_parameter/smoothing = false
|
||||||
|
shader_parameter/use_color_gradient = false
|
||||||
|
shader_parameter/gradient_start = Color(0.18, 0, 0.45, 1)
|
||||||
|
shader_parameter/gradient_end = Color(1, 1, 0, 1)
|
||||||
|
shader_parameter/gradient_accent = Color(1, 1, 0, 1)
|
||||||
|
shader_parameter/accent_position = 0.65
|
||||||
|
shader_parameter/accent_width = 0.34
|
||||||
|
shader_parameter/red_frequency = 1.6615
|
||||||
|
shader_parameter/green_frequency = 1.246
|
||||||
|
shader_parameter/blue_frequency = 0.831
|
||||||
|
shader_parameter/red_phase = 6.3
|
||||||
|
shader_parameter/green_phase = 6.3
|
||||||
|
shader_parameter/blue_phase = 6.3
|
||||||
|
shader_parameter/scale = 0.5
|
||||||
|
shader_parameter/position = Vector2(0, 0)
|
||||||
|
shader_parameter/aspect_ratio = 1.3333334
|
||||||
|
shader_parameter/seed = Vector2(0.17868738, -0.9546245)
|
||||||
|
shader_parameter/power = 2
|
||||||
|
shader_parameter/iterations = 10.0
|
||||||
|
shader_parameter/escape = 3.0
|
||||||
|
|
||||||
|
[node name="Fractal" type="ColorRect"]
|
||||||
|
material = SubResource("ShaderMaterial_o3htp")
|
||||||
|
custom_minimum_size = Vector2(32, 24)
|
||||||
|
offset_right = 320.0
|
||||||
|
offset_bottom = 240.0
|
||||||
|
script = ExtResource("2_o3htp")
|
||||||
|
smoothing = false
|
||||||
|
fractal_seed = Vector2(0.17868738, -0.9546245)
|
||||||
|
fractal_power = 2
|
||||||
|
fractal_escape = 3.0
|
||||||
|
|
||||||
|
[connection signal="resized" from="." to="." method="_on_resized"]
|
||||||
BIN
paintings/frame.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
40
paintings/frame.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b142kv367vbw7"
|
||||||
|
path="res://.godot/imported/frame.png-e1682da613f441ce461363027e19aee4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://paintings/frame.png"
|
||||||
|
dest_files=["res://.godot/imported/frame.png-e1682da613f441ce461363027e19aee4.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
80
paintings/noise.gd
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
@tool
|
||||||
|
extends ColorRect
|
||||||
|
|
||||||
|
|
||||||
|
@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize
|
||||||
|
|
||||||
|
|
||||||
|
@export var noise: FastNoiseLite:
|
||||||
|
set(x):
|
||||||
|
if noise: noise.changed.disconnect(_changed_noise)
|
||||||
|
noise = x
|
||||||
|
if noise: noise.changed.connect(_changed_noise)
|
||||||
|
|
||||||
|
@export var steps := 12:
|
||||||
|
set(x): material.set_shader_parameter('steps', x)
|
||||||
|
get(): return material.get_shader_parameter('steps')
|
||||||
|
|
||||||
|
@export var gradient_start := Color(.18, 0, .45):
|
||||||
|
set(x): material.set_shader_parameter('gradient_start', x)
|
||||||
|
get(): return material.get_shader_parameter('gradient_start')
|
||||||
|
|
||||||
|
@export var gradient_end := Color.YELLOW:
|
||||||
|
set(x): material.set_shader_parameter('gradient_end', x)
|
||||||
|
get(): return material.get_shader_parameter('gradient_end')
|
||||||
|
|
||||||
|
@export var rng_seed := 0:
|
||||||
|
set(x):
|
||||||
|
rng_seed = x
|
||||||
|
_regenerate()
|
||||||
|
|
||||||
|
|
||||||
|
var _noise_texture := NoiseTexture2D.new():
|
||||||
|
set(x):
|
||||||
|
_noise_texture = x
|
||||||
|
_changed_noise()
|
||||||
|
|
||||||
|
|
||||||
|
func _changed_noise() -> void:
|
||||||
|
_noise_texture.noise = noise
|
||||||
|
material.set_shader_parameter('noise', _noise_texture)
|
||||||
|
|
||||||
|
|
||||||
|
func _resized() -> void:
|
||||||
|
_noise_texture.width = ceili(size.x)
|
||||||
|
_noise_texture.height = ceili(size.y)
|
||||||
|
_changed_noise()
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
_resized()
|
||||||
|
resized.connect(_resized)
|
||||||
|
|
||||||
|
|
||||||
|
func _regenerate() -> void:
|
||||||
|
var rng := RandomNumberGenerator.new()
|
||||||
|
rng.seed = rng_seed
|
||||||
|
noise.fractal_type = rng.randi_range(0, 3) as FastNoiseLite.FractalType
|
||||||
|
match noise.fractal_type:
|
||||||
|
3: noise.fractal_octaves = 2
|
||||||
|
2: noise.fractal_octaves = 3
|
||||||
|
_: noise.fractal_octaves = 5
|
||||||
|
noise.frequency = rng.randf_range(0.002, 0.004)
|
||||||
|
noise.seed = rng.seed
|
||||||
|
match rng.randi_range(1, 5):
|
||||||
|
1: steps = 2
|
||||||
|
2: steps = 5
|
||||||
|
3: steps = 12
|
||||||
|
4: steps = 24
|
||||||
|
5: steps = 128
|
||||||
|
var lighter := rng.randf_range(0.4, 0.8)
|
||||||
|
var darker := rng.randf_range(0.2, 0.6)
|
||||||
|
var color1 := Color.from_ok_hsl(rng.randf(), rng.randf() * 0.8 + 0.2, lighter)
|
||||||
|
var color2 := Color.from_ok_hsl(rng.randf(), rng.randf(), lighter - darker)
|
||||||
|
match rng.randi_range(1, 2):
|
||||||
|
1: gradient_start = color1; gradient_end = color2
|
||||||
|
_: gradient_start = color2; gradient_end = color1
|
||||||
|
|
||||||
|
|
||||||
|
func randomize() -> void:
|
||||||
|
rng_seed = randi()
|
||||||
1
paintings/noise.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://2jt34o1v7gbo
|
||||||
11
paintings/noise.gdshader
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform sampler2D noise;
|
||||||
|
uniform float steps = 8.0;
|
||||||
|
uniform vec4 gradient_start : source_color = vec4(0.18, 0., 0.45, 1.);
|
||||||
|
uniform vec4 gradient_end : source_color = vec4(1., 1., 0., 1.);
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
float r = round(texture(noise, UV).r * steps) / steps;
|
||||||
|
COLOR = mix(gradient_start, gradient_end, r);
|
||||||
|
}
|
||||||
1
paintings/noise.gdshader.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b6jkek1qotcnf
|
||||||
35
paintings/noise.tscn
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://bjpharjtpysre"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://b6jkek1qotcnf" path="res://paintings/noise.gdshader" id="1_2lnyf"]
|
||||||
|
[ext_resource type="Script" uid="uid://2jt34o1v7gbo" path="res://paintings/noise.gd" id="1_o4civ"]
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_o4civ"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
seed = 1
|
||||||
|
frequency = 0.0028707401
|
||||||
|
offset = Vector3(1460.7504, 943.2602, 0)
|
||||||
|
fractal_type = 2
|
||||||
|
fractal_octaves = 3
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_2lnyf"]
|
||||||
|
width = 320
|
||||||
|
height = 240
|
||||||
|
noise = SubResource("FastNoiseLite_o4civ")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0uljq"]
|
||||||
|
shader = ExtResource("1_2lnyf")
|
||||||
|
shader_parameter/noise = SubResource("NoiseTexture2D_2lnyf")
|
||||||
|
shader_parameter/steps = 8.0
|
||||||
|
shader_parameter/gradient_start = Color(0.56780183, 0.45513594, 0.630845, 1)
|
||||||
|
shader_parameter/gradient_end = Color(0.5222837, 0.45749915, 0.35617962, 1)
|
||||||
|
|
||||||
|
[node name="Noise" type="ColorRect"]
|
||||||
|
material = SubResource("ShaderMaterial_0uljq")
|
||||||
|
custom_minimum_size = Vector2(32, 24)
|
||||||
|
offset_right = 320.0
|
||||||
|
offset_bottom = 240.0
|
||||||
|
script = ExtResource("1_o4civ")
|
||||||
|
noise = SubResource("FastNoiseLite_o4civ")
|
||||||
|
steps = 8
|
||||||
|
gradient_start = Color(0.56780183, 0.45513594, 0.630845, 1)
|
||||||
|
gradient_end = Color(0.5222837, 0.45749915, 0.35617962, 1)
|
||||||
10
paintings/painting.gd
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
@tool
|
||||||
|
extends Node2D
|
||||||
|
class_name Painting
|
||||||
|
|
||||||
|
|
||||||
|
@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize
|
||||||
|
|
||||||
|
|
||||||
|
func randomize(rng_seed := randi()) -> void:
|
||||||
|
%Noise.rng_seed = rng_seed
|
||||||
1
paintings/painting.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://tqu2ms43fhis
|
||||||
49
paintings/painting.tscn
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://donkfeu1x888o"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b142kv367vbw7" path="res://paintings/frame.png" id="1_6chac"]
|
||||||
|
[ext_resource type="Script" uid="uid://tqu2ms43fhis" path="res://paintings/painting.gd" id="1_465no"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bjpharjtpysre" path="res://paintings/noise.tscn" id="2_oqt1c"]
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_465no"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
seed = 1262753571
|
||||||
|
frequency = 0.0024024888
|
||||||
|
offset = Vector3(1460.7504, 943.2602, 0)
|
||||||
|
fractal_type = 0
|
||||||
|
|
||||||
|
[node name="Painting" type="Node2D"]
|
||||||
|
texture_filter = 1
|
||||||
|
script = ExtResource("1_465no")
|
||||||
|
|
||||||
|
[node name="Frame" type="Sprite2D" parent="."]
|
||||||
|
texture = ExtResource("1_6chac")
|
||||||
|
|
||||||
|
[node name="SubViewportContainer" type="SubViewportContainer" parent="."]
|
||||||
|
offset_left = -146.0
|
||||||
|
offset_top = -91.0
|
||||||
|
offset_right = 146.0
|
||||||
|
offset_bottom = 91.0
|
||||||
|
stretch = true
|
||||||
|
stretch_shrink = 4
|
||||||
|
|
||||||
|
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
|
||||||
|
handle_input_locally = false
|
||||||
|
size = Vector2i(73, 45)
|
||||||
|
size_2d_override = Vector2i(480, 360)
|
||||||
|
size_2d_override_stretch = true
|
||||||
|
render_target_update_mode = 4
|
||||||
|
|
||||||
|
[node name="Noise" parent="SubViewportContainer/SubViewport" instance=ExtResource("2_oqt1c")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_right = 0.0
|
||||||
|
offset_bottom = 0.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
noise = SubResource("FastNoiseLite_465no")
|
||||||
|
steps = 5
|
||||||
|
gradient_start = Color(0.31606108, 0.20250309, 0.17190823, 1)
|
||||||
|
gradient_end = Color(0.48729545, 0.5426228, 0.2567169, 1)
|
||||||
|
rng_seed = 1262753571
|
||||||
49
score_screen.tscn
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bcnpjrwddi5h8"]
|
||||||
|
|
||||||
|
[ext_resource type="Theme" uid="uid://d2rlcffg7nguy" path="res://menus.tres" id="1_3r2db"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cabsfveh1oc6i" path="res://assets/menus/final score/morshu-happy-large.png" id="1_juxjb"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d24dlalqmr6r0" path="res://assets/menus/final score/morshu-anger-large.png" id="2_3r2db"]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Control" type="Control" parent="."]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
offset_right = 1280.0
|
||||||
|
offset_bottom = 720.0
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Control"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0.18431373, 0.09411765, 0.10980392, 1)
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="Control"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 4
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = 64.0
|
||||||
|
offset_top = -175.0
|
||||||
|
offset_right = 545.0
|
||||||
|
offset_bottom = 175.0
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("1_3r2db")
|
||||||
|
text = "placeholder"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="MorshoReactManager" type="Node2D" parent="."]
|
||||||
|
position = Vector2(870, 360)
|
||||||
|
rotation = 0.20420352
|
||||||
|
scale = Vector2(2.5, 2.5)
|
||||||
|
|
||||||
|
[node name="MorshoHappy" type="Sprite2D" parent="MorshoReactManager"]
|
||||||
|
texture = ExtResource("1_juxjb")
|
||||||
|
|
||||||
|
[node name="MorshoAngry" type="Sprite2D" parent="MorshoReactManager"]
|
||||||
|
visible = false
|
||||||
|
texture = ExtResource("2_3r2db")
|
||||||