Basic ending
This commit is contained in:
BIN
Animations/Alegreya-Regular.ttf
Normal file
BIN
Animations/Alegreya-Regular.ttf
Normal file
Binary file not shown.
33
Animations/Alegreya-Regular.ttf.import
Normal file
33
Animations/Alegreya-Regular.ttf.import
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bu2j6b01rdsf6"
|
||||||
|
path="res://.godot/imported/Alegreya-Regular.ttf-2cd913ccea05a4852bcc67731f6ca49e.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Animations/Alegreya-Regular.ttf"
|
||||||
|
dest_files=["res://.godot/imported/Alegreya-Regular.ttf-2cd913ccea05a4852bcc67731f6ca49e.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=1
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Animations/GameEnding.res
Normal file
BIN
Animations/GameEnding.res
Normal file
Binary file not shown.
BIN
Audio/BGM/An-Imitation-of-Heaven.ogg
Normal file
BIN
Audio/BGM/An-Imitation-of-Heaven.ogg
Normal file
Binary file not shown.
19
Audio/BGM/An-Imitation-of-Heaven.ogg.import
Normal file
19
Audio/BGM/An-Imitation-of-Heaven.ogg.import
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://i80n0wsjidwy"
|
||||||
|
path="res://.godot/imported/An-Imitation-of-Heaven.ogg-12654ddfdf5a8cd77d3da6d43ce88131.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Audio/BGM/An-Imitation-of-Heaven.ogg"
|
||||||
|
dest_files=["res://.godot/imported/An-Imitation-of-Heaven.ogg-12654ddfdf5a8cd77d3da6d43ce88131.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
Audio/BGM/GameEnding.ogg
Normal file
BIN
Audio/BGM/GameEnding.ogg
Normal file
Binary file not shown.
19
Audio/BGM/GameEnding.ogg.import
Normal file
19
Audio/BGM/GameEnding.ogg.import
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://bjr3v62ssdsg8"
|
||||||
|
path="res://.godot/imported/GameEnding.ogg-2b922cb2ed68cfb8198d59aa5e820136.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Audio/BGM/GameEnding.ogg"
|
||||||
|
dest_files=["res://.godot/imported/GameEnding.ogg-2b922cb2ed68cfb8198d59aa5e820136.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://brbshysbgd47q"]
|
[gd_scene load_steps=18 format=3 uid="uid://brbshysbgd47q"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Enemies/Scripts/GodCircuit.cs" id="1_gyfww"]
|
[ext_resource type="Script" path="res://Enemies/Scripts/GodCircuit.cs" id="1_gyfww"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b41ur7kyd8vdl" path="res://Levels/Models/Stage10/god circuit stage 1_image.png" id="2_2fhjk"]
|
[ext_resource type="Texture2D" uid="uid://b41ur7kyd8vdl" path="res://Levels/Models/Stage10/god circuit stage 1_image.png" id="2_2fhjk"]
|
||||||
[ext_resource type="Shader" path="res://Levels/Scenes/Door.gdshader" id="3_05w5o"]
|
[ext_resource type="Shader" path="res://Levels/Scenes/Door.gdshader" id="3_05w5o"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cat08h84wm5gm" path="res://Audio/SFX/ominous.wav" id="3_yengs"]
|
||||||
[ext_resource type="AudioStream" uid="uid://crto2nljfvqnm" path="res://Audio/SFX/midboss hurt.wav" id="4_kc3iq"]
|
[ext_resource type="AudioStream" uid="uid://crto2nljfvqnm" path="res://Audio/SFX/midboss hurt.wav" id="4_kc3iq"]
|
||||||
[ext_resource type="Script" path="res://Enemies/Attacks/GodCircuitAttacks/GodCircuitAttacks.cs" id="5_hp00m"]
|
[ext_resource type="Script" path="res://Enemies/Attacks/GodCircuitAttacks/GodCircuitAttacks.cs" id="5_hp00m"]
|
||||||
[ext_resource type="PackedScene" uid="uid://uwia12i7yykb" path="res://Enemies/Attacks/GodCircuitAttacks/LaserAttack.tscn" id="6_frlsw"]
|
[ext_resource type="PackedScene" uid="uid://uwia12i7yykb" path="res://Enemies/Attacks/GodCircuitAttacks/LaserAttack.tscn" id="6_frlsw"]
|
||||||
@@ -47,6 +48,18 @@ tracks/2/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"values": [true]
|
||||||
}
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("AudioStreamPlayer:stream")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ExtResource("4_kc3iq")]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_47f75"]
|
[sub_resource type="Animation" id="Animation_47f75"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
@@ -86,9 +99,98 @@ tracks/2/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true]
|
"values": [true]
|
||||||
}
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("AudioStreamPlayer:stream")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ExtResource("3_yengs")]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("StaticBody3D/god circuit stage 1/Cube2:transparency")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_qiplh"]
|
||||||
|
resource_name = "OnDeath"
|
||||||
|
length = 6.5
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("StaticBody3D/god circuit stage 1/Cube:layers")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [1, 0]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("StaticBody3D/god circuit stage 1/Cube2:layers")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 1]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("AudioStreamPlayer:playing")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath("AudioStreamPlayer:stream")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ExtResource("3_yengs")]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/path = NodePath("StaticBody3D/god circuit stage 1/Cube2:transparency")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PackedFloat32Array(0.1, 6.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 1.0]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_qiwcq"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_qiwcq"]
|
||||||
_data = {
|
_data = {
|
||||||
|
"OnDeath": SubResource("Animation_qiplh"),
|
||||||
"OnHit": SubResource("Animation_n85p2"),
|
"OnHit": SubResource("Animation_n85p2"),
|
||||||
"RESET": SubResource("Animation_47f75")
|
"RESET": SubResource("Animation_47f75")
|
||||||
}
|
}
|
||||||
@@ -136,10 +238,11 @@ shadow_mesh = SubResource("ArrayMesh_f3cka")
|
|||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("3_05w5o")
|
shader = ExtResource("3_05w5o")
|
||||||
|
|
||||||
[node name="God Circuit" type="Node3D" node_paths=PackedStringArray("_animationPlayer")]
|
[node name="God Circuit" type="Node3D" node_paths=PackedStringArray("_animationPlayer", "_attackTimer")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.877012, 0.480468, 0, -0.480468, 0.877012, 0, 1.29734, 0)
|
transform = Transform3D(1, 0, 0, 0, 0.877012, 0.480468, 0, -0.480468, 0.877012, 0, 1.29734, 0)
|
||||||
script = ExtResource("1_gyfww")
|
script = ExtResource("1_gyfww")
|
||||||
_animationPlayer = NodePath("AnimationPlayer")
|
_animationPlayer = NodePath("AnimationPlayer")
|
||||||
|
_attackTimer = NodePath("StaticBody3D/Timer")
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
libraries = {
|
libraries = {
|
||||||
@@ -183,7 +286,7 @@ mesh = SubResource("ArrayMesh_vv6dc")
|
|||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("4_kc3iq")
|
stream = ExtResource("3_yengs")
|
||||||
|
|
||||||
[connection signal="body_entered" from="StaticBody3D" to="." method="OnHit"]
|
[connection signal="body_entered" from="StaticBody3D" to="." method="OnHit"]
|
||||||
[connection signal="timeout" from="StaticBody3D/Timer" to="StaticBody3D/Timer" method="OnTimeout"]
|
[connection signal="timeout" from="StaticBody3D/Timer" to="StaticBody3D/Timer" method="OnTimeout"]
|
||||||
|
|||||||
@@ -1192,7 +1192,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0840461, 0.475385, 0.143401
|
|||||||
shape = SubResource("BoxShape3D_1nq5h")
|
shape = SubResource("BoxShape3D_1nq5h")
|
||||||
|
|
||||||
[node name="MeleeEnemy" type="Node3D" parent="CollisionShape3D"]
|
[node name="MeleeEnemy" type="Node3D" parent="CollisionShape3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0840461, -0.612543, -0.143401)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0840461, -0.0397255, -0.143401)
|
||||||
|
|
||||||
[node name="Icosphere001" type="MeshInstance3D" parent="CollisionShape3D/MeleeEnemy"]
|
[node name="Icosphere001" type="MeshInstance3D" parent="CollisionShape3D/MeleeEnemy"]
|
||||||
transform = Transform3D(0.850843, 0, 0, 0, 0.850843, 0, 0, 0, 0.850843, 0.0805536, 0.468312, 0.158035)
|
transform = Transform3D(0.850843, 0, 0, 0, 0.850843, 0, 0, 0, 0.850843, 0.0805536, 0.468312, 0.158035)
|
||||||
|
|||||||
@@ -4,10 +4,18 @@ public partial class GodCircuit : Node3D
|
|||||||
{
|
{
|
||||||
[Export]
|
[Export]
|
||||||
private AnimationPlayer _animationPlayer;
|
private AnimationPlayer _animationPlayer;
|
||||||
|
[Export]
|
||||||
|
private Timer _attackTimer;
|
||||||
|
|
||||||
[Signal]
|
[Signal]
|
||||||
public delegate void OnEnemyBossHitEventHandler(long damage);
|
public delegate void OnEnemyBossHitEventHandler(long damage);
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void OnGameEndingEventHandler();
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void DestroyRemainingOrbsEventHandler();
|
||||||
|
|
||||||
private void OnHit(Node3D node)
|
private void OnHit(Node3D node)
|
||||||
{
|
{
|
||||||
if (node is Character character && character.HasMethod(Character.MethodName.OnHit))
|
if (node is Character character && character.HasMethod(Character.MethodName.OnHit))
|
||||||
@@ -16,15 +24,23 @@ public partial class GodCircuit : Node3D
|
|||||||
character.Call(Character.MethodName.OnHit, node);
|
character.Call(Character.MethodName.OnHit, node);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
var hpComponent = GetNode<HealthPoints>("HP Component");
|
||||||
|
if (hpComponent.CurrentHP > 0)
|
||||||
{
|
{
|
||||||
GD.Print("Hit");
|
GD.Print("Hit");
|
||||||
_animationPlayer.Play("OnHit");
|
_animationPlayer.Play("OnHit");
|
||||||
var hpComponent = GetNode<HealthPoints>("HP Component");
|
|
||||||
hpComponent.TakeDamage(800000);
|
hpComponent.TakeDamage(800000);
|
||||||
EmitSignal(SignalName.OnEnemyBossHit, hpComponent.CurrentHP);
|
EmitSignal(SignalName.OnEnemyBossHit, hpComponent.CurrentHP);
|
||||||
|
|
||||||
if (hpComponent.CurrentHP <= 0)
|
if (hpComponent.CurrentHP <= 0)
|
||||||
QueueFree();
|
{
|
||||||
|
_attackTimer.Stop();
|
||||||
|
EmitSignal(SignalName.DestroyRemainingOrbs);
|
||||||
|
_animationPlayer.Play("OnDeath");
|
||||||
|
_animationPlayer.AnimationFinished += OnGameFinished;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,4 +54,10 @@ public partial class GodCircuit : Node3D
|
|||||||
if (hpComponent.CurrentHP <= 0)
|
if (hpComponent.CurrentHP <= 0)
|
||||||
hpComponent.CurrentHP = 1;
|
hpComponent.CurrentHP = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnGameFinished(StringName animationName)
|
||||||
|
{
|
||||||
|
QueueFree();
|
||||||
|
EmitSignal(SignalName.OnGameEnding);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,23 +17,6 @@
|
|||||||
script = ExtResource("1_ya2kt")
|
script = ExtResource("1_ya2kt")
|
||||||
PlayerScenes = Array[PackedScene]([ExtResource("4_3fl70"), ExtResource("3_y1wkr")])
|
PlayerScenes = Array[PackedScene]([ExtResource("4_3fl70"), ExtResource("3_y1wkr")])
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, -0.504317, 0.863519, 0, -0.863519, -0.504317, 0, 19.9508, 0)
|
|
||||||
visible = false
|
|
||||||
shadow_enabled = true
|
|
||||||
shadow_bias = 0.0
|
|
||||||
shadow_normal_bias = 0.0
|
|
||||||
directional_shadow_mode = 0
|
|
||||||
sky_mode = 1
|
|
||||||
|
|
||||||
[node name="DirectionalLight3D2" type="DirectionalLight3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.993572, 0.113203, 0, -0.113203, 0.993572, 0, 6.22805, 0)
|
|
||||||
shadow_enabled = true
|
|
||||||
shadow_bias = 0.0
|
|
||||||
shadow_normal_bias = 0.0
|
|
||||||
directional_shadow_mode = 0
|
|
||||||
sky_mode = 1
|
|
||||||
|
|
||||||
[node name="StageGUI" type="Control" parent="."]
|
[node name="StageGUI" type="Control" parent="."]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public partial class Main : Node
|
|||||||
|
|
||||||
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
||||||
bgmPlayer.ProcessMode = ProcessModeEnum.Always;
|
bgmPlayer.ProcessMode = ProcessModeEnum.Always;
|
||||||
bgmPlayer.SetBGMFromFilepath("Audio/BGM/LevelTheme.ogg");
|
bgmPlayer.SetBGMFromFilepath("Audio/BGM/An-Imitation-of-Heaven.ogg");
|
||||||
bgmPlayer.PlayBGM();
|
bgmPlayer.PlayBGM();
|
||||||
|
|
||||||
var animationNode = GetNode<AnimationPlayer>("SceneTransition/AnimationPlayer");
|
var animationNode = GetNode<AnimationPlayer>("SceneTransition/AnimationPlayer");
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ font_color = Color(0, 1, 0, 1)
|
|||||||
|
|
||||||
[node name="Main" type="Node3D" node_paths=PackedStringArray("_fpsCounter")]
|
[node name="Main" type="Node3D" node_paths=PackedStringArray("_fpsCounter")]
|
||||||
script = ExtResource("1_g4hua")
|
script = ExtResource("1_g4hua")
|
||||||
Levels = Array[PackedScene]([ExtResource("11_o275c"), ExtResource("6_xmedq"), ExtResource("2_jq3qe"), ExtResource("3_nhrqr"), ExtResource("5_xj47l"), ExtResource("2_0yhby"), ExtResource("7_58n7x"), ExtResource("8_pcp3p"), ExtResource("9_n1hja"), ExtResource("10_rs7ve")])
|
Levels = Array[PackedScene]([ExtResource("2_jq3qe"), ExtResource("3_nhrqr"), ExtResource("5_xj47l"), ExtResource("2_0yhby"), ExtResource("7_58n7x"), ExtResource("8_pcp3p"), ExtResource("6_xmedq"), ExtResource("9_n1hja"), ExtResource("10_rs7ve"), ExtResource("11_o275c")])
|
||||||
GameManager = ExtResource("11_wiyvp")
|
GameManager = ExtResource("11_wiyvp")
|
||||||
_fpsCounter = NodePath("FPS Counter")
|
_fpsCounter = NodePath("FPS Counter")
|
||||||
|
|
||||||
@@ -54,3 +54,8 @@ transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, -0.527878,
|
|||||||
projection = 1
|
projection = 1
|
||||||
current = true
|
current = true
|
||||||
size = 10.8546
|
size = 10.8546
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 19.1134, 0)
|
||||||
|
light_energy = 0.0
|
||||||
|
light_indirect_energy = 0.0
|
||||||
|
|||||||
@@ -25,4 +25,9 @@ public partial class BossOrbs : RigidBody3D
|
|||||||
QueueFree();
|
QueueFree();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DestroySelf()
|
||||||
|
{
|
||||||
|
QueueFree();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
Levels/Scenes/GameEnding.cs
Normal file
15
Levels/Scenes/GameEnding.cs
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
public partial class GameEnding : Node3D
|
||||||
|
{
|
||||||
|
public void OnGameEnding()
|
||||||
|
{
|
||||||
|
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
||||||
|
bgmPlayer.ProcessMode = ProcessModeEnum.Always;
|
||||||
|
bgmPlayer.SetBGMFromFilepath("Audio/BGM/GameEnding.ogg");
|
||||||
|
bgmPlayer.PlayBGM();
|
||||||
|
|
||||||
|
var animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
|
||||||
|
animationPlayer.Play("GameEnding");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=21 format=3 uid="uid://0hdnmilwrsq6"]
|
[gd_scene load_steps=27 format=3 uid="uid://0hdnmilwrsq6"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Levels/Scripts/FinalLevel.cs" id="1_sy7dk"]
|
[ext_resource type="Script" path="res://Levels/Scripts/FinalLevel.cs" id="1_sy7dk"]
|
||||||
[ext_resource type="Script" path="res://Enemies/HealthbarProgress.cs" id="2_53ar2"]
|
[ext_resource type="Script" path="res://Enemies/HealthbarProgress.cs" id="2_53ar2"]
|
||||||
@@ -11,6 +11,9 @@
|
|||||||
[ext_resource type="Script" path="res://Levels/Scenes/BossOrbs.cs" id="8_7itwt"]
|
[ext_resource type="Script" path="res://Levels/Scenes/BossOrbs.cs" id="8_7itwt"]
|
||||||
[ext_resource type="Texture2D" uid="uid://uatt2w2jsoan" path="res://Textures/Projectiles/LB HEDRON.png" id="9_rv0g1"]
|
[ext_resource type="Texture2D" uid="uid://uatt2w2jsoan" path="res://Textures/Projectiles/LB HEDRON.png" id="9_rv0g1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cqbortt0hksns" path="res://Textures/Projectiles/LB PYRAMID.png" id="10_dusre"]
|
[ext_resource type="Texture2D" uid="uid://cqbortt0hksns" path="res://Textures/Projectiles/LB PYRAMID.png" id="10_dusre"]
|
||||||
|
[ext_resource type="Script" path="res://Levels/Scenes/GameEnding.cs" id="12_kefc8"]
|
||||||
|
[ext_resource type="Animation" uid="uid://bcprf755m753" path="res://Animations/GameEnding.res" id="13_plu01"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://bu2j6b01rdsf6" path="res://Animations/Alegreya-Regular.ttf" id="14_fcfkf"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_43mih"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_43mih"]
|
||||||
size = Vector3(5, 20, 27.822)
|
size = Vector3(5, 20, 27.822)
|
||||||
@@ -57,6 +60,18 @@ tracks/0/keys = {
|
|||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.0]
|
"values": [0.0]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("../GameEnding/ColorRect:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nvs18"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nvs18"]
|
||||||
_data = {
|
_data = {
|
||||||
@@ -64,9 +79,46 @@ _data = {
|
|||||||
"RESET": SubResource("Animation_wy7s8")
|
"RESET": SubResource("Animation_wy7s8")
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_3l1g5"]
|
[sub_resource type="Animation" id="Animation_iincs"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("ColorRect:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Label:modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_l1ojm"]
|
||||||
|
_data = {
|
||||||
|
"GameEnding": ExtResource("13_plu01"),
|
||||||
|
"RESET": SubResource("Animation_iincs")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_gphy5"]
|
||||||
|
font = ExtResource("14_fcfkf")
|
||||||
|
font_size = 125
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_los3u"]
|
||||||
height = 3.85738
|
height = 3.85738
|
||||||
radius = 0.511049
|
radius = 0.412024
|
||||||
|
|
||||||
[node name="Level10" type="Node3D" groups=["Level"]]
|
[node name="Level10" type="Node3D" groups=["Level"]]
|
||||||
process_mode = 3
|
process_mode = 3
|
||||||
@@ -142,15 +194,51 @@ libraries = {
|
|||||||
|
|
||||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Boss GUI"]
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Boss GUI"]
|
||||||
stream = ExtResource("7_gnuti")
|
stream = ExtResource("7_gnuti")
|
||||||
autoplay = true
|
|
||||||
|
[node name="GameEnding" type="Node3D" parent="."]
|
||||||
|
script = ExtResource("12_kefc8")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="GameEnding"]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_l1ojm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="GameEnding"]
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_right = -1.0
|
||||||
|
offset_bottom = 2.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="GameEnding"]
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -959.0
|
||||||
|
offset_top = -538.5
|
||||||
|
offset_right = 959.0
|
||||||
|
offset_bottom = 538.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
text = "The End"
|
||||||
|
label_settings = SubResource("LabelSettings_gphy5")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="Pivot" type="Node3D" parent="."]
|
[node name="Pivot" type="Node3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.260435, 0, -1.52945)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.260435, 0, -1.52945)
|
||||||
|
|
||||||
[node name="Pyramid" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
[node name="Pyramid" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.064761, 0.75105, -3.23007)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.064761, 0.75105, -2.67492)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 69
|
collision_mask = 68
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
continuous_cd = true
|
continuous_cd = true
|
||||||
max_contacts_reported = 10
|
max_contacts_reported = 10
|
||||||
@@ -162,21 +250,21 @@ _rotationSpeed = 0.1
|
|||||||
_hp = NodePath("HP Component")
|
_hp = NodePath("HP Component")
|
||||||
|
|
||||||
[node name="PyramidSprite" type="Sprite3D" parent="Pivot/Pyramid"]
|
[node name="PyramidSprite" type="Sprite3D" parent="Pivot/Pyramid"]
|
||||||
transform = Transform3D(0.12, 0, 0, 0, 0.12, 0, 0, 0, 0.12, 0, 0, 0)
|
transform = Transform3D(0.08, 0, 0, 0, 0.08, 0, 0, 0, 0.08, 0, 0, 0)
|
||||||
axis = 1
|
axis = 1
|
||||||
texture = ExtResource("10_dusre")
|
texture = ExtResource("10_dusre")
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Pivot/Pyramid"]
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Pivot/Pyramid"]
|
||||||
transform = Transform3D(1, 0, -2.98023e-08, 0, 1, 0, 2.98023e-08, 0, 1, 0.0513983, 0, 0)
|
transform = Transform3D(1, 0, -2.98023e-08, 0, 1, 0, 2.98023e-08, 0, 1, 0.0513983, 0, 0)
|
||||||
shape = SubResource("CylinderShape3D_3l1g5")
|
shape = SubResource("CylinderShape3D_los3u")
|
||||||
|
|
||||||
[node name="HP Component" parent="Pivot/Pyramid" instance=ExtResource("7_nvq88")]
|
[node name="HP Component" parent="Pivot/Pyramid" instance=ExtResource("7_nvq88")]
|
||||||
MaximumHP = 1
|
MaximumHP = 1
|
||||||
|
|
||||||
[node name="Orb" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
[node name="Orb" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.69215, 0.241416, 1.28096)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.75045, 0.241416, 1.28096)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 69
|
collision_mask = 68
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
continuous_cd = true
|
continuous_cd = true
|
||||||
max_contacts_reported = 10
|
max_contacts_reported = 10
|
||||||
@@ -188,11 +276,11 @@ _rotationSpeed = 0.1
|
|||||||
_hp = NodePath("HP Component")
|
_hp = NodePath("HP Component")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pivot/Orb"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pivot/Orb"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.459897, 0, 0.538185)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.473554, 0, 0.565499)
|
||||||
shape = SubResource("CylinderShape3D_3l1g5")
|
shape = SubResource("CylinderShape3D_los3u")
|
||||||
|
|
||||||
[node name="OrbSprite" type="Sprite3D" parent="Pivot/Orb"]
|
[node name="OrbSprite" type="Sprite3D" parent="Pivot/Orb"]
|
||||||
transform = Transform3D(0.12, 0, 0, 0, 0.12, 0, 0, 0, 0.12, -0.47522, 0, 0.577053)
|
transform = Transform3D(0.08, 0, 0, 0, 0.08, 0, 0, 0, 0.08, -0.47522, 0, 0.577053)
|
||||||
axis = 1
|
axis = 1
|
||||||
texture = ExtResource("8_2yfol")
|
texture = ExtResource("8_2yfol")
|
||||||
|
|
||||||
@@ -200,9 +288,9 @@ texture = ExtResource("8_2yfol")
|
|||||||
MaximumHP = 1
|
MaximumHP = 1
|
||||||
|
|
||||||
[node name="Hedron" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
[node name="Hedron" type="RigidBody3D" parent="Pivot" node_paths=PackedStringArray("_hp")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.29263, 0.704458, 1.45723)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.88775, 0.704458, 1.45723)
|
||||||
collision_layer = 0
|
collision_layer = 0
|
||||||
collision_mask = 69
|
collision_mask = 68
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
continuous_cd = true
|
continuous_cd = true
|
||||||
max_contacts_reported = 10
|
max_contacts_reported = 10
|
||||||
@@ -214,17 +302,22 @@ _rotationSpeed = 0.1
|
|||||||
_hp = NodePath("HP Component")
|
_hp = NodePath("HP Component")
|
||||||
|
|
||||||
[node name="HedronSprite" type="Sprite3D" parent="Pivot/Hedron"]
|
[node name="HedronSprite" type="Sprite3D" parent="Pivot/Hedron"]
|
||||||
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0, 0)
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
axis = 1
|
axis = 1
|
||||||
texture = ExtResource("9_rv0g1")
|
texture = ExtResource("9_rv0g1")
|
||||||
|
|
||||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Pivot/Hedron"]
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Pivot/Hedron"]
|
||||||
shape = SubResource("CylinderShape3D_3l1g5")
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0136576, 0, 0)
|
||||||
|
shape = SubResource("CylinderShape3D_los3u")
|
||||||
|
|
||||||
[node name="HP Component" parent="Pivot/Hedron" instance=ExtResource("7_nvq88")]
|
[node name="HP Component" parent="Pivot/Hedron" instance=ExtResource("7_nvq88")]
|
||||||
MaximumHP = 1
|
MaximumHP = 1
|
||||||
|
|
||||||
|
[connection signal="DestroyRemainingOrbs" from="God Circuit" to="Pivot/Pyramid" method="DestroySelf"]
|
||||||
|
[connection signal="DestroyRemainingOrbs" from="God Circuit" to="Pivot/Orb" method="DestroySelf"]
|
||||||
|
[connection signal="DestroyRemainingOrbs" from="God Circuit" to="Pivot/Hedron" method="DestroySelf"]
|
||||||
[connection signal="OnEnemyBossHit" from="God Circuit" to="Boss GUI/TextureProgressBar" method="UpdateBar"]
|
[connection signal="OnEnemyBossHit" from="God Circuit" to="Boss GUI/TextureProgressBar" method="UpdateBar"]
|
||||||
|
[connection signal="OnGameEnding" from="God Circuit" to="GameEnding" method="OnGameEnding"]
|
||||||
[connection signal="OnBossOrbExploded" from="Pivot/Pyramid" to="God Circuit" method="OnBossOrbDestroyed"]
|
[connection signal="OnBossOrbExploded" from="Pivot/Pyramid" to="God Circuit" method="OnBossOrbDestroyed"]
|
||||||
[connection signal="body_entered" from="Pivot/Pyramid" to="Pivot/Pyramid" method="OnOrbHit"]
|
[connection signal="body_entered" from="Pivot/Pyramid" to="Pivot/Pyramid" method="OnOrbHit"]
|
||||||
[connection signal="OnBossOrbExploded" from="Pivot/Orb" to="God Circuit" method="OnBossOrbDestroyed"]
|
[connection signal="OnBossOrbExploded" from="Pivot/Orb" to="God Circuit" method="OnBossOrbDestroyed"]
|
||||||
|
|||||||
BIN
Textures/Portraits/fish witch.png
Normal file
BIN
Textures/Portraits/fish witch.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
34
Textures/Portraits/fish witch.png.import
Normal file
34
Textures/Portraits/fish witch.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d5wrt7aijify"
|
||||||
|
path="res://.godot/imported/fish witch.png-df540b478adeef271e56a32007d61748.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Portraits/fish witch.png"
|
||||||
|
dest_files=["res://.godot/imported/fish witch.png-df540b478adeef271e56a32007d61748.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
|
||||||
34
Textures/Portraits/fish witch.png.jpeg.import
Normal file
34
Textures/Portraits/fish witch.png.jpeg.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cqk5al5nsu081"
|
||||||
|
path="res://.godot/imported/fish witch.png.jpeg-f61123392ccd7722cf39b287b98eee83.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Portraits/fish witch.png.jpeg"
|
||||||
|
dest_files=["res://.godot/imported/fish witch.png.jpeg-f61123392ccd7722cf39b287b98eee83.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
|
||||||
@@ -13,6 +13,8 @@ config_version=5
|
|||||||
config/name="GameJam2023"
|
config/name="GameJam2023"
|
||||||
run/main_scene="res://GameLogic/Main.tscn"
|
run/main_scene="res://GameLogic/Main.tscn"
|
||||||
config/features=PackedStringArray("4.1", "C#", "Forward Plus")
|
config/features=PackedStringArray("4.1", "C#", "Forward Plus")
|
||||||
|
boot_splash/show_image=false
|
||||||
|
config/icon="res://Textures/Portraits/fish witch.png"
|
||||||
run/physics_ticks_per_second=60
|
run/physics_ticks_per_second=60
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|||||||
Reference in New Issue
Block a user