added player perks
parent
320949fcb3
commit
c0c7f43613
|
|
@ -20,11 +20,12 @@ const SPELLBOOK_RADIUS: float = 60.0
|
||||||
var _spellbook_angle: float = 0.0
|
var _spellbook_angle: float = 0.0
|
||||||
var _spellbooks: Array = []
|
var _spellbooks: Array = []
|
||||||
|
|
||||||
var _icon_knife = preload("res://assets/weapons/knvie.png")
|
var _icon_knife = preload("res://assets/weapons/knvie.png")
|
||||||
var _icon_book = preload("res://assets/books_set_2/books_pentagram.png")
|
var _icon_book = preload("res://assets/books_set_2/books_pentagram.png")
|
||||||
var _icon_brew = preload("res://assets/books_set_2/books_health_potion.png")
|
var _icon_brew = preload("res://assets/books_set_2/books_health_potion.png")
|
||||||
var _icon_shuriken: AtlasTexture
|
var _icon_shuriken: AtlasTexture
|
||||||
var _icon_fireball: AtlasTexture
|
var _icon_fireball: AtlasTexture
|
||||||
|
var _icon_player: AtlasTexture
|
||||||
|
|
||||||
func _stat(label: String, from: String, to: String) -> String:
|
func _stat(label: String, from: String, to: String) -> String:
|
||||||
return "[color=#aaaaaa]" + label + "[/color]\n[color=#888888]" + from + "[/color] → [color=#77dd77]" + to + "[/color]"
|
return "[color=#aaaaaa]" + label + "[/color]\n[color=#888888]" + from + "[/color] → [color=#77dd77]" + to + "[/color]"
|
||||||
|
|
@ -46,6 +47,10 @@ func _ready() -> void:
|
||||||
_icon_fireball.atlas = preload("res://assets/Fire Pixel Bullet 16x16/All_Fire_Bullet_Pixel_16x16_00.png")
|
_icon_fireball.atlas = preload("res://assets/Fire Pixel Bullet 16x16/All_Fire_Bullet_Pixel_16x16_00.png")
|
||||||
_icon_fireball.region = Rect2(576, 1, 16, 16)
|
_icon_fireball.region = Rect2(576, 1, 16, 16)
|
||||||
|
|
||||||
|
_icon_player = AtlasTexture.new()
|
||||||
|
_icon_player.atlas = preload("res://assets/Swordsman_lvl1/Without_shadow/Swordsman_lvl1_Idle_without_shadow.png")
|
||||||
|
_icon_player.region = Rect2(0, 0, 64, 64)
|
||||||
|
|
||||||
var dsh = Perk.new()
|
var dsh = Perk.new()
|
||||||
dsh.name = "Double Shuriken"
|
dsh.name = "Double Shuriken"
|
||||||
dsh.description = "Fire two shurikens at once"
|
dsh.description = "Fire two shurikens at once"
|
||||||
|
|
@ -91,6 +96,33 @@ func _ready() -> void:
|
||||||
sb.effect = unlock_spellbook
|
sb.effect = unlock_spellbook
|
||||||
available_perks.append(sb)
|
available_perks.append(sb)
|
||||||
|
|
||||||
|
var sf = Perk.new()
|
||||||
|
sf.name = "Swift Feet"
|
||||||
|
sf.description = "Move faster"
|
||||||
|
sf.stats = _stat("Speed", str(player.speed), str(player.speed + 10))
|
||||||
|
sf.spell = SpellLibrary.NONE
|
||||||
|
sf.icon = _icon_player
|
||||||
|
sf.effect = swift_feet
|
||||||
|
available_perks.append(sf)
|
||||||
|
|
||||||
|
var bh = Perk.new()
|
||||||
|
bh.name = "Battle Hardened"
|
||||||
|
bh.description = "Hit harder"
|
||||||
|
bh.stats = _stat("Strength", str(player.strength), str(player.strength + 2))
|
||||||
|
bh.spell = SpellLibrary.NONE
|
||||||
|
bh.icon = _icon_player
|
||||||
|
bh.effect = battle_hardened
|
||||||
|
available_perks.append(bh)
|
||||||
|
|
||||||
|
var ss = Perk.new()
|
||||||
|
ss.name = "Swift Strike"
|
||||||
|
ss.description = "Attack more often"
|
||||||
|
ss.stats = _stat("Attack CD", "%.2fs" % player.get_node("AttackSpeed").wait_time, "%.2fs" % maxf(0.2, player.get_node("AttackSpeed").wait_time - 0.1))
|
||||||
|
ss.spell = SpellLibrary.NONE
|
||||||
|
ss.icon = _icon_player
|
||||||
|
ss.effect = swift_strike
|
||||||
|
available_perks.append(ss)
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if throwing_knife_enabled:
|
if throwing_knife_enabled:
|
||||||
_knife_timer += delta
|
_knife_timer += delta
|
||||||
|
|
@ -225,3 +257,38 @@ func _rebuild_spellbooks() -> void:
|
||||||
book.damage = spellbook_damage
|
book.damage = spellbook_damage
|
||||||
witch.get_parent().add_child(book)
|
witch.get_parent().add_child(book)
|
||||||
_spellbooks.append(book)
|
_spellbooks.append(book)
|
||||||
|
|
||||||
|
func swift_feet() -> void:
|
||||||
|
player.speed += 10
|
||||||
|
var sf = Perk.new()
|
||||||
|
sf.name = "Swift Feet"
|
||||||
|
sf.description = "Move faster"
|
||||||
|
sf.stats = _stat("Speed", str(player.speed), str(player.speed + 10))
|
||||||
|
sf.spell = SpellLibrary.NONE
|
||||||
|
sf.icon = _icon_player
|
||||||
|
sf.effect = swift_feet
|
||||||
|
available_perks.append(sf)
|
||||||
|
|
||||||
|
func battle_hardened() -> void:
|
||||||
|
player.strength += 2
|
||||||
|
var bh = Perk.new()
|
||||||
|
bh.name = "Battle Hardened"
|
||||||
|
bh.description = "Hit harder"
|
||||||
|
bh.stats = _stat("Strength", str(player.strength), str(player.strength + 2))
|
||||||
|
bh.spell = SpellLibrary.NONE
|
||||||
|
bh.icon = _icon_player
|
||||||
|
bh.effect = battle_hardened
|
||||||
|
available_perks.append(bh)
|
||||||
|
|
||||||
|
func swift_strike() -> void:
|
||||||
|
var timer = player.get_node("AttackSpeed")
|
||||||
|
timer.wait_time = maxf(0.2, timer.wait_time - 0.1)
|
||||||
|
if timer.wait_time > 0.2:
|
||||||
|
var ss = Perk.new()
|
||||||
|
ss.name = "Swift Strike"
|
||||||
|
ss.description = "Attack more often"
|
||||||
|
ss.stats = _stat("Attack CD", "%.2fs" % timer.wait_time, "%.2fs" % maxf(0.2, timer.wait_time - 0.1))
|
||||||
|
ss.spell = SpellLibrary.NONE
|
||||||
|
ss.icon = _icon_player
|
||||||
|
ss.effect = swift_strike
|
||||||
|
available_perks.append(ss)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ extends CharacterBody2D
|
||||||
var current_xp = 0
|
var current_xp = 0
|
||||||
var max_xp = 5
|
var max_xp = 5
|
||||||
var level = 1
|
var level = 1
|
||||||
var speed = 200
|
var speed = 60
|
||||||
var damage: int = 10
|
var damage: int = 10
|
||||||
var strength = 3
|
var strength = 3
|
||||||
var attacks = false
|
var attacks = false
|
||||||
|
|
@ -15,13 +15,16 @@ func _physics_process(delta):
|
||||||
if attacks == true:
|
if attacks == true:
|
||||||
return
|
return
|
||||||
if direction == Vector2.ZERO:
|
if direction == Vector2.ZERO:
|
||||||
|
animated_sprite_2d.speed_scale = 1.0
|
||||||
animated_sprite_2d.play("idle")
|
animated_sprite_2d.play("idle")
|
||||||
elif abs(direction.x) >= abs(direction.y):
|
elif abs(direction.x) >= abs(direction.y):
|
||||||
|
animated_sprite_2d.speed_scale = speed / 60.0
|
||||||
if direction.x < 0:
|
if direction.x < 0:
|
||||||
animated_sprite_2d.play("walk_left")
|
animated_sprite_2d.play("walk_left")
|
||||||
else:
|
else:
|
||||||
animated_sprite_2d.play("walk_right")
|
animated_sprite_2d.play("walk_right")
|
||||||
else:
|
else:
|
||||||
|
animated_sprite_2d.speed_scale = speed / 60.0
|
||||||
if direction.y < 0:
|
if direction.y < 0:
|
||||||
animated_sprite_2d.play("walk_up")
|
animated_sprite_2d.play("walk_up")
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue