Пример #1
0
        /// <summary>
        /// 対象を指定された量移動させます
        /// </summary>
        /// <param name="bal">移動させるキャラクター</param>
        /// <param name="moveness">移動させる量</param>
        public void moveCommand(IBattleable bal, int moveness)
        {
            if (!isBattleing)
            {
                throw new InvalidOperationException("battle isn't started");
            }

            field.deleteCharacterPos(bal);

            //引数に渡されたIBattleableキャラの位置を検索
            FieldPosition nowPos = searchCharacter(bal);

            //値が適切か判断
            if (Enum.GetNames(typeof(FieldPosition)).Length < (int)(nowPos + moveness))
            {
                throw new ArgumentException("invalid moveness");
            }

            int           movePosValue = restructionPositionValue(nowPos, moveness);
            FieldPosition movePos      = (FieldPosition)movePosValue;

            //移動処理
            joinedCharacter [nowPos].Remove(bal);
            joinedCharacter [movePos].Add(bal);

            bal.syncronizePositioin(field.getObjectPosition(movePos, bal));
        }
Пример #2
0
        /// <summary>
        /// 引数に渡したキャラクターをバトルに参加させます
        /// </summary>
        /// <param name="bal">参加させるキャラクター</param>
        /// <param name="pos">参加させる位置</param>
        /// <param name="ai">キャラクターのAI</param>
        public void joinBattle(IBattleable bal, FieldPosition pos, IEnemyAI ai)
        {
            if (!isBattleing)
            {
                throw new InvalidOperationException("battle isn't started");
            }

            loadContainer(bal);
            bal.setIsBattling(true);
            joinedCharacter[pos].Add(bal);
            bal.syncronizePositioin(field.getObjectPosition(pos, bal));

            AIBattleTaskManager manager = MonoBehaviour.Instantiate((GameObject)Resources.Load("Prefabs/AIBattleManager")).GetComponent <AIBattleTaskManager>();

            manager.transform.SetParent(bal.getContainer().transform);
            manager.setCharacter(bal, ai);
            joinedManager.Add(bal.getUniqueId(), manager);
        }