/// <summary> /// 攻撃を受ける /// </summary> public ActionResponse AcceptAction(ActionRequest req) { var res = new ActionResponse(); res.ActorName = req.Name; res.TargetName = Name; res.IsAccepted = true; res.IsHit = Random.Range(0, 1f) <= Define.HIT_RATE; if (res.IsHit) { res.Damage = (int)(Mathf.Max(0, req.Pow - def.Now)); this.hp.Now -= res.Damage; } // TODO:何らかの形でこの情報を外へ出す if (res.IsHit) { if (0 < res.Damage) { Debug.Log($"{req.Name}は{Name}に{res.Damage}ダメージを与えた。"); } else { Debug.Log($"{Name}はダメージをうけなかった"); } } else { Debug.Log($"{Name}は攻撃をかわした。"); } return(res); }
public virtual void AcceptAction(ActionRequest req) { var res = Status.AcceptAction(req); this.actionResponse.Copy(res); }