Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Ability/AbilityTemplateScripts/melee_ability.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
extends AbilityLogic

var HitboxScene = preload("res://Ability/hitbox.tscn")


func use(user):
if (data.melee_hitbox_enable):
melee_attack(user)
data.add_exp(50)
pass

func stop_use(user):
print(data.name+" has stopped.")
pass

func while_use(user, delta: float):
pass


func melee_attack(user):
var hitbox = HitboxScene.instantiate()
hitbox.initHitbox(data, user)
print("you melee attacked, what???")

1 change: 1 addition & 0 deletions Ability/AbilityTemplateScripts/melee_ability.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://dah4filbmo0p7
13 changes: 13 additions & 0 deletions Ability/AbilityTemplateScripts/practice_ability.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
extends AbilityLogic

func use(user):
print(data.name + " has started.")
data.add_exp(50)
pass

func stop_use(user):
print(data.name+" has stopped.")
pass

func while_use(user, delta: float):
pass
1 change: 1 addition & 0 deletions Ability/AbilityTemplateScripts/practice_ability.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://ckychlwohd8nf
12 changes: 12 additions & 0 deletions Ability/AbilityTemplateScripts/sprint_ability.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
extends AbilityLogic

func use(user):
print("started sprinting")

func while_use(user, delta):
data.add_exp(20 * delta)

func stop_use(user):
print("stopped sprinting")
pass

1 change: 1 addition & 0 deletions Ability/AbilityTemplateScripts/sprint_ability.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://bym661bu8r72n
17 changes: 17 additions & 0 deletions Ability/AbilityTres/melee_big_hit.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[gd_resource type="Resource" load_steps=4 format=3 uid="uid://r0aqeukqqt6h"]

[ext_resource type="Script" uid="uid://cdrbhji2r6eti" path="res://Ability/ability.gd" id="1_5ocnk"]
[ext_resource type="Script" uid="uid://dah4filbmo0p7" path="res://Ability/AbilityTemplateScripts/melee_ability.gd" id="2_5ocnk"]

[sub_resource type="Resource" id="Resource_itdyd"]
script = ExtResource("1_5ocnk")
name = "Melee Big Hit"
base_damage = 1.0
melee_hitbox_enable = true
melee_hitbox_offset = Vector2(0, 50)
metadata/_custom_type_script = "uid://cdrbhji2r6eti"

[resource]
script = ExtResource("2_5ocnk")
data = SubResource("Resource_itdyd")
metadata/_custom_type_script = "uid://c14dw11f4rkhi"
15 changes: 15 additions & 0 deletions Ability/AbilityTres/practice_ability.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[gd_resource type="Resource" load_steps=4 format=3 uid="uid://c4sd6smpa721x"]

[ext_resource type="Script" uid="uid://cdrbhji2r6eti" path="res://Ability/ability.gd" id="1_70usm"]
[ext_resource type="Script" uid="uid://ckychlwohd8nf" path="res://Ability/AbilityTemplateScripts/practice_ability.gd" id="1_i4u7c"]

[sub_resource type="Resource" id="Resource_itdyd"]
script = ExtResource("1_70usm")
name = "Practice Ability"
base_damage = 1000.0
metadata/_custom_type_script = "uid://cdrbhji2r6eti"

[resource]
script = ExtResource("1_i4u7c")
data = SubResource("Resource_itdyd")
metadata/_custom_type_script = "uid://c14dw11f4rkhi"
14 changes: 14 additions & 0 deletions Ability/AbilityTres/sprint_ability.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[gd_resource type="Resource" load_steps=4 format=3 uid="uid://wwa6n3kvae7i"]

[ext_resource type="Script" uid="uid://cdrbhji2r6eti" path="res://Ability/ability.gd" id="1_80pgq"]
[ext_resource type="Script" uid="uid://bym661bu8r72n" path="res://Ability/AbilityTemplateScripts/sprint_ability.gd" id="2_0q0tn"]

[sub_resource type="Resource" id="Resource_t24na"]
script = ExtResource("1_80pgq")
name = "Sprint"
metadata/_custom_type_script = "uid://cdrbhji2r6eti"

