commit d61095fee0a9f1a7c74bddd95bd467dea767fb23 Author: RatixForever Date: Sat Oct 15 22:19:45 2022 -0300 Initial stage of Dawnbringer_Project diff --git a/.import/.gdignore b/.import/.gdignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.import/.gdignore @@ -0,0 +1 @@ + diff --git a/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.md5 b/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.md5 new file mode 100644 index 0000000..7e2575a --- /dev/null +++ b/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.md5 @@ -0,0 +1,3 @@ +source_md5="d029fd9d2605b60714f6a5177b0c4e34" +dest_md5="d25dfc26c75abb61aaac2c7dfcf694bd" + diff --git a/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.stex b/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.stex new file mode 100644 index 0000000..500d734 Binary files /dev/null and b/.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.stex differ diff --git a/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.md5 b/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.md5 new file mode 100644 index 0000000..d0cb590 --- /dev/null +++ b/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.md5 @@ -0,0 +1,3 @@ +source_md5="85c9b940ef6c220d1aa4fc2e387cbd81" +dest_md5="75eee8eeff8fcbe9a7ece88bd78e7de3" + diff --git a/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.stex b/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.stex new file mode 100644 index 0000000..d2eab9d Binary files /dev/null and b/.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.stex differ diff --git a/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.md5 b/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.md5 new file mode 100644 index 0000000..379199b --- /dev/null +++ b/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.md5 @@ -0,0 +1,3 @@ +source_md5="9c66cda9e768ed3f51df3cf13f32f9aa" +dest_md5="95e484abf727618976c8dfbd276f88b3" + diff --git a/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.stex b/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.stex new file mode 100644 index 0000000..47360ee Binary files /dev/null and b/.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.stex differ diff --git a/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.md5 b/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.md5 new file mode 100644 index 0000000..837c851 --- /dev/null +++ b/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.md5 @@ -0,0 +1,3 @@ +source_md5="0a7459970a5a0798c5f7a969784a17ad" +dest_md5="9e3964a76d12677d34ebe31438a4ea28" + diff --git a/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.stex b/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.stex new file mode 100644 index 0000000..82705e6 Binary files /dev/null and b/.import/Varinha Velha.png-13e6f9fdda6a72fa567cd05e6caffaf0.stex differ diff --git a/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.md5 b/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.md5 new file mode 100644 index 0000000..837c851 --- /dev/null +++ b/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.md5 @@ -0,0 +1,3 @@ +source_md5="0a7459970a5a0798c5f7a969784a17ad" +dest_md5="9e3964a76d12677d34ebe31438a4ea28" + diff --git a/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.stex b/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.stex new file mode 100644 index 0000000..82705e6 Binary files /dev/null and b/.import/Varinha Velha.png-155d804458ee78465a422745fcca5691.stex differ diff --git a/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.md5 b/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.md5 new file mode 100644 index 0000000..837c851 --- /dev/null +++ b/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.md5 @@ -0,0 +1,3 @@ +source_md5="0a7459970a5a0798c5f7a969784a17ad" +dest_md5="9e3964a76d12677d34ebe31438a4ea28" + diff --git a/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.stex b/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.stex new file mode 100644 index 0000000..82705e6 Binary files /dev/null and b/.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.stex differ diff --git a/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.md5 b/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.md5 new file mode 100644 index 0000000..837c851 --- /dev/null +++ b/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.md5 @@ -0,0 +1,3 @@ +source_md5="0a7459970a5a0798c5f7a969784a17ad" +dest_md5="9e3964a76d12677d34ebe31438a4ea28" + diff --git a/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.stex b/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.stex new file mode 100644 index 0000000..82705e6 Binary files /dev/null and b/.import/Varinha Velha.png-f8f8212bee494a6267663db3ae0aa07a.stex differ diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..5328bc7 --- /dev/null +++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="47313fa4c47a9963fddd764e1ec6e4a8" +dest_md5="26ea799ea0a3da9e753b3ebe822e0570" + diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000..71f6913 Binary files /dev/null and b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex differ diff --git a/Assets/Actor/Character.gd b/Assets/Actor/Character.gd new file mode 100644 index 0000000..5e94584 --- /dev/null +++ b/Assets/Actor/Character.gd @@ -0,0 +1,11 @@ +tool +extends Node + +class_name character + +onready var stats = $Stats + +export var base_character : Resource + +func _ready(): + stats.initialize(base_character); diff --git a/Assets/Actor/Character.tscn b/Assets/Actor/Character.tscn new file mode 100644 index 0000000..6f9054d --- /dev/null +++ b/Assets/Actor/Character.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Assets/Actor/Character.gd" type="Script" id=1] +[ext_resource path="res://Assets/Actor/Stats.gd" type="Script" id=2] +[ext_resource path="res://Assets/Class/Mage.tres" type="Resource" id=3] + +[node name="Character" type="Node"] +script = ExtResource( 1 ) +base_character = ExtResource( 3 ) + +[node name="Stats" type="Node" parent="."] +script = ExtResource( 2 ) + +[node name="Regen" type="Timer" parent="."] +autostart = true + +[connection signal="timeout" from="Regen" to="Stats" method="_on_Regen_timeout"] diff --git a/Assets/Actor/Player.gd b/Assets/Actor/Player.gd new file mode 100644 index 0000000..408f46d --- /dev/null +++ b/Assets/Actor/Player.gd @@ -0,0 +1,31 @@ +extends KinematicBody2D + +onready var weapon = $Weapon +onready var player_sprite = $PlayerSprite +onready var walk_direction = $WalkDirection + +var velocity_multiplier := 1.0 + +func _ready(): + GlobalSignals.connect("velocity_change", self, "get_velocity_multiplier") + +func _physics_process(delta): + var movement_direction := Vector2( + Input.get_action_raw_strength("right") - Input.get_action_raw_strength("left"), + Input.get_action_raw_strength("down") - Input.get_action_raw_strength("up")).normalized() + if movement_direction.length() == 0: + player_sprite.play("iddle") + else: + player_sprite.play("run") + if movement_direction.x < 0: + player_sprite.flip_h = true + else: + player_sprite.flip_h = false + if Input.is_action_pressed("shoot"): + weapon.shoot() + move_and_slide(movement_direction * 32 * velocity_multiplier) + walk_direction.look_at(movement_direction + global_position) + +func get_velocity_multiplier(multiplier:float): + velocity_multiplier = multiplier + print(multiplier) diff --git a/Assets/Actor/Player.tscn b/Assets/Actor/Player.tscn new file mode 100644 index 0000000..962c55d --- /dev/null +++ b/Assets/Actor/Player.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=17 format=2] + +[ext_resource path="res://Assets/Actor/Player.gd" type="Script" id=1] +[ext_resource path="res://Assets/Actor/Character.tscn" type="PackedScene" id=2] +[ext_resource path="res://Assets/Sprites/Mago2 andando.png" type="Texture" id=3] +[ext_resource path="res://Assets/Actor/Weapon.tscn" type="PackedScene" id=4] +[ext_resource path="res://icon.png" type="Texture" id=5] +[ext_resource path="res://Assets/Sprites/Mago2iddle.png" type="Texture" id=6] + +[sub_resource type="AtlasTexture" id=2] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=3] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 320, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=4] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 640, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=5] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 960, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=6] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 1280, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=7] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 1600, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=8] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 1920, 0, 320, 320 ) + +[sub_resource type="AtlasTexture" id=9] +flags = 4 +atlas = ExtResource( 3 ) +region = Rect2( 2240, 0, 320, 320 ) + +[sub_resource type="SpriteFrames" id=10] +animations = [ { +"frames": [ ExtResource( 6 ) ], +"loop": true, +"name": "iddle", +"speed": 5.0 +}, { +"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ], +"loop": true, +"name": "run", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=1] + +[node name="Player" type="KinematicBody2D"] +position = Vector2( 362, 174 ) +script = ExtResource( 1 ) + +[node name="PlayerSprite" type="AnimatedSprite" parent="."] +scale = Vector2( 0.4, 0.4 ) +frames = SubResource( 10 ) +animation = "iddle" +speed_scale = 2.0 +playing = true + +[node name="WalkDirection" type="Sprite" parent="."] +scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 5 ) +offset = Vector2( 90, 0 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="Character" parent="." instance=ExtResource( 2 )] + +[node name="Weapon" parent="." instance=ExtResource( 4 )] diff --git a/Assets/Actor/Stats.gd b/Assets/Actor/Stats.gd new file mode 100644 index 0000000..b34a08a --- /dev/null +++ b/Assets/Actor/Stats.gd @@ -0,0 +1,177 @@ +extends Node + +class_name CharacterStats + +var current_level:int +var current_health:float +var current_mana:float +var max_health:int setget set_max_health +var max_mana:int setget set_max_mana +var attack:int +var defense:int +var dexterity:int +var speed:int +var vitality:int +var wisdown:int + +var health_min_scale:int +var mana_min_scale:int +var attack_min_scale:int +var defense_min_scale:int +var dexterity_min_scale:int +var speed_min_scale:int +var vitality_min_scale:int +var wisdown_min_scale:int + +var health_max_scale:int +var mana_max_scale:int +var attack_max_scale:int +var defense_max_scale:int +var dexterity_max_scale:int +var speed_max_scale:int +var vitality_max_scale:int +var wisdown_max_scale:int + +var health_bonus_scale:int +var mana_bonus_scale:int +var attack_bonus_scale:int +var defense_bonus_scale:int +var dexterity_bonus_scale:int +var speed_bonus_scale:int +var vitality_bonus_scale:int +var wisdown_bonus_scale:int + +var current_xp:int +var next_level_xp:int +var xp_scale:int = 100 + +var regen_health:float +var regen_mana:float +var attack_multiplier:float +var attack_speed:float +var velocity:float + +func initialize(stats: CharacterBaseStats): + max_health = stats.health + max_mana = stats.mana + attack = stats.attack + defense = stats.defense + dexterity = stats.dexterity + speed = stats.speed + vitality = stats.vitality + wisdown = stats.wisdown + health_min_scale = stats.health_min_scale + mana_min_scale = stats.mana_min_scale + attack_min_scale = stats.attack_min_scale + defense_min_scale = stats.defense_min_scale + dexterity_min_scale = stats.dexterity_min_scale + speed_min_scale = stats.speed_min_scale + vitality_min_scale = stats.vitality_min_scale + wisdown_min_scale = stats.wisdown_min_scale + health_max_scale = stats.health_max_scale + mana_max_scale = stats.mana_max_scale + attack_max_scale = stats.attack_max_scale + defense_max_scale = stats.defense_max_scale + dexterity_max_scale = stats.dexterity_max_scale + speed_max_scale = stats.speed_max_scale + vitality_max_scale = stats.vitality_max_scale + wisdown_max_scale = stats.wisdown_max_scale + health_bonus_scale = stats.health_bonus_scale + mana_bonus_scale = stats.mana_bonus_scale + attack_bonus_scale = stats.attack_bonus_scale + defense_bonus_scale = stats.defense_bonus_scale + dexterity_bonus_scale = stats.dexterity_bonus_scale + speed_bonus_scale = stats.speed_bonus_scale + vitality_bonus_scale = stats.vitality_bonus_scale + wisdown_bonus_scale = stats.wisdown_bonus_scale + yield(get_tree().create_timer(0.1), "timeout") + stats_change() + +func gain_experience(amount: int): + current_xp = amount + while current_xp >= next_level_xp: + current_xp -= next_level_xp + level_up() + +func level_up(): + if (current_level % 5) == 0: + max_health += health_bonus_scale + max_mana += mana_bonus_scale + attack += attack_bonus_scale + defense += defense_bonus_scale + dexterity += dexterity_bonus_scale + speed += speed_bonus_scale + vitality += vitality_bonus_scale + wisdown += wisdown_bonus_scale + else: + max_health += int(rand_range(float(health_min_scale), float(health_max_scale))) + max_mana += int(rand_range(float(mana_min_scale), float(mana_max_scale))) + attack += int(rand_range(float(attack_min_scale), float(attack_max_scale))) + defense += int(rand_range(float(defense_min_scale), float(defense_max_scale))) + dexterity += int(rand_range(float(dexterity_min_scale), float(dexterity_max_scale))) + speed += int(rand_range(float(speed_min_scale), float(speed_max_scale))) + vitality += int(rand_range(float(vitality_min_scale), float(vitality_max_scale))) + wisdown += int(rand_range(float(wisdown_min_scale), float(wisdown_max_scale))) + stats_change() + +func stats_change(): + if current_level >= 20: + return + current_level += 1 + next_level_xp += xp_scale + current_health = max_health + current_mana = max_mana + regen_health = 0.2 + 10 * (float(vitality) / 50) + regen_mana = 0.2 + 5 * (float(wisdown) / 50) + attack_multiplier = 0.75 + 1.5 *(float(attack) / 70) + attack_speed = 1/(1 + 5 * (float(dexterity) / 70)) + velocity = 2 + 10 * (float(speed) / 50) + GlobalSignals.emit_signal("health_changed", current_health) + GlobalSignals.emit_signal("mana_changed", current_mana) + GlobalSignals.emit_signal("attack_change", attack_multiplier) + GlobalSignals.emit_signal("dexterity_change", attack_speed) + GlobalSignals.emit_signal("velocity_change", velocity) + +func take_damage(amount: float): + var damage + var percent_damage := amount * 0.1 + if (amount - defense) >= percent_damage: + damage = amount - defense + current_health -= damage + else: + damage = percent_damage + current_health -= damage + current_health = clamp(current_health, 0, max_health) + GlobalSignals.emit_signal("health_changed", current_health) + GlobalSignals.emit_signal("damage_receive", damage) + if current_health == 0: + GlobalSignals.emit_signal("on_death") + +func heal(amount: float): + current_health += amount + current_health = clamp(current_health, 0, max_health) + GlobalSignals.emit_signal("health_changed", current_health) + GlobalSignals.emit_signal("health_recover", amount) + +func mana_heal(amount: float): + current_mana += amount + current_mana = clamp(current_mana, 0, max_mana) + GlobalSignals.emit_signal("health_changed", current_mana) + GlobalSignals.emit_signal("mana_recover", amount) + +func regen(): + current_health += regen_health + current_mana += regen_mana + current_health = clamp(current_health, 0, max_health) + current_mana = clamp(current_mana, 0, max_mana) + GlobalSignals.emit_signal("health_changed", current_health) + GlobalSignals.emit_signal("mana_changed", current_mana) + +func set_max_health(value: int): + max_health = max(0, value) + +func set_max_mana(value: int): + max_mana = max(0, value) + +func _on_Regen_timeout(): + regen() diff --git a/Assets/Actor/Weapon.gd b/Assets/Actor/Weapon.gd new file mode 100644 index 0000000..1b3ac07 --- /dev/null +++ b/Assets/Actor/Weapon.gd @@ -0,0 +1,27 @@ +extends Node2D + +class_name Weapon + +export (PackedScene) var Bullet + +onready var fire_point = $FirePoint +onready var fire_direction = $FireDirection +onready var attack_cooldown = $AttackCooldown + +func _ready(): + GlobalSignals.connect("dexterity_change", self, "get_attack_cooldown") + +func _process(delta): + look_at(get_global_mouse_position()) + +func shoot(): + if !attack_cooldown.is_stopped() or Bullet == null: + return + var bullet_instance = Bullet.instance() + var direction = (fire_direction.global_position - fire_point.global_position).normalized() + GlobalSignals.emit_signal("bullet_fired", bullet_instance, fire_point.global_position, direction) + attack_cooldown.start() + +func get_attack_cooldown(time:float): + attack_cooldown.wait_time = time + print(time) diff --git a/Assets/Actor/Weapon.tscn b/Assets/Actor/Weapon.tscn new file mode 100644 index 0000000..ef7ad96 --- /dev/null +++ b/Assets/Actor/Weapon.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Assets/Sprites/Varinha Velha.png" type="Texture" id=1] +[ext_resource path="res://Assets/Actor/Weapon.gd" type="Script" id=2] + +[node name="Weapon" type="Node2D"] +scale = Vector2( 0.4, 0.4 ) +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 135, 0 ) +rotation = 0.785398 +texture = ExtResource( 1 ) + +[node name="FirePoint" type="Position2D" parent="."] +position = Vector2( 240, -7.5 ) + +[node name="FireDirection" type="Position2D" parent="."] +position = Vector2( 250, -7.5 ) + +[node name="AttackCooldown" type="Timer" parent="."] +one_shot = true diff --git a/Assets/Class/CharacteBaseStats.gd b/Assets/Class/CharacteBaseStats.gd new file mode 100644 index 0000000..c7400c3 --- /dev/null +++ b/Assets/Class/CharacteBaseStats.gd @@ -0,0 +1,50 @@ +extends Resource + +class_name CharacterBaseStats + +export var class_type := "" + +export var health:int +export var mana:int +export var attack:int +export var defense:int +export var dexterity:int +export var speed:int +export var vitality:int +export var wisdown:int + +export var max_health:int +export var max_mana:int +export var max_attack:int +export var max_defense:int +export var max_dexterity:int +export var max_speed:int +export var max_vitality:int +export var max_wisdown:int + +export var health_min_scale:int +export var mana_min_scale:int +export var attack_min_scale:int +export var defense_min_scale:int +export var dexterity_min_scale:int +export var speed_min_scale:int +export var vitality_min_scale:int +export var wisdown_min_scale:int + +export var health_max_scale:int +export var mana_max_scale:int +export var attack_max_scale:int +export var defense_max_scale:int +export var dexterity_max_scale:int +export var speed_max_scale:int +export var vitality_max_scale:int +export var wisdown_max_scale:int + +export var health_bonus_scale:int +export var mana_bonus_scale:int +export var attack_bonus_scale:int +export var defense_bonus_scale:int +export var dexterity_bonus_scale:int +export var speed_bonus_scale:int +export var vitality_bonus_scale:int +export var wisdown_bonus_scale:int diff --git a/Assets/Class/Mage.tres b/Assets/Class/Mage.tres new file mode 100644 index 0000000..b926f3e --- /dev/null +++ b/Assets/Class/Mage.tres @@ -0,0 +1,47 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://Assets/Class/CharacteBaseStats.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +class_type = "Mage" +health = 200 +mana = 250 +attack = 15 +defense = 0 +dexterity = 15 +speed = 15 +vitality = 5 +wisdown = 20 +max_health = 625 +max_mana = 600 +max_attack = 65 +max_defense = 20 +max_dexterity = 65 +max_speed = 55 +max_vitality = 40 +max_wisdown = 75 +health_min_scale = 14 +mana_min_scale = 8 +attack_min_scale = 1 +defense_min_scale = 0 +dexterity_min_scale = 1 +speed_min_scale = 0 +vitality_min_scale = 1 +wisdown_min_scale = 1 +health_max_scale = 16 +mana_max_scale = 12 +attack_max_scale = 2 +defense_max_scale = 0 +dexterity_max_scale = 2 +speed_max_scale = 1 +vitality_max_scale = 1 +wisdown_max_scale = 2 +health_bonus_scale = 18 +mana_bonus_scale = 25 +attack_bonus_scale = 3 +defense_bonus_scale = 0 +dexterity_bonus_scale = 3 +speed_bonus_scale = 3 +vitality_bonus_scale = 2 +wisdown_bonus_scale = 3 diff --git a/Assets/Class/Paladin.tres b/Assets/Class/Paladin.tres new file mode 100644 index 0000000..489c4ce --- /dev/null +++ b/Assets/Class/Paladin.tres @@ -0,0 +1,47 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://Assets/Class/CharacteBaseStats.gd" type="Script" id=1] + +[resource] +script = ExtResource( 1 ) +class_type = "" +health = 0 +mana = 0 +attack = 0 +defense = 0 +dexterity = 0 +speed = 0 +vitality = 0 +wisdown = 0 +max_health = 0 +max_mana = 0 +max_attack = 0 +max_defense = 0 +max_dexterity = 0 +max_speed = 0 +max_vitality = 0 +max_wisdown = 0 +health_min_scale = 0 +mana_min_scale = 0 +attack_min_scale = 0 +defense_min_scale = 0 +dexterity_min_scale = 0 +speed_min_scale = 0 +vitality_min_scale = 0 +wisdown_min_scale = 0 +health_max_scale = 0 +mana_max_scale = 0 +attack_max_scale = 0 +defense_max_scale = 0 +dexterity_max_scale = 0 +speed_max_scale = 0 +vitality_max_scale = 0 +wisdown_max_scale = 0 +health_bonus_scale = 0 +mana_bonus_scale = 0 +attack_bonus_scale = 0 +defense_bonus_scale = 0 +dexterity_bonus_scale = 0 +speed_bonus_scale = 0 +vitality_bonus_scale = 0 +wisdown_bonus_scale = 0 diff --git a/Assets/Globals/GlobalSignals.gd b/Assets/Globals/GlobalSignals.gd new file mode 100644 index 0000000..e9825b6 --- /dev/null +++ b/Assets/Globals/GlobalSignals.gd @@ -0,0 +1,12 @@ +extends Node + +signal bullet_fired() +signal health_changed(new_health) +signal mana_changed(new_mana) +signal damage_receive(new_damage) +signal health_recover(new_health_value) +signal mana_recover(new_mana_value) +signal attack_change(new_attack) +signal dexterity_change(new_dexterity) +signal velocity_change(new_velocity) +signal on_death() diff --git a/Assets/Sprites/Mago2 andando.gif b/Assets/Sprites/Mago2 andando.gif new file mode 100644 index 0000000..e624bcc Binary files /dev/null and b/Assets/Sprites/Mago2 andando.gif differ diff --git a/Assets/Sprites/Mago2 andando.png b/Assets/Sprites/Mago2 andando.png new file mode 100644 index 0000000..f8a17b2 Binary files /dev/null and b/Assets/Sprites/Mago2 andando.png differ diff --git a/Assets/Sprites/Mago2 andando.png.import b/Assets/Sprites/Mago2 andando.png.import new file mode 100644 index 0000000..09b00e1 --- /dev/null +++ b/Assets/Sprites/Mago2 andando.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Mago2 andando.png" +dest_files=[ "res://.import/Mago2 andando.png-e184d42bf0c229abc16ee645997b3b45.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Sprites/Mago2.png b/Assets/Sprites/Mago2.png new file mode 100644 index 0000000..bbe1d4a Binary files /dev/null and b/Assets/Sprites/Mago2.png differ diff --git a/Assets/Sprites/Mago2.png.import b/Assets/Sprites/Mago2.png.import new file mode 100644 index 0000000..2d417c6 --- /dev/null +++ b/Assets/Sprites/Mago2.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Mago2.png" +dest_files=[ "res://.import/Mago2.png-580afc38ef48b4a8981d4ee9071b9422.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Sprites/Mago2iddle.png b/Assets/Sprites/Mago2iddle.png new file mode 100644 index 0000000..e365bc3 Binary files /dev/null and b/Assets/Sprites/Mago2iddle.png differ diff --git a/Assets/Sprites/Mago2iddle.png.import b/Assets/Sprites/Mago2iddle.png.import new file mode 100644 index 0000000..5c60901 --- /dev/null +++ b/Assets/Sprites/Mago2iddle.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Mago2iddle.png" +dest_files=[ "res://.import/Mago2iddle.png-485e80cc6ca2d1075cb9bd7c63dccae5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Sprites/Varinha Velha.png b/Assets/Sprites/Varinha Velha.png new file mode 100644 index 0000000..e1dca83 Binary files /dev/null and b/Assets/Sprites/Varinha Velha.png differ diff --git a/Assets/Sprites/Varinha Velha.png.import b/Assets/Sprites/Varinha Velha.png.import new file mode 100644 index 0000000..ef0c2e2 --- /dev/null +++ b/Assets/Sprites/Varinha Velha.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Varinha Velha.png" +dest_files=[ "res://.import/Varinha Velha.png-65312544ce66a98e172c08699a5753cf.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..2958be9 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,248 @@ +[preset.0] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +script_export_mode=1 +script_encryption_key="" + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +custom_build/use_custom_build=false +custom_build/export_format=0 +custom_build/min_sdk="" +custom_build/target_sdk="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +keystore/debug="" +keystore/debug_user="" +keystore/debug_password="" +keystore/release="" +keystore/release_user="" +keystore/release_password="" +one_click_deploy/clear_previous_install=false +version/code=1 +version/name="1.0" +package/unique_name="org.godotengine.$genname" +package/name="" +package/signed=true +package/classify_as_game=true +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +xr_features/hand_tracking=0 +xr_features/hand_tracking_frequency=0 +xr_features/passthrough=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=false +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PoolStringArray( ) +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +binary_format/64_bits=true +binary_format/embed_pck=false +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +texture_format/no_bptc_fallbacks=true +codesign/enable=false +codesign/identity_type=0 +codesign/identity="" +codesign/password="" +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PoolStringArray( ) +application/modify_resources=true +application/icon="" +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..0913140 --- /dev/null +++ b/project.godot @@ -0,0 +1,86 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "Resource", +"class": "CharacterBaseStats", +"language": "GDScript", +"path": "res://Assets/Class/CharacteBaseStats.gd" +}, { +"base": "Node", +"class": "CharacterStats", +"language": "GDScript", +"path": "res://Assets/Actor/Stats.gd" +}, { +"base": "Node2D", +"class": "Weapon", +"language": "GDScript", +"path": "res://Assets/Actor/Weapon.gd" +}, { +"base": "Node", +"class": "character", +"language": "GDScript", +"path": "res://Assets/Actor/Character.gd" +} ] +_global_script_class_icons={ +"CharacterBaseStats": "", +"CharacterStats": "", +"Weapon": "", +"character": "" +} + +[application] + +config/name="Dawnbringer" +config/icon="res://icon.png" + +[autoload] + +GlobalSignals="*res://Assets/Globals/GlobalSignals.gd" + +[gui] + +common/drop_mouse_on_gui_input_disabled=true + +[input] + +up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":87,"unicode":0,"echo":false,"script":null) + ] +} +down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":83,"unicode":0,"echo":false,"script":null) + ] +} +left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":65,"unicode":0,"echo":false,"script":null) + ] +} +right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":68,"unicode":0,"echo":false,"script":null) + ] +} +shoot={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_environment="res://default_env.tres"