Make a new Character class which both the enemy and player share
This commit is contained in:
parent
3ad8e574dd
commit
f2fad3bb0e
37
Characters/Character.gd
Normal file
37
Characters/Character.gd
Normal file
@ -0,0 +1,37 @@
|
||||
extends Node2D
|
||||
class_name Character
|
||||
|
||||
export var base_max_health : int = 20
|
||||
export (int, 1, 5) var level : int = 1 setget level_change
|
||||
|
||||
var health
|
||||
|
||||
|
||||
var map_position : Vector2 = Vector2.ZERO
|
||||
onready var target_position : Vector2 = position
|
||||
var moving : bool = false
|
||||
|
||||
|
||||
func level_change(new_level):
|
||||
# when leveing up restore health
|
||||
health = base_max_health * pow(level, 1.5)
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
|
||||
# If the 2 positions are close enough, then not moving
|
||||
moving = false if target_position.round() == position.round() else true
|
||||
|
||||
if not moving: return
|
||||
|
||||
#TODO: Replace with tween magic
|
||||
position += (target_position - position)/2.5
|
||||
|
||||
func take_damage(damage):
|
||||
health -= damage
|
||||
if health <= 0:
|
||||
die()
|
||||
|
||||
func die():
|
||||
#Animation here
|
||||
queue_free()
|
@ -1,16 +1 @@
|
||||
extends Node2D
|
||||
|
||||
export var map_position : Vector2 = Vector2.ZERO
|
||||
|
||||
onready var target_position : Vector2 = position
|
||||
var moving : bool = false
|
||||
|
||||
func _physics_process(delta):
|
||||
|
||||
# If the 2 positions are close enough, then not moving
|
||||
moving = false if target_position.round() == position.round() else true
|
||||
|
||||
if not moving: return
|
||||
|
||||
#TODO: Replace with tween magic
|
||||
position += (target_position - position)/2.5
|
||||
extends Character
|
||||
|
@ -1,16 +1 @@
|
||||
extends Node2D
|
||||
|
||||
export var map_position : Vector2 = Vector2.ZERO
|
||||
|
||||
onready var target_position : Vector2 = position
|
||||
var moving : bool = false
|
||||
|
||||
func _physics_process(delta):
|
||||
|
||||
# If the 2 positions are close enough, then not moving
|
||||
moving = false if target_position.round() == position.round() else true
|
||||
|
||||
if not moving: return
|
||||
|
||||
#TODO: Replace with tween magic
|
||||
position += (target_position - position)/2.5
|
||||
extends Character
|
||||
|
@ -13,9 +13,15 @@ _global_script_classes=[ {
|
||||
"class": "CardResource",
|
||||
"language": "GDScript",
|
||||
"path": "res://Assets/CardDB/CardBD.gd"
|
||||
}, {
|
||||
"base": "Node2D",
|
||||
"class": "Character",
|
||||
"language": "GDScript",
|
||||
"path": "res://Characters/Character.gd"
|
||||
} ]
|
||||
_global_script_class_icons={
|
||||
"CardResource": ""
|
||||
"CardResource": "",
|
||||
"Character": ""
|
||||
}
|
||||
|
||||
[application]
|
||||
|
Loading…
Reference in New Issue
Block a user