[resource]
script = ExtResource("2_0q0tn")
data = SubResource("Resource_t24na")
metadata/_custom_type_script = "uid://c14dw11f4rkhi"
45 changes: 45 additions & 0 deletions Ability/ability.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

extends Resource
class_name AbilityData

@export var name: String
@export var base_damage := 10.0
@export var cooldown := 0.5
@export var consumption := 10.0 # IS IT STAMINA??? I DONT KNOW I FORGOT TS GAME IS DOOMED BRO
@export var hp_consumption := 0.0

@export var level := 1
@export var exp := 0.0
@export var starting_exp := 100.0
@export var exp_scaling := 100.0 # +100 exp needed for every additional level
@export var exp_to_level := 100.0

@export var melee_hitbox_enable := false
@export var melee_hitbox_size : Vector2 = Vector2(5,5)
@export var melee_hitbox_offset : Vector2 = Vector2(0,0)
@export var melee_hitbox_delay := 0.0
@export var melee_hitbox_duration := 0.2

func get_damage():
return base_damage * level

func add_exp(amount):
exp += amount
calc_level()

func calc_level(): # calc is short for calculator by the way
while (exp >= exp_to_level):
exp -= exp_to_level
level += 1
exp_to_level = level * exp_scaling
print(name+" has leveled up to Level "+str(level))


# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
1 change: 1 addition & 0 deletions Ability/ability.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://cdrbhji2r6eti
18 changes: 18 additions & 0 deletions Ability/ability_logic.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
extends Resource
class_name AbilityLogic


@export var data: AbilityData


# make sure to override this.
func use(user):
pass

func stop_use(user):
pass

func while_use(user, delta: float):
pass


1 change: 1 addition & 0 deletions Ability/ability_logic.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://c14dw11f4rkhi
32 changes: 32 additions & 0 deletions Ability/hitbox.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
extends Area2D


# Called when the node enters the scene tree for the first time.

var damage := 0.0;

func initHitbox(data : AbilityData, user : CharacterBody2D):
damage = data.base_damage

user.add_child(self)

var mouse_pos = get_global_mouse_position()
var direction = (mouse_pos - user.global_position).normalized()

global_position = user.global_position + direction * data.melee_hitbox_offset.length()
rotation = direction.angle()

scale = data.melee_hitbox_size

await get_tree().create_timer(data.melee_hitbox_delay).timeout
connect("body_entered", _on_body_entered)
await get_tree().create_timer(data.melee_hitbox_duration).timeout

queue_free()

func _on_body_entered(body):
if body.has_method("take_damage"):
body.take_damage(damage)



1 change: 1 addition & 0 deletions Ability/hitbox.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://1tluihp70q2r
20 changes: 20 additions & 0 deletions Ability/hitbox.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[gd_scene load_steps=4 format=3 uid="uid://bh8du3opop534"]

