From d7fab32f44668f1f856949ddf58c1e776b5ed96d Mon Sep 17 00:00:00 2001 From: Page Asgardius Date: Wed, 17 Apr 2024 11:33:27 -0700 Subject: [PATCH] First Level Test --- global.gd | 6 +- levels/Ceres/L20.gd | 31 +++++ levels/Ceres/L20.tscn | 60 +++++++++ levels/ui/ceres.gd | 52 ++++++++ levels/ui/ceres.tscn | 98 ++++++++++++++ levels/ui/debug.tscn | 21 +-- levels/ui/musictest.tscn | 2 +- levels/ui/scene.gd | 4 + levels/ui/scene.tscn | 9 +- levels/ui/sfxtest.tscn | 2 +- levels/ui/soundtest.tscn | 3 +- levels/ui/testrooms.tscn | 2 +- levels/ui/tmenu.tscn | 16 +-- sprites/common/kimberly/kimberly.gd | 75 +++++++++++ sprites/common/kimberly/kimberly.tscn | 185 ++++++++++++++++++++++++++ text.csv | 9 ++ 16 files changed, 549 insertions(+), 26 deletions(-) create mode 100644 levels/Ceres/L20.gd create mode 100644 levels/Ceres/L20.tscn create mode 100644 levels/ui/ceres.gd create mode 100644 levels/ui/ceres.tscn create mode 100644 sprites/common/kimberly/kimberly.gd create mode 100644 sprites/common/kimberly/kimberly.tscn diff --git a/global.gd b/global.gd index e38c609..219fbcb 100644 --- a/global.gd +++ b/global.gd @@ -8,15 +8,15 @@ var timelimit = 15000 var wait var bossready = false const pcnames = ["Midori Asgardius", "Diana Asgardius", null, "Kimberly Arch", null, null, null, null, null, "Natasha Dostoyevsky"] -const npcnames = ["Lily", null, null, null, null, null, null, null, null, "Natasha Dostoyevsky"] +const npcnames = ["Lily", null, null, "Kimberly Arch", null, null, null, null, null, "Natasha Dostoyevsky"] const pcfaces = [["res://sprites/common/midori/face.png"], ["res://sprites/common/tuna/face.png"], [null], ["res://sprites/common/kimberly/face.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/face.png"]] const hudfaces = [["res://sprites/common/midori/facehud.png"], ["res://sprites/common/tuna/facehud.png"], [null], ["res://sprites/common/kimberly/facehud.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/facehud.png"]] -const npcfaces = ["res://sprites/common/midori/face.png",null, null, null, null, null, null, null, null, "res://sprites/common/natasha/face.png"] +const npcfaces = ["res://sprites/common/midori/face.png",null, null, "res://sprites/common/kimberly/face.png", null, null, null, null, null, "res://sprites/common/natasha/face.png"] const basestats = [[100, 100, 2, 2, 100, 2, 500], [100, 100, 2, 2, 100, 2, 500], [null], [100, 100, 2, 2, 100, 2, 500], [null], [null], [null], [null], [null], [100, 100, 2, 2, 100, 2, 500]] var cstats = [[100, 100, null, null, 100, null, null], [100, 100, null, null, 100, null, null], [null], [100, 100, null, null, 100, null, null], [null], [null], [null], [null], [null], [100, 100, null, null, 100, null, null]] var dstats = [[100, 100, null, null, 100, null, null], [100, 100, null, null, 100, null, null], [null], [100, 100, null, null, 100, null, null], [null], [null], [null], [null], [null], [100, 100, null, null, 100, null, null]] var cdialog = [] -const places = [[[[null, null, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]]] +const places = [[[[null, null, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, null, null, null, null, null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]] var cplace = [0,2,1] var dplace = [null, null, null] const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/X11.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"] diff --git a/levels/Ceres/L20.gd b/levels/Ceres/L20.gd new file mode 100644 index 0000000..7e40e10 --- /dev/null +++ b/levels/Ceres/L20.gd @@ -0,0 +1,31 @@ +extends Node2D +var talk = load("res://levels/ui/talk.tscn").instantiate() +var boss +var player +# Called when the node enters the scene tree for the first time. +func _ready(): + boss = $Kimberly + player = $Player + boss.add_to_group("boss") + Global.cdialog = [[tr("DIALOG_CERES_L20_0"), true, 0, 0], [tr("DIALOG_CERES_L20_1"), false, 3], [tr("DIALOG_CERES_L20_2"), true, 0, 0]] + Global.live = 0 + get_tree().root.add_child.call(talk) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + +func _physics_process(delta): + if player.velocity.x >= 0 && player.velocity.y >= 0: + if player.position.y < boss.position.y && player.get_index() > boss.get_index(): + move_child(player, boss.get_index() - 1) + print("move up") + elif player.position.y > boss.position.y && player.get_index() < boss.get_index(): + move_child(player, boss.get_index() + 1) + print("move down") + +func _input(event): + if Global.cdialog.size() == 0: + get_tree().root.remove_child(talk) + diff --git a/levels/Ceres/L20.tscn b/levels/Ceres/L20.tscn new file mode 100644 index 0000000..b20e1a7 --- /dev/null +++ b/levels/Ceres/L20.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=7 format=3 uid="uid://c8hmum2w6aygy"] + +[ext_resource type="Script" path="res://levels/Ceres/L20.gd" id="1_cjbjq"] +[ext_resource type="Texture2D" uid="uid://dursxelwwxe8u" path="res://sprites/common/placeholder/player.png" id="1_g5hs8"] +[ext_resource type="PackedScene" uid="uid://wo77i5ql2esb" path="res://sprites/common/kimberly/kimberly.tscn" id="2_5cnwp"] +[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_slxde"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1jr1w"] +size = Vector2(20, 761) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_iptg6"] +size = Vector2(1283, 20) + +[node name="L20" type="Node2D"] +script = ExtResource("1_cjbjq") + +[node name="TextureRect" type="TextureRect" parent="."] +offset_left = 583.0 +offset_top = 4.0 +offset_right = 711.0 +offset_bottom = 260.0 +texture = ExtResource("1_g5hs8") + +[node name="Label" type="Label" parent="."] +offset_left = 327.0 +offset_top = 354.0 +offset_right = 957.0 +offset_bottom = 409.0 +theme_override_font_sizes/font_size = 40 +text = "Boss spawns at EBU pattern area" + +[node name="StaticBody2D" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +position = Vector2(-11, 361.5) +shape = SubResource("RectangleShape2D_1jr1w") + +[node name="StaticBody2D2" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"] +position = Vector2(1293, 358) +shape = SubResource("RectangleShape2D_1jr1w") + +[node name="StaticBody2D3" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"] +position = Vector2(641.5, -9) +shape = SubResource("RectangleShape2D_iptg6") + +[node name="StaticBody2D4" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"] +position = Vector2(644, 731) +shape = SubResource("RectangleShape2D_iptg6") + +[node name="Kimberly" parent="." instance=ExtResource("2_5cnwp")] +position = Vector2(644, 133) + +[node name="Player" parent="." instance=ExtResource("3_slxde")] +position = Vector2(652, 590) diff --git a/levels/ui/ceres.gd b/levels/ui/ceres.gd new file mode 100644 index 0000000..02c672b --- /dev/null +++ b/levels/ui/ceres.gd @@ -0,0 +1,52 @@ +extends Control +func _ready(): + Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) + $VBoxContainer/L20.grab_focus() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + +func _level(): + # This is like autoloading the scene, only + # it happens after already loading the main scene. + get_tree().change_scene_to_file("res://backgounds/disclaimer.tscn") + #Global.live = 1 + #Global.gamelevel = randi() % 3 + #if Global.gamelevel == 0: + # get_tree().change_scene_to_file("res://backgounds/galaxy.tscn") + #elif Global.gamelevel == 1: + # get_tree().change_scene_to_file("res://backgounds/wormhole.tscn") + #else: + # get_tree().change_scene_to_file("res://backgounds/abstract.tscn") + #get_tree().root.add_child(title) + #get_tree().root.remove_child(boot) + #boot.queue_free() + +func _input(event): + # Mouse in viewport coordinates. + if Input.is_action_just_pressed("ui_cancel"): + _on_back_pressed() + #print("Mouse Click/Unclick at: ", event.position) +# if highlighted == 1: +# _on_debug_pressed() +# if highlighted == 2: +# _on_exit_pressed() +# else: +# _on_start_pressed() +# elif Input.is_action_pressed("ui_up"): +# focus_next + + + + + + +func _on_back_pressed(): + get_tree().change_scene_to_file("res://levels/ui/scene.tscn") + + +func _on_l_20_pressed(): + Global.dplace = [1, 11, 19] + Global.live = 1 + get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn") diff --git a/levels/ui/ceres.tscn b/levels/ui/ceres.tscn new file mode 100644 index 0000000..5e8517b --- /dev/null +++ b/levels/ui/ceres.tscn @@ -0,0 +1,98 @@ +[gd_scene load_steps=6 format=3 uid="uid://bafdmqwba2oop"] + +[ext_resource type="Script" path="res://levels/ui/ceres.gd" id="1_tox8g"] +[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_2li8v"] +[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_uojcp"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6u0xs"] +bg_color = Color(0, 0.8, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r2qrn"] +bg_color = Color(0, 0.8, 0, 1) + +[node name="Ceres" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_tox8g") + +[node name="Night Sky" type="TextureRect" parent="."] +layout_mode = 0 +offset_right = 1280.0 +offset_bottom = 720.0 +texture = ExtResource("2_2li8v") + +[node name="Game name" type="Label" parent="."] +layout_mode = 0 +offset_left = 496.0 +offset_top = 3.0 +offset_right = 790.0 +offset_bottom = 73.0 +theme_override_font_sizes/font_size = 40 +text = "Shrine of the doomed souls" + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -129.5 +offset_top = -362.0 +offset_right = 129.5 +grow_horizontal = 2 +grow_vertical = 0 + +[node name="L20" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "CERES_L20_DESC" + +[node name="Lilytest" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Unused +" + +[node name="Dialogtest" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Unused +" + +[node name="Bullethell" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Unused" + +[node name="Credits" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Unused" + +[node name="WIP" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Unused" + +[node name="Back" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn") +text = "BUTTON_RETURN" + +[node name="Bottomhud" parent="." instance=ExtResource("3_uojcp")] +layout_mode = 1 + +[connection signal="pressed" from="VBoxContainer/L20" to="." method="_on_l_20_pressed"] +[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"] diff --git a/levels/ui/debug.tscn b/levels/ui/debug.tscn index c50ef14..fa76e0b 100644 --- a/levels/ui/debug.tscn +++ b/levels/ui/debug.tscn @@ -30,12 +30,16 @@ texture = ExtResource("2_1w2er") [node name="Game name" type="Label" parent="."] layout_mode = 0 -offset_left = 339.0 +offset_left = 44.0 offset_top = 61.0 -offset_right = 991.0 +offset_right = 1234.0 offset_bottom = 207.0 theme_override_font_sizes/font_size = 106 -text = "Debug Menu" +text = "MENU_DEBUG" +horizontal_alignment = 1 + +[node name="Bottomhud" parent="." instance=ExtResource("4_ogmre")] +layout_mode = 1 [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 1 @@ -44,9 +48,9 @@ anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 -offset_left = -129.5 -offset_top = -362.0 -offset_right = 129.5 +offset_left = -342.0 +offset_top = -484.0 +offset_right = 342.0 grow_horizontal = 2 grow_vertical = 0 @@ -72,10 +76,7 @@ text = "Sound Test" layout_mode = 2 theme_override_font_sizes/font_size = 80 theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn") -text = "Back" - -[node name="Bottomhud" parent="." instance=ExtResource("4_ogmre")] -layout_mode = 1 +text = "BUTTON_RETURN" [connection signal="pressed" from="VBoxContainer/Gamepad Test" to="." method="_on_gamepad_test_pressed"] [connection signal="pressed" from="VBoxContainer/Scene Selector2" to="." method="_on_scene_selector_pressed"] diff --git a/levels/ui/musictest.tscn b/levels/ui/musictest.tscn index 29a4c0d..1a2f857 100644 --- a/levels/ui/musictest.tscn +++ b/levels/ui/musictest.tscn @@ -207,7 +207,7 @@ text = "Boss Fight (Earth)" layout_mode = 2 theme_override_font_sizes/font_size = 25 theme_override_styles/focus = SubResource("StyleBoxFlat_0dqsq") -text = "Back" +text = "BUTTON_RETURN" [node name="Bottomhud" parent="." instance=ExtResource("4_a1ux8")] layout_mode = 1 diff --git a/levels/ui/scene.gd b/levels/ui/scene.gd index 9fcf4c4..a0f227c 100644 --- a/levels/ui/scene.gd +++ b/levels/ui/scene.gd @@ -64,3 +64,7 @@ func _on_disclaimer_pressed(): func _on_testrooms_pressed(): get_tree().change_scene_to_file("res://levels/ui/testrooms.tscn") + + +func _on_ceres_pressed(): + get_tree().change_scene_to_file("res://levels/ui/ceres.tscn") diff --git a/levels/ui/scene.tscn b/levels/ui/scene.tscn index ad41c27..1597a8f 100644 --- a/levels/ui/scene.tscn +++ b/levels/ui/scene.tscn @@ -59,6 +59,12 @@ theme_override_font_sizes/font_size = 32 theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") text = "Shrine of the doomed souls" +[node name="Ceres" type="Button" parent="VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") +text = "Ceres" + [node name="Results" type="Button" parent="VBoxContainer"] layout_mode = 2 theme_override_font_sizes/font_size = 32 @@ -81,13 +87,14 @@ text = "Work in Progress" layout_mode = 2 theme_override_font_sizes/font_size = 32 theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn") -text = "Back" +text = "BUTTON_RETURN" [node name="Bottomhud" parent="." instance=ExtResource("4_2y7h7")] layout_mode = 1 [connection signal="pressed" from="VBoxContainer/Disclaimer" to="." method="_on_disclaimer_pressed"] [connection signal="pressed" from="VBoxContainer/Testrooms" to="." method="_on_testrooms_pressed"] +[connection signal="pressed" from="VBoxContainer/Ceres" to="." method="_on_ceres_pressed"] [connection signal="pressed" from="VBoxContainer/Results" to="." method="_on_results_pressed"] [connection signal="pressed" from="VBoxContainer/Credits" to="." method="_on_credits_pressed"] [connection signal="pressed" from="VBoxContainer/WIP" to="." method="_on_wip_pressed"] diff --git a/levels/ui/sfxtest.tscn b/levels/ui/sfxtest.tscn index 90b203b..3960f27 100644 --- a/levels/ui/sfxtest.tscn +++ b/levels/ui/sfxtest.tscn @@ -83,7 +83,7 @@ text = "Explosion" layout_mode = 2 theme_override_font_sizes/font_size = 25 theme_override_styles/focus = SubResource("StyleBoxFlat_0dqsq") -text = "Back" +text = "BUTTON_RETURN" [node name="Bottomhud" parent="." instance=ExtResource("4_xxv3m")] layout_mode = 1 diff --git a/levels/ui/soundtest.tscn b/levels/ui/soundtest.tscn index b4916c9..edcd647 100644 --- a/levels/ui/soundtest.tscn +++ b/levels/ui/soundtest.tscn @@ -23,6 +23,7 @@ grow_vertical = 2 script = ExtResource("1_3bg6p") [node name="Night Sky" type="TextureRect" parent="."] +layout_mode = 0 offset_right = 1280.0 offset_bottom = 720.0 texture = ExtResource("2_x41qm") @@ -65,7 +66,7 @@ text = "Sound Effects" layout_mode = 2 theme_override_font_sizes/font_size = 80 theme_override_styles/focus = SubResource("StyleBoxFlat_wro6j") -text = "Back" +text = "BUTTON_RETURN" [node name="Bottomhud" parent="." instance=ExtResource("4_2a53a")] layout_mode = 1 diff --git a/levels/ui/testrooms.tscn b/levels/ui/testrooms.tscn index 15d19bf..76e5a91 100644 --- a/levels/ui/testrooms.tscn +++ b/levels/ui/testrooms.tscn @@ -89,7 +89,7 @@ text = "Unused" layout_mode = 2 theme_override_font_sizes/font_size = 32 theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn") -text = "Back" +text = "BUTTON_RETURN" [node name="Bottomhud" parent="." instance=ExtResource("4_jvl8w")] layout_mode = 1 diff --git a/levels/ui/tmenu.tscn b/levels/ui/tmenu.tscn index a96a900..446d62c 100644 --- a/levels/ui/tmenu.tscn +++ b/levels/ui/tmenu.tscn @@ -38,6 +38,9 @@ theme_override_font_sizes/font_size = 95 text = "GAME_NAME" horizontal_alignment = 1 +[node name="Bottomhud" parent="." instance=ExtResource("4_0qcfw")] +layout_mode = 1 + [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 7 @@ -45,9 +48,9 @@ anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 -offset_left = -129.5 +offset_left = -322.0 offset_top = -362.0 -offset_right = 129.5 +offset_right = 322.0 grow_horizontal = 2 grow_vertical = 0 @@ -55,22 +58,19 @@ grow_vertical = 0 layout_mode = 2 theme_override_font_sizes/font_size = 80 theme_override_styles/focus = SubResource("StyleBoxFlat_821nm") -text = "Start" +text = "BUTTON_START" [node name="Debug" type="Button" parent="VBoxContainer"] layout_mode = 2 theme_override_font_sizes/font_size = 80 theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") -text = "Debug" +text = "BUTTON_DEBUG" [node name="Exit" type="Button" parent="VBoxContainer"] layout_mode = 2 theme_override_font_sizes/font_size = 80 theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn") -text = "Exit" - -[node name="Bottomhud" parent="." instance=ExtResource("4_0qcfw")] -layout_mode = 1 +text = "BUTTON_EXIT" [connection signal="pressed" from="VBoxContainer/Start" to="." method="_on_start_pressed"] [connection signal="pressed" from="VBoxContainer/Debug" to="." method="_on_debug_pressed"] diff --git a/sprites/common/kimberly/kimberly.gd b/sprites/common/kimberly/kimberly.gd new file mode 100644 index 0000000..c2b073d --- /dev/null +++ b/sprites/common/kimberly/kimberly.gd @@ -0,0 +1,75 @@ +extends CharacterBody2D + +var theta: float = 0.0 +@export_range(0,2*PI) var alpha: float = 1.5 +var bullet = load("res://sprites/common/bullet/arrow.tscn") + +const SPEED = 300.0 +const JUMP_VELOCITY = -400.0 +var vangle = 2 +var weakness = 1 + + +func _ready(): + var stimer = $Speed + stimer.start(0.05) + +func get_vector(angle): + theta = angle + alpha + return Vector2(cos(theta),sin(theta)) + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") + +@onready var anim := $AnimationPlayer + +func _physics_process(delta): + velocity.x = 0 + velocity.y = 0 + # Add the gravity. + #var velocity = Vector2.ZERO + #if Global.live == 1: + #velocity = (Vector2.RIGHT.rotated(rotation) * 500 * Global.xm * delta)-Vector2.UP.rotated(rotation) * 500 * Global.ym * delta + #origmpos = get_viewport().get_mouse_position() + #if Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) != 0: + # velocity = Vector2.UP.rotated(rotation) * -400 * Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) + #position += velocity + position += velocity + if velocity.y > 0.3: + vangle = 2 + elif velocity.y < -0.3: + vangle = 0 + elif velocity.x > 0.3: + vangle = 1 + elif velocity.x < -0.3: + vangle = 3 + if velocity.y != 0 || velocity.x != 0: + if vangle == 0: + anim.play("nwalk") + elif vangle == 1: + anim.play("ewalk") + elif vangle == 3: + anim.play("wwalk") + else: + anim.play("swalk") + else: + if vangle == 0: + anim.play("nidle") + elif vangle == 1: + anim.play("eidle") + elif vangle == 3: + anim.play("widle") + else: + anim.play("sidle") + #move_and_slide() +func shoot(angle): + var new_bullet = bullet.instantiate() + new_bullet.position = Vector2(position.x, position.y) + new_bullet.direction = get_vector(angle) + new_bullet.btype = "boss" + get_parent().call_deferred("add_child",new_bullet) + + +func _on_speed_timeout(): + if Global.live == 1: + shoot(theta) diff --git a/sprites/common/kimberly/kimberly.tscn b/sprites/common/kimberly/kimberly.tscn new file mode 100644 index 0000000..fcc2f44 --- /dev/null +++ b/sprites/common/kimberly/kimberly.tscn @@ -0,0 +1,185 @@ +[gd_scene load_steps=14 format=3 uid="uid://wo77i5ql2esb"] + +[ext_resource type="Script" path="res://sprites/common/kimberly/kimberly.gd" id="1_g5qsa"] +[ext_resource type="Texture2D" uid="uid://by7git27p1fp6" path="res://sprites/common/kimberly/sprite.png" id="2_hhs4a"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dj8gt"] +size = Vector2(86, 68) + +[sub_resource type="Animation" id="Animation_i5rhc"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_8my4d"] +resource_name = "eidle" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [6] +} + +[sub_resource type="Animation" id="Animation_op07l"] +resource_name = "ewalk" +length = 0.3 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [7, 6, 8] +} + +[sub_resource type="Animation" id="Animation_cajcr"] +resource_name = "nidle" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [3] +} + +[sub_resource type="Animation" id="Animation_7lhgw"] +resource_name = "nwalk" +length = 0.3 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [4, 3, 5] +} + +[sub_resource type="Animation" id="Animation_w3ius"] +resource_name = "sidle" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_u56r5"] +resource_name = "swalk" +length = 0.3 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [1, 0, 2] +} + +[sub_resource type="Animation" id="Animation_isodq"] +resource_name = "widle" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.2), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [9] +} + +[sub_resource type="Animation" id="Animation_letwb"] +resource_name = "wwalk" +length = 0.3 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sprite2D:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 1, +"values": [10, 9, 11] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_mh65y"] +_data = { +"RESET": SubResource("Animation_i5rhc"), +"eidle": SubResource("Animation_8my4d"), +"ewalk": SubResource("Animation_op07l"), +"nidle": SubResource("Animation_cajcr"), +"nwalk": SubResource("Animation_7lhgw"), +"sidle": SubResource("Animation_w3ius"), +"swalk": SubResource("Animation_u56r5"), +"widle": SubResource("Animation_isodq"), +"wwalk": SubResource("Animation_letwb") +} + +[node name="Kimberly" type="CharacterBody2D"] +script = ExtResource("1_g5qsa") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_hhs4a") +hframes = 3 +vframes = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, 94) +shape = SubResource("RectangleShape2D_dj8gt") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_mh65y") +} + +[node name="Speed" type="Timer" parent="."] +wait_time = 0.1 + +[connection signal="timeout" from="Speed" to="." method="_on_speed_timeout"] diff --git a/text.csv b/text.csv index 785d6a3..028bea2 100644 --- a/text.csv +++ b/text.csv @@ -3,6 +3,11 @@ TEXT_CONTINUE;Press Enter or B to continue;Presiona Intro o B para continuar;Ent TEXT_START;Press Enter or B to start;Presiona Intro o B para iniciar;EnterまたはBを押して開始します TEXT_EXIT;Press Escape or A to exit;Presiona Escape o A para salir;終了するにはEscまたはAを押してください GAME_NAME;Midori in the Magic School;Midori in the Magic School;改造魔法学校のミドリ +BUTTON_START;Start;Iniciar;始める +BUTTON_DEBUG;Debug;Depurar;デバッグ +MENU_DEBUG;Debug Menu;Menú de Depuración;デバッグメニュー +BUTTON_EXIT;Exit;Salir;このゲームを終了する +BUTTON_RETURN;Return;Atrás;戻る SONG0_INFO;RELOADED\nRELOADED THEME\nMidori is now RELOADED;RELOADED\nRELOADED THEME\nMidori ahora esta RELOADED;RELOADED\nRELOADED THEME\n緑は今 RELOADED SONG1_INFO; Vince Kaichan\nJellies in the Sea\nA relaxing sea music to prepare you for this explosive Action RPG;Vince Kaichan\nJellies in the Sea\nUna relajante música marina que te preparará para este explosivo Action RPG;ヴィンス・カイチャン\nJellies in the Sea\n爆発的なアクションRPGに備えてリラックスできる海の音楽 SONG2_INFO;Fearofdark\nGet A Brain Morans\nMeme Music for a meme themed stage.\nYou can enter here using Test Milk and\nget something interesting;Fearofdark\nGet A Brain Morans\nMúsica de Meme para un escenario con temática de memes.\nPuedes ingresar aquí usando la Leche de Pruebas y obtener algo interesante.;Fearofdark\nGet A Brain Morans\nミームをテーマにしたステージのミームミュージック\nTest Milkを使用してここに参加して、\t何か面白いものを手に入れましょう @@ -24,3 +29,7 @@ SONG17_INFO;motherchip\nportello\nI said that you are dead?\nForget it\nThis is SONG18_INFO;Vince Kaichan\nsongbirds playground\nA happy song to forget that Kimberly will pull your ears\nwhen classes end\nYou know, that way to punish naughty elves like you;Vince Kaichan\nsongbirds playground\nA happy song to forget that Kimberly will pull your ears\nwhen classes end\nYou know, that way to punish naughty elves like you;ヴィンス・カイチャン\nsongbirds playground\nA happy song to forget that Kimberly will pull your ears\nwhen classes end\nYou know, that way to punish naughty elves like you SONG19_INFO;Vince Kaichan\nGotanda Lights\nThis forest is under the effect of quantum ice\nGo further and you will find a frozen lake\n and the origin of that quamtum ice;Vince Kaichan\nGotanda Lights\nThis forest is under the effect of quantum ice\nGo further and you will find a frozen lake\n and the origin of that quamtum ice;ヴィンス・カイチャン\nGotanda Lights\nThis forest is under the effect of quantum ice\nGo further and you will find a frozen lake\n and the origin of that quamtum ice SONG20_INFO;rez-kenet\nunreeeal superhero 3\nReal superheroes are too mainstream\nYou can be somebody better;rez-kenet\nunreeeal superhero 3\nReal superheroes are too mainstream\nYou can be somebody better;rez-kenet\nunreeeal superhero 3\nReal superheroes are too mainstream\nYou can be somebody better +DIALOG_CERES_L20_0;I won’t be a healer;No seré una sanadora;私はヒーラーにはなりません +DIALOG_CERES_L20_1;I want a friendly challenge, loser will obey the winner;Haremos un reto amistoso, El perdedor obedecerá al ganador;友好的な挑戦をしたい、負けた者は勝者に従う +DIALOG_CERES_L20_2;My magic wand VS your bow;Mi vara mágica contra tu arco;私の魔法の杖 VS あなたの弓 +CERES_L20_DESC;Kimberly’s Challenge;Reto de Kimberly;キンバリーの挑戦