can't have shit in Virginia

This commit is contained in:
Haze Weathers 2023-06-02 20:57:11 -04:00
parent 4e92501432
commit d318add375
10 changed files with 319 additions and 11 deletions

View file

@ -59,14 +59,6 @@ shard_titles = [ "Bone Climb", "Soul Graze", "Bow Happy Hellarcher", "Look out f
save_id = "graveyard" save_id = "graveyard"
scene = ExtResource( 11 ) scene = ExtResource( 11 )
[sub_resource type="Resource" id=7]
resource_name = "Rust Inc."
script = ExtResource( 5 )
title = "Rust Inc."
shard_titles = [ "Precarious Block", "Beside the button", "Saws and bullets", "Beyond the Steam", "5 Rainbow Stars", "Collection Bonus", "Time Bonus", "Life Bonus" ]
save_id = "rust"
scene = ExtResource( 9 )
[sub_resource type="Resource" id=8] [sub_resource type="Resource" id=8]
resource_name = "Police Station" resource_name = "Police Station"
script = ExtResource( 5 ) script = ExtResource( 5 )
@ -75,6 +67,14 @@ shard_titles = [ "All Cops Are Bastards", "Save Ms.X", "Treacherous Climb", "Dod
save_id = "station" save_id = "station"
scene = ExtResource( 10 ) scene = ExtResource( 10 )
[sub_resource type="Resource" id=7]
resource_name = "Rust Inc."
script = ExtResource( 5 )
title = "Rust Inc."
shard_titles = [ "Precarious Block", "Beside the button", "Saws and bullets", "Beyond the Steam", "5 Rainbow Stars", "Collection Bonus", "Time Bonus", "Life Bonus" ]
save_id = "rust"
scene = ExtResource( 9 )
[node name="LevelData" type="Node"] [node name="LevelData" type="Node"]
script = ExtResource( 1 ) script = ExtResource( 1 )
levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 6 ), SubResource( 3 ), SubResource( 9 ), SubResource( 7 ), SubResource( 8 ) ] levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 6 ), SubResource( 3 ), SubResource( 9 ), SubResource( 8 ), SubResource( 7 ) ]

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/small_sg.png-1e404b8f0979e895a2dcca9c5f498c3c.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/level_select/small_sg.png"
dest_files=[ "res://.import/small_sg.png-1e404b8f0979e895a2dcca9c5f498c3c.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/world_map.png-c7670ec033333050c2cad389b5ebb694.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/level_select/world_map.png"
dest_files=[ "res://.import/world_map.png-c7670ec033333050c2cad389b5ebb694.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

View file

@ -0,0 +1,90 @@
extends Node
export var travel_time: float = 1.0
var selected_level: int = 0
var tween: SceneTreeTween = null
var hop_tween: SceneTreeTween = null
onready var level_path: Path2D = $LevelPath
onready var player_position: PathFollow2D = $"%PlayerPosition"
onready var player_sprite: Sprite = $"%PlayerSprite"
onready var back_arrow: TextureRect = $"%BackArrow"
onready var level_title: Label = $"%LevelTitle"
onready var forward_arrow: TextureRect = $"%ForwardArrow"
onready var in_cave: PathFollow2D = $"%InCave"
onready var out_cave: PathFollow2D = $"%OutCave"
func _ready() -> void:
Fade.fade_in(0.4)
Audio.ac_music.stop()
# set initial offset
LevelData.levels[selected_level].save_id
var target_level = level_path.get_node(LevelData.levels[selected_level].save_id)
if target_level != null:
player_position.offset = target_level.offset
_select_level(selected_level)
func _input(event: InputEvent) -> void:
# load selected map
if Input.is_action_just_pressed("ui_accept"):
Game.current_level = selected_level
Game.change_map(LevelData.levels[selected_level].scene)
elif Input.is_action_just_pressed("ui_right"):
_select_level(int(clamp(selected_level + 1, 0, LevelData.levels.size() - 1)))
elif Input.is_action_just_pressed("ui_left"):
_select_level(int(clamp(selected_level - 1, 0, LevelData.levels.size() - 1)))
func _process(delta: float) -> void:
# make SG disappear inside of cave
if player_position.offset >= in_cave.offset and player_position.offset <= out_cave.offset:
player_sprite.visible = false
else:
player_sprite.visible = true
func _select_level(level_id: int) -> void:
var level = LevelData.levels[level_id]
selected_level = level_id
# hide arrows at edges of leve set
if level_id == 0:
back_arrow.modulate.a = 0.0
else:
back_arrow.modulate.a = 1.0
if level_id == LevelData.levels.size() - 1:
forward_arrow.modulate.a = 0.0
else:
forward_arrow.modulate.a = 1.0
# set text
level_title.text = level.title
# initiate animation
_travel_to_level(level.save_id)
func _travel_to_level(level_name: String) -> void:
# get path offset of target level
var target_level = level_path.get_node(level_name)
if target_level != null:
if target_level.offset < player_position.offset:
player_sprite.flip_h = true
else:
player_sprite.flip_h = false
# kill existing tweens if exist
if tween != null:
tween.kill()
if hop_tween != null:
hop_tween.kill()
player_sprite.position.y = -2.0
# hopping animation
hop_tween = create_tween().set_loops()
hop_tween.tween_property(player_sprite, "position:y", -4.0, 0.0)
hop_tween.tween_interval(0.1)
hop_tween.tween_property(player_sprite, "position:y", -2.0, 0.0)
hop_tween.tween_interval(0.1)
# travel animation
tween = create_tween()
# go to target offset
tween.tween_property(player_position, "offset", target_level.offset, travel_time)
# kill other animation
tween.tween_callback(hop_tween, "kill")
tween.tween_property(player_sprite, "position:y", -2.0, 0.0)

View file

@ -0,0 +1,147 @@
[gd_scene load_steps=11 format=2]
[ext_resource path="res://menus/level_select_scholar.gd" type="Script" id=1]
[ext_resource path="res://graphics/level_select/world_map.png" type="Texture" id=2]
[ext_resource path="res://graphics/level_select/small_sg.png" type="Texture" id=3]
[ext_resource path="res://ui/theme.tres" type="Theme" id=4]
[ext_resource path="res://graphics/hud/pause_arrow.png" type="Texture" id=5]
[ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=6]
[ext_resource path="res://shaders/wibble_wobble.gdshader" type="Shader" id=7]
[sub_resource type="Curve2D" id=1]
_data = {
"points": PoolVector2Array( -2.9375, -8.1875, 2.9375, 8.1875, 61, 140, -4.4375, -0.0625, 4.4375, 0.0625, 78, 149, -4.15425, 1.32583, 4.15425, -1.32583, 96, 148, -1.65424, 3.52941, 1.65424, -3.52941, 112, 142, -1.88775, 1.4748, 1.88775, -1.4748, 113, 134, 0, 0, 0, 0, 119, 134, -1.08543, 0.828444, 1.08543, -0.828444, 125, 134, 2.83044, 1.16526, -2.83044, -1.16526, 125, 128, -0.794597, 4.50272, 0.794597, -4.50272, 123, 106, -4.30959, 1.47157, 4.30959, -1.47157, 130, 93, -11.05, -1.311, 11.05, 1.311, 141, 96, -1.31102, 2.24746, 1.31102, -2.24746, 155, 99, -2.22725, 4.12041, 2.22725, -4.12041, 162, 84, -4.89994, 0, 4.89994, 0, 172, 75, 0, -4.73004, 0, 4.73004, 184, 88, 0, -4.51982, 0, 4.51982, 177, 100, -3.88915, 0.630672, 3.88915, -0.630672, 185, 107, -0.630672, -4.62493, 0.630672, 4.62493, 192, 118, 1.05112, -1.99713, -1.05112, 1.99713, 190, 128, 2.6278, -0.420448, -2.6278, 0.420448, 184, 132, 1.78381, -1.78381, -1.78381, 1.78381, 175, 132, -6.30672, -0.210224, 6.30672, 0.210224, 181, 137, 0.52556, 6.83228, -0.52556, -6.83228, 204, 130 )
}
[sub_resource type="ShaderMaterial" id=2]
shader = ExtResource( 7 )
shader_param/speed = Vector2( 4, 0 )
shader_param/ammount = Vector2( 2, 0 )
shader_param/offset = Vector2( 0, 0 )
shader_param/delay = Vector2( 0, 0 )
[sub_resource type="ShaderMaterial" id=3]
shader = ExtResource( 7 )
shader_param/speed = Vector2( 4, 0 )
shader_param/ammount = Vector2( 2, 0 )
shader_param/offset = Vector2( 0, 0 )
shader_param/delay = Vector2( 4, 0 )
[node name="LevelSelect" type="Node"]
script = ExtResource( 1 )
[node name="WorldMap" type="TextureRect" parent="."]
margin_right = 40.0
margin_bottom = 40.0
texture = ExtResource( 2 )
[node name="LevelPath" type="Path2D" parent="."]
curve = SubResource( 1 )
[node name="PlayerPosition" type="PathFollow2D" parent="LevelPath"]
unique_name_in_owner = true
position = Vector2( 61, 140 )
rotate = false
[node name="PlayerSprite" type="Sprite" parent="LevelPath/PlayerPosition"]
unique_name_in_owner = true
position = Vector2( 0, -2 )
texture = ExtResource( 3 )
[node name="hills" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 61, 140 )
rotation = 1.04814
[node name="canopy" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 89.5314, 148.93 )
rotation = -0.105869
offset = 32.0
[node name="mountain" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 111.481, 142.765 )
rotation = -1.37064
offset = 55.0
[node name="boss1" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 118.615, 133.912 )
rotation = 0.140896
offset = 69.0
[node name="cave" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 126.41, 129.495 )
rotation = -2.19952
offset = 80.0
[node name="InCave" type="PathFollow2D" parent="LevelPath"]
unique_name_in_owner = true
position = Vector2( 124.058, 126.26 )
rotation = -1.85459
offset = 84.0
[node name="OutCave" type="PathFollow2D" parent="LevelPath"]
unique_name_in_owner = true
position = Vector2( 139.8, 95.8421 )
rotation = 0.144373
offset = 130.0
[node name="abyss" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 154.261, 99.6526 )
rotation = -1.01682
offset = 145.0
[node name="graveyard" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 171.416, 75.085 )
rotation = 0.234945
offset = 176.0
[node name="station" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 181.076, 106.194 )
rotation = 0.297386
offset = 217.0
[node name="rust" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 177.983, 131.216 )
rotation = 2.36539
offset = 258.0
[node name="lab" type="PathFollow2D" parent="LevelPath"]
position = Vector2( 204, 130 )
offset = 300.0
[node name="CurrentLevel" type="HBoxContainer" parent="."]
anchor_right = 1.0
margin_bottom = 16.0
alignment = 1
[node name="BackArrow" type="TextureRect" parent="CurrentLevel"]
unique_name_in_owner = true
material = SubResource( 2 )
margin_left = 72.0
margin_top = 4.0
margin_right = 78.0
margin_bottom = 12.0
size_flags_vertical = 4
texture = ExtResource( 5 )
flip_h = true
[node name="LevelTitle" type="Label" parent="CurrentLevel"]
unique_name_in_owner = true
material = ExtResource( 6 )
margin_left = 82.0
margin_top = 3.0
margin_right = 173.0
margin_bottom = 13.0
theme = ExtResource( 4 )
text = "Verdant Hills"
align = 1
valign = 1
[node name="ForwardArrow" type="TextureRect" parent="CurrentLevel"]
unique_name_in_owner = true
material = SubResource( 3 )
margin_left = 177.0
margin_top = 4.0
margin_right = 183.0
margin_bottom = 12.0
size_flags_vertical = 4
texture = ExtResource( 5 )

View file

@ -40,7 +40,8 @@ func _on_Settings_pressed():
func _on_ExitLevel_pressed(): func _on_ExitLevel_pressed():
get_tree().paused = false get_tree().paused = false
Game.change_map(load("res://maps/level_select.tscn")) Game.change_map(load("res://menus/level_select_scholar.tscn"))
yield(Fade, "fade_finished")
queue_free() queue_free()

View file

@ -63,7 +63,7 @@ _global_script_class_icons={
[application] [application]
config/name="Robobong" config/name="Robobong"
run/main_scene="res://maps/level_select.tscn" run/main_scene="res://menus/level_select_scholar.tscn"
config/use_custom_user_dir=true config/use_custom_user_dir=true
config/custom_user_dir_name="heromark2" config/custom_user_dir_name="heromark2"
config/icon="res://icon.png" config/icon="res://icon.png"