Esempio n. 1
0
        /// <summary>
        /// ターゲットラインを対象の間に引きます
        /// </summary>
        /// <param name="user">スキル使用者</param>
        /// <param name="targets">スキル対象者のリスト</param>
        private void drawTargetingLine(IBattleable user, List <IBattleable> targets, string lineName, bool isFriendly)
        {
            GameObject targetingLinePrefab = (GameObject)Resources.Load("Prefabs/TargetLine");
            GameObject attackerModel       = user.getContainer().getModel();

            List <GameObject> addedLines = new List <GameObject>();

            foreach (IBattleable target in targets)
            {
                GameObject targetingLine = Instantiate(targetingLinePrefab);

                TargetLine line        = targetingLine.GetComponent <TargetLine>();
                GameObject targetModel = target.getContainer().getModel();
                line.setState(attackerModel, targetModel, lineName, isFriendly);

                addedLines.Add(targetingLine);
            }

            if (targetLines.ContainsKey(user))
            {
                targetLines[user].AddRange(addedLines);
            }
            else
            {
                targetLines.Add(user, addedLines);
            }
        }
Esempio n. 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);
        }
Esempio n. 3
0
 private void loadContainer(IBattleable bal)
 {
     bal.getContainer().transform.SetParent(battleCharacterKeeper.transform);
 }