2020-08-21 17:15:50 +08:00
|
|
|
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)
|
2020-09-03 22:30:49 +08:00
|
|
|
add_to_group("monster")
|
2020-08-21 17:15:50 +08:00
|
|
|
|
|
|
|
# 玩家触碰回调
|
|
|
|
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
|
2020-09-05 13:33:18 +08:00
|
|
|
#增加金币
|
|
|
|
player.money += monster_info.money
|
2020-08-21 17:15:50 +08:00
|
|
|
#删除怪物
|
|
|
|
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)
|