Exemple #1
0
        public AttackSkill(string[] datas)
        {
            ID           = int.Parse(datas [0]);
            NAME         = datas [1];
            LEVEL        = int.Parse(datas[2]);
            atk          = int.Parse(datas [3]);
            RAW_ATK      = atk;
            RANGE        = int.Parse(datas [4]);
            hit          = int.Parse(datas [5]);
            RAW_HIT      = hit;
            delay        = float.Parse(datas [6]);
            RAW_DELAY    = delay;
            cost         = int.Parse(datas[7]);
            RAW_COST     = cost;
            DEPEND_ATK   = (datas[8] == "TRUE");
            DEPEND_HIT   = (datas [9] == "TRUE");
            DEPEND_RANGE = (datas [10] == "TRUE");
            DEPEND_DELAY = (datas[11] == "TRUE");
            ATTRIBUTE    = (AttackSkillAttribute)Enum.Parse(typeof(AttackSkillAttribute), datas[12]);

            if (datas[13] == "DEPEND")
            {
                DEPEND_ABILITY = true;
            }
            else
            {
                USE_ABILITY = (BattleAbility)Enum.Parse(typeof(BattleAbility), datas [13]);
            }

            EXTENT      = (Extent)Enum.Parse(typeof(Extent), datas[14]);
            DESCRIPTON  = datas [15];
            FLAVOR_TEXT = datas[16];

            observer = new AttackSkillObserver(ID);
        }
Exemple #2
0
        /// <summary>
        /// スクロールビューにターゲット選択岐を表示します
        /// </summary>
        /// <param name="extent">スキルの効果範囲</param>
        /// <param name="range">スキルの射程</param>
        private void inputTargetList(Extent extent, int range)
        {
            detachContents();
            if (this.currentManagerState == ManagerState.SKILL)
            {
                headerText.text = chosenActiveSkill.getName();
            }
            else
            {
                headerText.text = choseItem.getName();
            }
            switch (extent)
            {
            case Extent.SINGLE:
                inputSingleTargetList(range);
                break;

            case Extent.AREA:
                inputAreaTargetList(range);
                break;

            case Extent.ALL:
                targetChose(BattleManager.getInstance().getJoinedBattleCharacter());
                break;
            }
        }
        /// <summary>
        /// BattleTaskを生成します
        /// </summary>
        /// <returns>生成したタスク</returns>
        private BattleTask creatTask()
        {
            if (!isReady)
            {
                throw new InvalidOperationException("manager hasn't readied yet");
            }

            IActiveSkill skill = ai.decideSkill();

            if (ActiveSkillSupporter.isAffectSkill(skill))
            {
                Extent     extent = ActiveSkillSupporter.searchExtent(skill);
                BattleTask returnTask;
                //効果範囲に応じてタスクを生成
                switch (extent)
                {
                case Extent.SINGLE:
                    IBattleable        target           = ai.decideSingleTarget(skill);
                    List <IBattleable> singleTargetList = new List <IBattleable>()
                    {
                        target
                    };
                    returnTask = new BattleTask(user.getUniqueId(), skill, singleTargetList, battletaskIdCount);
                    break;

                case Extent.AREA:
                    FieldPosition pos = ai.decideAreaTarget(skill);
                    returnTask = new BattleTask(user.getUniqueId(), skill, pos, battletaskIdCount);
                    break;

                case Extent.ALL:
                    List <IBattleable> allTargetList = BattleManager.getInstance().getJoinedBattleCharacter();
                    returnTask = new BattleTask(user.getUniqueId(), skill, allTargetList, battletaskIdCount);
                    break;

                default: throw new NotSupportedException("unkonwn extent");
                }
                battletaskIdCount++;
                return(returnTask);
            }
            else if (skill.getActiveSkillType() == ActiveSkillType.MOVE)
            {
                MoveSkill  moveSkill  = (MoveSkill)skill;
                int        move       = ai.decideMove(moveSkill);
                BattleTask returnTask = new BattleTask(user.getUniqueId(), skill, move, battletaskIdCount);
                battletaskIdCount++;
                return(returnTask);
            }
            throw new InvalidOperationException("unknown skillType");
        }
Exemple #4
0
        /// <summary>
        /// skillNodeが選択された時の処理
        /// </summary>
        /// <param name="chosenSkill">選択されたIActiveSkill</param>
        public void skillChose(IActiveSkill chosenSkill)
        {
            this.chosenActiveSkill = chosenSkill;

            if (ActiveSkillSupporter.isAffectSkill(chosenSkill))
            {
                Extent extent = ActiveSkillSupporter.searchExtent(chosenSkill);
                int    range  = ActiveSkillSupporter.searchRange(chosenSkill, player);
                inputTargetList(extent, range);
            }
            else if (chosenSkill.getActiveSkillType() == ActiveSkillType.MOVE)
            {
                int move = ActiveSkillSupporter.searchMove(chosenSkill, player);
                inputMoveAreaList(move);
            }
            else
            {
                throw new NotSupportedException("Unkonwn skillType");
            }
        }
Exemple #5
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="datas">csvによるstring配列データ</param>
        public BufSkill(string[] datas)
        {
            this.ID        = int.Parse(datas [0]);
            this.NAME      = datas [1];
            this.LEVEL     = int.Parse(datas[2]);
            this.RAW_BONUS = int.Parse(datas [3]);
            this.bonus     = RAW_BONUS;
            this.LIMIT     = int.Parse(datas [4]);
            this.RAW_RANGE = int.Parse(datas[5]);
            this.RAW_COST  = int.Parse(datas[6]);
            this.cost      = RAW_COST;
            this.RAW_DELAY = float.Parse(datas[7]);
            this.delay     = RAW_DELAY;
            setBonusParameter(datas[8]);
            this.EXTENT      = (Extent)Enum.Parse(typeof(Extent), datas[9]);
            this.DESCRIPTION = datas [10];
            FLAVOR_TEXT      = datas[11];

            this.observer = new BufSkillObserver(ID);
        }
Exemple #6
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="datas">csvによるstring配列データ</param>
        public HealSkill(string[] datas)
        {
            ID             = int.Parse(datas[0]);
            NAME           = datas [1];
            LEVEL          = int.Parse(datas[2]);
            RAW_HEAL_VALUE = int.Parse(datas[3]);
            healValue      = RAW_HEAL_VALUE;
            RANGE          = int.Parse(datas[4]);
            RAW_DELAY      = float.Parse(datas[5]);
            delay          = RAW_DELAY;
            RAW_COST       = int.Parse(datas[6]);
            cost           = RAW_COST;
            ATTRIBUTE      = (HealAttribute)Enum.Parse(typeof(HealAttribute), datas [7]);
            EXTENT         = (Extent)Enum.Parse(typeof(Extent), datas [8]);
            USE_ABILITY    = (BattleAbility)Enum.Parse(typeof(BattleAbility), datas[9]);
            DESCRIPTION    = datas [10];
            FLAVOR_TEXT    = datas[11];

            observer = new HealSkillObserver(ID);
        }
Exemple #7
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="datas">csvによるstring配列データ</param>
        public DebufSkill(string[] datas)
        {
            ID        = int.Parse(datas[0]);
            NAME      = datas [1];
            LEVEL     = int.Parse(datas[2]);
            RAW_BONUS = int.Parse(datas[3]);
            bonus     = RAW_BONUS;
            LIMIT     = float.Parse(datas[4]);
            RAW_COST  = int.Parse(datas[5]);
            cost      = RAW_COST;
            RAW_RANGE = int.Parse(datas[6]);
            RAW_DELAY = float.Parse(datas[7]);
            delay     = RAW_DELAY;
            setBonusParameter(datas[8]);
            EXTENT      = (Extent)Enum.Parse(typeof(Extent), datas[9]);
            DESCRIPTION = datas [10];
            FLAVOR_TEXT = datas [11];

            observer = new DebufSkillObserver(ID);
        }