added player perks
parent
320949fcb3
commit
c0c7f43613
|
|
@ -20,11 +20,12 @@ const SPELLBOOK_RADIUS: float = 60.0
|
|||
var _spellbook_angle: float = 0.0
|
||||
var _spellbooks: Array = []
|
||||
|
||||
var _icon_knife = preload("res://assets/weapons/knvie.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_knife = preload("res://assets/weapons/knvie.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_shuriken: AtlasTexture
|
||||
var _icon_fireball: AtlasTexture
|
||||
var _icon_player: AtlasTexture
|
||||
|
||||
func _stat(label: String, from: String, to: String) -> String:
|
||||
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.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()
|
||||
dsh.name = "Double Shuriken"
|
||||
dsh.description = "Fire two shurikens at once"
|
||||
|
|
@ -91,6 +96,33 @@ func _ready() -> void:
|
|||
sb.effect = unlock_spellbook
|
||||
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:
|
||||
if throwing_knife_enabled:
|
||||
_knife_timer += delta
|
||||
|
|
@ -225,3 +257,38 @@ func _rebuild_spellbooks() -> void:
|
|||
book.damage = spellbook_damage
|
||||
witch.get_parent().add_child(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 max_xp = 5
|
||||
var level = 1
|
||||
var speed = 200
|
||||
var speed = 60
|
||||
var damage: int = 10
|
||||
var strength = 3
|
||||
var attacks = false
|
||||
|
|
@ -15,13 +15,16 @@ func _physics_process(delta):
|
|||
if attacks == true:
|
||||
return
|
||||
if direction == Vector2.ZERO:
|
||||
animated_sprite_2d.speed_scale = 1.0
|
||||
animated_sprite_2d.play("idle")
|
||||
elif abs(direction.x) >= abs(direction.y):
|
||||
animated_sprite_2d.speed_scale = speed / 60.0
|
||||
if direction.x < 0:
|
||||
animated_sprite_2d.play("walk_left")
|
||||
else:
|
||||
animated_sprite_2d.play("walk_right")
|
||||
else:
|
||||
animated_sprite_2d.speed_scale = speed / 60.0
|
||||
if direction.y < 0:
|
||||
animated_sprite_2d.play("walk_up")
|
||||
else:
|
||||
|
|
|
|||
Loading…
Reference in New Issue