diff --git a/.gitignore b/.gitignore index 0af181c..7f9496e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # Godot 4+ specific ignores .godot/ /android/ +*.apk diff --git a/assets/fonts/BreatheFireIii-PKLOB.ttf b/assets/fonts/BreatheFireIii-PKLOB.ttf deleted file mode 100644 index dc07a07..0000000 Binary files a/assets/fonts/BreatheFireIii-PKLOB.ttf and /dev/null differ diff --git a/assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf b/assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf new file mode 100644 index 0000000..87bcb39 Binary files /dev/null and b/assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf differ diff --git a/assets/fonts/BreatheFireIii-PKLOB.ttf.import b/assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf.import similarity index 61% rename from assets/fonts/BreatheFireIii-PKLOB.ttf.import rename to assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf.import index 000cc1f..934717d 100644 --- a/assets/fonts/BreatheFireIii-PKLOB.ttf.import +++ b/assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf.import @@ -2,13 +2,13 @@ importer="font_data_dynamic" type="FontFile" -uid="uid://dmc6dygxrekja" -path="res://.godot/imported/BreatheFireIii-PKLOB.ttf-465bcc82067f616dd7ec170092b35831.fontdata" +uid="uid://bjaavdnopfh0q" +path="res://.godot/imported/AoboshiOne-Regular.ttf-e2c0f8dbc6a7f6e0a39aebbd1e7b401b.fontdata" [deps] -source_file="res://assets/fonts/BreatheFireIii-PKLOB.ttf" -dest_files=["res://.godot/imported/BreatheFireIii-PKLOB.ttf-465bcc82067f616dd7ec170092b35831.fontdata"] +source_file="res://assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf" +dest_files=["res://.godot/imported/AoboshiOne-Regular.ttf-e2c0f8dbc6a7f6e0a39aebbd1e7b401b.fontdata"] [params] diff --git a/assets/fonts/aoboshi_one/OFL.txt b/assets/fonts/aoboshi_one/OFL.txt new file mode 100644 index 0000000..038eb3d --- /dev/null +++ b/assets/fonts/aoboshi_one/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Aoboshi Font Project Authors (https://github.com/matsuba723/Aoboshi), all rights reserved. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/fonts/info.txt b/assets/fonts/info.txt deleted file mode 100644 index 6b4fca3..0000000 --- a/assets/fonts/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -license: Freeware, Non-Commercial -link: https://www.fontspace.com/breathe-fire-iii-font-f69367 \ No newline at end of file diff --git a/export_presets.cfg b/export_presets.cfg index 5308493..cc09dde 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -1,6 +1,6 @@ [preset.0] -name="Android" +name="Android Debug" platform="Android" runnable=true advanced_options=false diff --git a/scenes/debug_level.tscn b/scenes/debug_level.tscn index 2caea11..2ef56f9 100644 --- a/scenes/debug_level.tscn +++ b/scenes/debug_level.tscn @@ -51,7 +51,7 @@ shadow_enabled = true environment = SubResource("Environment_rwve8") [node name="MonsterSpawnpoint" parent="." instance=ExtResource("3_esgto")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -12) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.6673, 0, -8.88992) spawnable_monsters = Array[ExtResource("3_iktqp")]([ExtResource("4_3y7gi")]) ignore_visibility = true max_monsters = 1 diff --git a/scenes/main.tscn b/scenes/main.tscn index f3c40c4..fb22792 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,14 +1,31 @@ -[gd_scene load_steps=9 format=3 uid="uid://cswuap81n7t3f"] +[gd_scene load_steps=14 format=3 uid="uid://cswuap81n7t3f"] [ext_resource type="Texture2D" uid="uid://b6ylra30qxf30" path="res://assets/logo/logo.png" id="1_fpt28"] [ext_resource type="PackedScene" uid="uid://p8agd0dfam0p" path="res://scenes/debug_level.tscn" id="1_j851n"] [ext_resource type="Script" path="res://scripts/inventory.gd" id="2_0mkyf"] -[ext_resource type="FontFile" uid="uid://dmc6dygxrekja" path="res://assets/fonts/BreatheFireIii-PKLOB.ttf" id="2_vjast"] [ext_resource type="Script" path="res://scripts/joystick.gd" id="4_6b5cb"] +[ext_resource type="FontFile" uid="uid://bjaavdnopfh0q" path="res://assets/fonts/aoboshi_one/AoboshiOne-Regular.ttf" id="4_33gx1"] [ext_resource type="Texture2D" uid="uid://8anyvhkcy4ng" path="res://assets/textures/Xbox Series/Vector/xbox_button_a.svg" id="5_pwhwh"] +[ext_resource type="Texture2D" uid="uid://2vxx2waofxpw" path="res://assets/textures/Xbox Series/Vector/xbox_button_menu_outline.svg" id="6_78vsk"] +[ext_resource type="Script" path="res://scripts/monster_list.gd" id="6_shxjx"] [ext_resource type="Script" path="res://scripts/camera_controls.gd" id="6_u5aqx"] +[ext_resource type="Texture2D" uid="uid://c737p2osplq2o" path="res://assets/textures/Xbox Series/Vector/xbox_button_x_outline.svg" id="7_rroeh"] -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7t5ln"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kl7kg"] +bg_color = Color(0.8, 0.8, 0.8, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0o2ai"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wyqgq"] +bg_color = Color(0, 0, 0, 0.196078) +corner_radius_top_left = 999 +corner_radius_top_right = 999 +corner_radius_bottom_right = 999 +corner_radius_bottom_left = 999 [node name="Main" type="Node3D"] @@ -95,10 +112,10 @@ grow_vertical = 0 theme_override_colors/font_color = Color(0.945573, 0.745802, 0.348774, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 30 -theme_override_fonts/font = ExtResource("2_vjast") +theme_override_fonts/font = ExtResource("4_33gx1") theme_override_font_sizes/font_size = 70 -text = "M O N S T E R - F A N G E N" +text = "MONSTER +FANGEN" horizontal_alignment = 1 max_lines_visible = 2 @@ -133,24 +150,133 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("6_u5aqx") -[node name="VBoxContainer2" type="VBoxContainer" parent="ControlsLayer"] +[node name="MonsterList" type="MarginContainer" parent="ControlsLayer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("6_shxjx") + +[node name="MarginContainer" type="MarginContainer" parent="ControlsLayer/MonsterList"] +layout_mode = 2 +theme_override_constants/margin_left = 40 +theme_override_constants/margin_top = 40 +theme_override_constants/margin_right = 40 +theme_override_constants/margin_bottom = 40 + +[node name="PanelContainer" type="PanelContainer" parent="ControlsLayer/MonsterList/MarginContainer"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_kl7kg") + +[node name="VBoxContainer" type="VBoxContainer" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer"] +layout_mode = 2 + +[node name="Control" type="HBoxContainer" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/Control"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_fonts/font = ExtResource("4_33gx1") +theme_override_font_sizes/font_size = 50 +text = "Your Monsters" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CloseButton" type="Button" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/Control"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 8 +icon = ExtResource("7_rroeh") +flat = true + +[node name="MarginContainer" type="MarginContainer" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_right = 20 + +[node name="MonsterListEntry" type="HBoxContainer" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 + +[node name="TextureRect" type="TextureRect" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +custom_minimum_size = Vector2(70, 70) +layout_mode = 2 +texture = ExtResource("1_fpt28") +expand_mode = 2 + +[node name="MonsterID" type="Label" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +layout_mode = 2 +size_flags_vertical = 1 +text = "ID" +vertical_alignment = 1 + +[node name="MonsterName" type="Label" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +layout_mode = 2 +size_flags_vertical = 1 +text = "Name" +vertical_alignment = 1 + +[node name="MonsterLevel" type="Label" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +layout_mode = 2 +size_flags_vertical = 1 +text = "Lvl" +vertical_alignment = 1 + +[node name="MonsterHealth" type="Label" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +layout_mode = 2 +size_flags_vertical = 1 +text = "Health" +vertical_alignment = 1 + +[node name="ProgressBar" type="ProgressBar" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 + +[node name="Button" type="Button" parent="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/MarginContainer/MonsterListEntry"] +custom_minimum_size = Vector2(30, 30) +layout_mode = 2 +size_flags_horizontal = 10 +icon = ExtResource("6_78vsk") +flat = true +icon_alignment = 1 + +[node name="MarginContainer" type="MarginContainer" parent="ControlsLayer"] anchors_preset = 12 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 +offset_top = -376.0 grow_horizontal = 2 grow_vertical = 0 +theme_override_constants/margin_left = 30 +theme_override_constants/margin_bottom = 30 + +[node name="VBoxContainer2" type="VBoxContainer" parent="ControlsLayer/MarginContainer"] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="Panel" type="Panel" parent="ControlsLayer/VBoxContainer2"] +[node name="MenuButton" type="Button" parent="ControlsLayer/MarginContainer/VBoxContainer2"] +custom_minimum_size = Vector2(150, 150) +layout_mode = 2 +size_flags_horizontal = 0 +theme_override_styles/focus = SubResource("StyleBoxEmpty_0o2ai") +icon = ExtResource("6_78vsk") +flat = true +icon_alignment = 1 +expand_icon = true + +[node name="Panel" type="Panel" parent="ControlsLayer/MarginContainer/VBoxContainer2"] custom_minimum_size = Vector2(300, 300) layout_mode = 2 size_flags_horizontal = 0 -theme_override_styles/panel = SubResource("StyleBoxEmpty_7t5ln") +theme_override_styles/panel = SubResource("StyleBoxFlat_wyqgq") script = ExtResource("4_6b5cb") -[node name="Thumbstick" type="TextureRect" parent="ControlsLayer/VBoxContainer2/Panel"] +[node name="Thumbstick" type="TextureRect" parent="ControlsLayer/MarginContainer/VBoxContainer2/Panel"] +self_modulate = Color(0, 0, 0, 0.392157) custom_minimum_size = Vector2(100, 100) layout_mode = 0 offset_right = 40.0 @@ -158,5 +284,6 @@ offset_bottom = 40.0 texture = ExtResource("5_pwhwh") [connection signal="gui_input" from="ControlsLayer/CameraControls" to="ControlsLayer/CameraControls" method="_on_gui_input"] -[connection signal="gui_input" from="ControlsLayer/VBoxContainer2/Panel" to="ControlsLayer/VBoxContainer2/Panel" method="_on_gui_input"] -[connection signal="resized" from="ControlsLayer/VBoxContainer2/Panel" to="ControlsLayer/VBoxContainer2/Panel" method="_on_resized"] +[connection signal="pressed" from="ControlsLayer/MonsterList/MarginContainer/PanelContainer/VBoxContainer/Control/CloseButton" to="ControlsLayer/MonsterList" method="_on_close_button_pressed"] +[connection signal="gui_input" from="ControlsLayer/MarginContainer/VBoxContainer2/Panel" to="ControlsLayer/MarginContainer/VBoxContainer2/Panel" method="_on_gui_input"] +[connection signal="resized" from="ControlsLayer/MarginContainer/VBoxContainer2/Panel" to="ControlsLayer/MarginContainer/VBoxContainer2/Panel" method="_on_resized"] diff --git a/scenes/monster_spawnpoint.tscn b/scenes/monster_spawnpoint.tscn index 9aac2da..ab242b5 100644 --- a/scenes/monster_spawnpoint.tscn +++ b/scenes/monster_spawnpoint.tscn @@ -25,6 +25,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) [node name="Label3D" type="Label3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) -billboard = 1 +visible = false text = "0 / 5" font_size = 64 diff --git a/scenes/player.tscn b/scenes/player.tscn index 9a8a76f..74ba8fc 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -7,6 +7,9 @@ height = 1.7 [node name="Player" type="CharacterBody3D"] +axis_lock_angular_x = true +axis_lock_angular_y = true +axis_lock_angular_z = true script = ExtResource("1_3fea3") [node name="GobotSkin" parent="." instance=ExtResource("2_vivad")] diff --git a/scripts/monster.gd b/scripts/monster.gd index 737d622..6a67156 100644 --- a/scripts/monster.gd +++ b/scripts/monster.gd @@ -49,5 +49,5 @@ func _physics_process(delta: float) -> void: var new_player_position = camera.global_transform.origin + local_z * 3 - print(camera.global_transform.origin, new_player_position) - collider.start_battle(new_player_position) + collider.start_battle(self, new_player_position) + #rotate_toward(rotation.z, collider.rotation.z, 1.0) diff --git a/scripts/monster_list.gd b/scripts/monster_list.gd index cac00bc..4639361 100644 --- a/scripts/monster_list.gd +++ b/scripts/monster_list.gd @@ -1,4 +1,4 @@ -extends VBoxContainer +extends MarginContainer # Called when the node enters the scene tree for the first time. @@ -9,3 +9,8 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass + + +func _on_close_button_pressed() -> void: + visible = false + pass # Replace with function body. diff --git a/scripts/player.gd b/scripts/player.gd index 2d80947..18a4718 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -2,10 +2,15 @@ extends CharacterBody3D @onready var animated_mesh = $GobotSkin +var in_battle: bool = false + const SPEED = 5.0 const JUMP_VELOCITY = 4.5 - + func _physics_process(delta: float) -> void: + if in_battle == true: + return + animated_mesh.idle() # Add the gravity. @@ -53,14 +58,19 @@ func _physics_process(delta: float) -> void: move_and_slide() - if velocity.length() < 0.01: + if velocity.length() < 0.05: animated_mesh.idle() # what happens when a battle starts? -# the player is positioned (mostly elsewhere than where he currently stands) +# the player is positioned (mostly somewhere else than the current position) # ui changes # music changes -func start_battle(player_position: Vector3) -> void: +func start_battle(enemy: Node3D, player_position: Vector3) -> void: position = Vector3(player_position.x, position.y, player_position.z) - print("düdelüdelüdelüdelü") - print("start battle") + in_battle = true + velocity = Vector3.ZERO + animated_mesh.idle() + + await get_tree().create_timer(2.0).timeout + print("timer over") + in_battle = false diff --git a/shaders/blur.gdshader b/shaders/blur.gdshader new file mode 100644 index 0000000..6419727 --- /dev/null +++ b/shaders/blur.gdshader @@ -0,0 +1,12 @@ +shader_type canvas_item; + +uniform float blur_amount : hint_range(-2.0, 10.0); +uniform float mix_amount : hint_range(0.0, 1.0); +uniform vec4 color_over : source_color; +uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap; + +void fragment() { + vec4 blurred = textureLod(SCREEN_TEXTURE, SCREEN_UV, blur_amount); + vec4 fin = mix(blurred, color_over, mix_amount); + COLOR = fin; +} \ No newline at end of file