示例#1
0
        /// <summary>
        /// 指定したキャラクターアクターの行動実行
        /// </summary>
        /// <remarks>
        /// キャラクター行動は下記が行える<br>
        /// 遠距離攻撃<br>
        /// 中距離攻撃<br>
        /// 近距離攻撃<br>
        /// 一定時間無敵<br>
        /// なお、1フレーム以内で実行できる行動に制限はないが、同じ行動は一定時間後にしか実行できない
        /// </remarks>
        /// <returns> 行動が実行できる状態であるかどうかの可否 </returns>
        /// <param name="actorId">行動実行させたいキャラクターアクター</param>
        /// <param name="type">実行させたい行動</param>
        public bool Action(int actorId, Define.Battle.ACTION_TYPE type)
        {
            List <CharacterModel.Data> list = GetTeamCharacterDataList(TEAM_TYPE.PLAYER);

            CharacterModel.Data Data = list.Find(obj => obj.ActorId == actorId);

            if (Data == null)
            {
                Debug.LogError("Action Method : not have the right to operate an actor, or the ID is incorrect");
                return(false);
            }

            ActorData?actorData = _actorManager.GetActor(Data.ActorId);

            if (actorData == null)
            {
                return(false);
            }

            Character character = actorData.Value.Actor.GetComponent <Character>();

            if (character == null)
            {
                return(false);
            }

            return(character.ActionManager.StartAction(type));
        }
示例#2
0
 public ActionDataList GetData(Define.Battle.ACTION_TYPE type)
 {
     return(_list.Find(obj => obj.ActionType == type));
 }
示例#3
0
 //---------------------------------------------------
 // StartAction
 //---------------------------------------------------
 public bool StartAction(Define.Battle.ACTION_TYPE actionType)
 {
     return(_actionList[(int)actionType].ActionStart());
 }