/// <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)); }
public ActionDataList GetData(Define.Battle.ACTION_TYPE type) { return(_list.Find(obj => obj.ActionType == type)); }
//--------------------------------------------------- // StartAction //--------------------------------------------------- public bool StartAction(Define.Battle.ACTION_TYPE actionType) { return(_actionList[(int)actionType].ActionStart()); }