mirror of
https://gitee.com/freeyz/godot-mota.git
synced 2024-09-28 06:24:04 +08:00
36 lines
861 B
GDScript3
36 lines
861 B
GDScript3
|
tool
|
||
|
extends StaticBody2D
|
||
|
|
||
|
# 怪物信息
|
||
|
var monster_info : Dictionary
|
||
|
|
||
|
var monster_sprite : AnimatedSprite
|
||
|
|
||
|
func _ready():
|
||
|
monster_sprite = get_parent()
|
||
|
monster_info = MonsterBook.get_info_by_name(monster_sprite.animation)
|
||
|
|
||
|
# 玩家触碰回调
|
||
|
func on_player_touched(player):
|
||
|
player.stop()
|
||
|
var hurt = get_hurt(player)
|
||
|
if hurt > player.hp:
|
||
|
Messages.showDialog("你无法打败此怪物")
|
||
|
player.resume()
|
||
|
return
|
||
|
#播放动画
|
||
|
var skill_sprite : AnimatedSprite = $SkillSprite
|
||
|
skill_sprite.visible = true
|
||
|
skill_sprite.playing = true
|
||
|
yield(skill_sprite,"animation_finished")
|
||
|
#减扣英雄血量
|
||
|
player.hp -= hurt
|
||
|
#删除怪物
|
||
|
monster_sprite.queue_free()
|
||
|
player.resume()
|
||
|
|
||
|
# 计算伤害
|
||
|
func get_hurt(player) -> int:
|
||
|
var count = (self.monster_info.hp / (player.atk - monster_info.def)) as int
|
||
|
return count * (monster_info.atk - player.def)
|