[ext_resource type="Script" uid="uid://1tluihp70q2r" path="res://Ability/hitbox.gd" id="1_esvl6"]
[ext_resource type="Texture2D" uid="uid://llcca3vhihbv" path="res://Misc/gallopon.jpg" id="2_lcefl"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_22vse"]

[node name="Hitbox" type="Area2D"]
collision_layer = 16
collision_mask = 8
script = ExtResource("1_esvl6")

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_22vse")

[node name="Sprite2D" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.44705883)
position = Vector2(0, -3.799796e-07)
scale = Vector2(0.07272726, 0.10928961)
texture = ExtResource("2_lcefl")
6 changes: 2 additions & 4 deletions Base/Power_up.tscn
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[gd_scene load_steps=4 format=3 uid="uid://dtn477wyv7hn7"]
[gd_scene load_steps=3 format=3 uid="uid://dtn477wyv7hn7"]

[ext_resource type="Texture2D" uid="uid://e306v7nsc7us" path="res://Projectiles/icon.svg" id="1_ci57c"]
[ext_resource type="Script" path="res://Base/power_up.gd" id="1_g3h1e"]
[ext_resource type="Script" uid="uid://cknqloq6salyv" path="res://Base/power_up.gd" id="1_g3h1e"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_qtu7q"]
size = Vector2(112, 112)
Expand All @@ -15,7 +14,6 @@ metadata/_edit_group_ = true

[node name="Sprite2D" type="Sprite2D" parent="."]
use_parent_material = true
texture = ExtResource("1_ci57c")

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_qtu7q")
Expand Down
60 changes: 60 additions & 0 deletions Enemy/Enemy.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
[gd_scene load_steps=8 format=3 uid="uid://m2spfqyeopd6"]

[ext_resource type="Script" uid="uid://btbo1qgfb7n2n" path="res://Player/health_bar.gd" id="1_3o4wt"]
[ext_resource type="Script" uid="uid://0v8h0wqe0iyt" path="res://Enemy/enemy.gd" id="1_vonkd"]
[ext_resource type="Texture2D" uid="uid://d38wbkf4k45v8" path="res://Enemy/veriglius.jpg" id="2_epr5s"]
[ext_resource type="Resource" uid="uid://dvyc820lqfjrx" path="res://Player/DefaultPlayerCharacter.tres" id="2_vso2s"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_vonkd"]
size = Vector2(10, 12)

[sub_resource type="CircleShape2D" id="CircleShape2D_epr5s"]
radius = 3.0

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vonkd"]
radius = 5.0
height = 12.0

[node name="Enemy" type="CharacterBody2D"]
collision_layer = 8
script = ExtResource("1_vonkd")
character_data = ExtResource("2_vso2s")

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_vonkd")

[node name="AnimationPlayer" type="AnimationPlayer" parent="."]

[node name="Detection" type="Node2D" parent="."]

[node name="Damage" type="Area2D" parent="Detection"]
collision_mask = 2

[node name="DamageHitbox" type="CollisionShape2D" parent="Detection/Damage"]
shape = SubResource("CircleShape2D_epr5s")

[node name="Heal" type="Area2D" parent="Detection"]
collision_mask = 4

[node name="HealHitbox" type="CollisionShape2D" parent="Detection/Heal"]
shape = SubResource("CapsuleShape2D_vonkd")

[node name="HealthBar" type="ProgressBar" parent="."]
offset_left = -7.0
offset_top = 8.0
offset_right = 94.0
offset_bottom = 35.0
scale = Vector2(0.15, 0.15)
script = ExtResource("1_3o4wt")

[node name="Label" type="Label" parent="HealthBar"]
layout_mode = 1
anchors_preset = -1
offset_left = 30.0
offset_top = 30.0
offset_right = 83.0
offset_bottom = 56.0

[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.055, 0.045)
texture = ExtResource("2_epr5s")
32 changes: 32 additions & 0 deletions Enemy/enemy.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
extends CharacterBody2D

@export var character_data : PlayerCharacterData

@onready var healthBar = $HealthBar

@onready var maxHealth : float = character_data.HP


func _ready() -> void:
healthBar.set_health_bar(character_data.HP, maxHealth)

func take_damage(damage:int):
character_data.HP -= damage
if character_data.HP < 0: character_data.HP = 0
healthBar.change_health(-damage)

func take_heal(heal:int):
character_data.HP += heal
healthBar.change_health(heal)

func _on_damage_area_entered(area: Area2D) -> void:
if area.is_in_group("damage"):
take_damage(1)

func _on_heal_area_entered(area: Area2D) -> void:
if area.is_in_group("heal"):
take_heal(1)


func _physics_process(delta: float) -> void:
move_and_slide()
1 change: 1 addition & 0 deletions Enemy/enemy.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://0v8h0wqe0iyt
Binary file added Enemy/veriglius.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions Enemy/veriglius.jpg.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://d38wbkf4k45v8"
path="res://.godot/imported/veriglius.jpg-154c13058ac7c6f47068db0358fc552d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Enemy/veriglius.jpg"
dest_files=["res://.godot/imported/veriglius.jpg-154c13058ac7c6f47068db0358fc552d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
2 changes: 1 addition & 1 deletion Heals/Heart.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://wqcuyddc0728"]
[gd_scene load_steps=3 format=3 uid="uid://wqcuyddc0728"]

[ext_resource type="Texture2D" uid="uid://crh0ru01dofl2" path="res://Misc/Screenshot 2026-04-04 113440.png" id="1_23dhv"]

Expand Down
Loading