using Godot; /// <summary> /// 可被子弹击中的区域 /// </summary> [Tool] public partial class HurtArea : Area2D, IHurt { /// <summary> /// 所属角色 /// </summary> public Role Master { get; private set; } public void InitRole(Role role) { Master = role; } public override void _Ready() { Monitoring = false; } public bool CanHurt(CampEnum targetCamp) { //无敌状态 if (Master.Invincible) { return true; } return Master.IsEnemy(targetCamp); } public void Hurt(ActivityObject target, int damage, float angle) { Master.CallDeferred(nameof(Master.HurtHandler), target, damage, angle); } }