Пример #1
0
        /// <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);
        }
Пример #2
0
        public virtual void AcceptAction(ActionRequest req)
        {
            var res = Status.AcceptAction(req);

            this.actionResponse.Copy(res);
        }