You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
extends Node
|
|
|
|
|
class_name Effect
|
|
|
|
|
|
|
|
|
|
@onready var afterimage = preload("res://scene/effect/afterimage/normal.tscn")
|
|
|
|
|
@onready var corpse = preload("res://scene/effect/afterimage/normal.tscn")
|
|
|
|
|
@onready var readiness_hero = preload("res://scene/effect/decal/readiness_hero.tscn")
|
|
|
|
|
@onready var readiness_monster = preload("res://scene/effect/decal/readiness_monster.tscn")
|
|
|
|
|
|
|
|
|
|
@onready var character = (get_owner() as Character)
|
|
|
|
|
@onready var view = (%View as View)
|
|
|
|
|
@onready var status = (%Status as Status)
|
|
|
|
|
|
|
|
|
|
var rediness : Decal
|
|
|
|
|
|
|
|
|
|
func init(type:Enum.ECharacterType,body_scale:Vector3):
|
|
|
|
|
match type:
|
|
|
|
|
Enum.ECharacterType.Player:rediness = readiness_hero.instantiate()
|
|
|
|
|
Enum.ECharacterType.Monster:rediness = readiness_monster.instantiate()
|
|
|
|
|
if rediness:
|
|
|
|
|
rediness.scale = body_scale *1.5
|
|
|
|
|
rediness.scale.y = 10
|
|
|
|
|
rediness.position = Vector3.DOWN * 4
|
|
|
|
|
add_child(rediness)
|
|
|
|
|
|
|
|
|
|
func _process(delta):
|
|
|
|
|
if status.move_dir:
|
|
|
|
|
var angle = status.move_dir.angle_to(Vector2.RIGHT)
|
|
|
|
|
rediness.rotation.y = angle
|
|
|
|
|
|
|
|
|
|
func cast_image(res:Resource):
|
|
|
|
|
var new_afterimage = afterimage.instantiate() as Afterimage
|
|
|
|
|
new_afterimage.position = character.view_pos()
|
|
|
|
|
new_afterimage.name = "afterimage"
|
|
|
|
|
new_afterimage.velocity = character.velocity / 4
|
|
|
|
|
view.clone(new_afterimage)
|
|
|
|
|
SignalManager.effect_create.emit(new_afterimage)
|
|
|
|
|
|
|
|
|
|
func cast_after_image():cast_image(afterimage)
|
|
|
|
|
func cast_corpse():cast_image(corpse)
|