forked from team-sg/hero-mark-2
can't have shit in Virginia
This commit is contained in:
parent
4e92501432
commit
d318add375
10 changed files with 319 additions and 11 deletions
|
@ -59,14 +59,6 @@ shard_titles = [ "Bone Climb", "Soul Graze", "Bow Happy Hellarcher", "Look out f
|
|||
save_id = "graveyard"
|
||||
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]
|
||||
resource_name = "Police Station"
|
||||
script = ExtResource( 5 )
|
||||
|
@ -75,6 +67,14 @@ shard_titles = [ "All Cops Are Bastards", "Save Ms.X", "Treacherous Climb", "Dod
|
|||
save_id = "station"
|
||||
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"]
|
||||
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 ) ]
|
||||
|
|
BIN
graphics/level_select/small_sg.png
Normal file
BIN
graphics/level_select/small_sg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 674 B |
35
graphics/level_select/small_sg.png.import
Normal file
35
graphics/level_select/small_sg.png.import
Normal 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
|
BIN
graphics/level_select/world_map.png
Normal file
BIN
graphics/level_select/world_map.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
35
graphics/level_select/world_map.png.import
Normal file
35
graphics/level_select/world_map.png.import
Normal 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
|
BIN
graphics/level_select/world_map.xcf
Normal file
BIN
graphics/level_select/world_map.xcf
Normal file
Binary file not shown.
90
menus/level_select_scholar.gd
Normal file
90
menus/level_select_scholar.gd
Normal 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)
|
147
menus/level_select_scholar.tscn
Normal file
147
menus/level_select_scholar.tscn
Normal 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 )
|
|
@ -40,7 +40,8 @@ func _on_Settings_pressed():
|
|||
|
||||
func _on_ExitLevel_pressed():
|
||||
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()
|
||||
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ _global_script_class_icons={
|
|||
[application]
|
||||
|
||||
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/custom_user_dir_name="heromark2"
|
||||
config/icon="res://icon.png"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue