From d4ddfa4fc3d1b23d358c67b4fa93b9f3092790e5 Mon Sep 17 00:00:00 2001 From: kdx Date: Mon, 30 Oct 2023 13:46:43 +0100 Subject: fireball --- arrow.tscn | 2 +- fireball.gd | 25 +++++++++++++++++++++++++ fireball.png | Bin 0 -> 75105 bytes fireball.png.import | 34 ++++++++++++++++++++++++++++++++++ fireball.tscn | 27 +++++++++++++++++++++++++++ player.gd | 6 +++++- player.tscn | 4 +++- project_time_traker.json | 8 ++++---- 8 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 fireball.gd create mode 100644 fireball.png create mode 100644 fireball.png.import create mode 100644 fireball.tscn diff --git a/arrow.tscn b/arrow.tscn index 4b78cdb..7701ee9 100644 --- a/arrow.tscn +++ b/arrow.tscn @@ -15,7 +15,7 @@ size = Vector2(732, 20) scale = Vector2(0.2, 0.2) script = ExtResource("1_cg6vj") -[node name="Arrow" type="Sprite2D" parent="."] +[node name="Sprite2D" type="Sprite2D" parent="."] material = SubResource("ShaderMaterial_tt0m2") texture = ExtResource("1_cagmk") diff --git a/fireball.gd b/fireball.gd new file mode 100644 index 0000000..54ce497 --- /dev/null +++ b/fireball.gd @@ -0,0 +1,25 @@ +extends Area2D + +var velocity: Vector2 + +func _ready() -> void: + $ShotSound.play() + + +func type() -> String: return "arrow" + + +func damage(other: Area2D) -> void: + other.damage(1.5) + queue_free() + get_node("../BowHit").play() + + +func _physics_process(delta: float) -> void: + position += velocity + velocity *= 0.9 + rotation += velocity.length() + if velocity.length() < 0.001: queue_free() + if position.x < -Globals.WIDTH / 2. or position.y < -Globals.HEIGHT / 2. or \ + position.x > Globals.WIDTH / 2. or position.y > Globals.HEIGHT / 2.: + queue_free() diff --git a/fireball.png b/fireball.png new file mode 100644 index 0000000..24439fe Binary files /dev/null and b/fireball.png differ diff --git a/fireball.png.import b/fireball.png.import new file mode 100644 index 0000000..7b3602c --- /dev/null +++ b/fireball.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1n5ju36f5ly" +path="res://.godot/imported/fireball.png-c7822e52cb66c739ed23dd48a4e71947.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fireball.png" +dest_files=["res://.godot/imported/fireball.png-c7822e52cb66c739ed23dd48a4e71947.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 diff --git a/fireball.tscn b/fireball.tscn new file mode 100644 index 0000000..4f19a32 --- /dev/null +++ b/fireball.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=7 format=3 uid="uid://b1i7oqv2tpjd"] + +[ext_resource type="Script" path="res://fireball.gd" id="1_in5g7"] +[ext_resource type="Shader" path="res://arrow.gdshader" id="2_3ixoq"] +[ext_resource type="Texture2D" uid="uid://1n5ju36f5ly" path="res://fireball.png" id="3_4a7i4"] +[ext_resource type="AudioStream" uid="uid://bi6rnsdwfyax5" path="res://bowshot.wav" id="4_dw0ft"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tt0m2"] +shader = ExtResource("2_3ixoq") + +[sub_resource type="CircleShape2D" id="CircleShape2D_2nx33"] +radius = 125.1 + +[node name="Fireball" type="Area2D"] +scale = Vector2(0.2, 0.2) +script = ExtResource("1_in5g7") + +[node name="Sprite2D" type="Sprite2D" parent="."] +material = SubResource("ShaderMaterial_tt0m2") +texture = ExtResource("3_4a7i4") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_2nx33") + +[node name="ShotSound" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource("4_dw0ft") +volume_db = 5.0 diff --git a/player.gd b/player.gd index fdf8db8..b928ab5 100644 --- a/player.gd +++ b/player.gd @@ -4,9 +4,11 @@ extends Area2D @export var projectile_speed := 3.0 @export var visibility := 320.0 @export var arrow: PackedScene +@export var fireball: PackedScene @onready var primogemmes = get_node("../CanvasUI/UI/Primogemmes") @onready var sfxs = [ $SfxOO, $SfxEE, $SfxOO2 ] var sfx = 0 +var character: String = "venti" var aiming: Area2D = null @@ -57,6 +59,7 @@ func _on_area_entered(area: Area2D) -> void: func select_character(s: String) -> void: + character = s match s: "venti": $Sprite2D.frame = 0 @@ -78,7 +81,8 @@ func find_enemy() -> Area2D: func _on_timer_timeout() -> void: if aiming == null: return - var e: Area2D = arrow.instantiate() + var projectile := arrow if character == "venti" else fireball + var e: Area2D = projectile.instantiate() e.position = position var norm := (aiming.position - position).normalized() e.rotation = norm.angle() diff --git a/player.tscn b/player.tscn index 9561d81..abced19 100644 --- a/player.tscn +++ b/player.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=8 format=3 uid="uid://c2g45v321qddb"] +[gd_scene load_steps=9 format=3 uid="uid://c2g45v321qddb"] [ext_resource type="Script" path="res://player.gd" id="1_tleme"] [ext_resource type="PackedScene" uid="uid://dwmf4eu5xn0bc" path="res://arrow.tscn" id="2_fmkn7"] [ext_resource type="Texture2D" uid="uid://cq3m7fo355xdf" path="res://characters.png" id="2_mu4pp"] [ext_resource type="AudioStream" uid="uid://siphq0i4rti2" path="res://oo.wav" id="3_0gvk7"] +[ext_resource type="PackedScene" uid="uid://b1i7oqv2tpjd" path="res://fireball.tscn" id="3_eqcbl"] [ext_resource type="AudioStream" uid="uid://dnx38lwh4b34a" path="res://ee.wav" id="4_on1ta"] [ext_resource type="AudioStream" uid="uid://xbua3i4neqg5" path="res://oo2.wav" id="5_be6a0"] @@ -16,6 +17,7 @@ speed = 8.0 projectile_speed = 12.0 visibility = 640.0 arrow = ExtResource("2_fmkn7") +fireball = ExtResource("3_eqcbl") metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/project_time_traker.json b/project_time_traker.json index 81ed0e6..201ef36 100644 --- a/project_time_traker.json +++ b/project_time_traker.json @@ -1,6 +1,6 @@ { - "2D": 3.02399969100952, - "3D": 3.99900007247925, - "Editor": 301.720999956131, - "Script": 294.698000192642 + "2D": 319.842135190964, + "3D": 30.9836082458496, + "Editor": 1600.81316947937, + "Script": 1249.98742604256 } \ No newline at end of file -- cgit v1.2.3