Beispiel #1
0
        //根据combo类型释放效果

        /*300  力-力-力  攻击力提升
         * 030  速-速-速  bp+3
         * 003  技-技-技  命中+闪避+暴击
         *
         * 201  2力 + 1技 攻击力小幅提升2回合 + 触发第三下特殊伤害:推拉、流血等等
         * 210  2力 + 1速 攻击力小幅提升2回合 + 触发第三下特殊伤害:眩晕、禁足、减速等等
         * 102  2技 + 1力 命中/闪避/暴击小幅提升 + 触发第三次技能改变为暴击伤害
         * 012  2技 + 1速 命中/闪避/暴击小幅提升 + 触发第三次技能改变为强制优势伤害
         * 120  2速 + 1力 bp+1 + 二次攻击
         * 021  2速 + 1技 bp+1 + 二次移动
         * 111  1力 + 1速 + 1技 伤害免疫盾
         */
        private int ComboEffect(int comboID, SO_BattleUnitAttribute unitAttribute)
        {
            int comboResultSkill = 0;

            switch (comboID)
            {
            case 300:
                //battleUnitAttribute.UpdateAtk(EGameConstL.AtkIncrease);
                battleUnitAttribute.AddComboBuffEffect(comboID);
                UtilityHelper.Log("Combo Attack Power * 3 successful!");
                break;

            case 30:
                battleUnitAttribute.UpdateBP(EGameConstL.BPIncrease);
                battleUnitAttribute.AddComboBuffEffect(comboID);
                UtilityHelper.Log("Combo Attack Move * 3 successful!");
                break;

            case 3:
                battleUnitAttribute.IncreaseAbility();
                battleUnitAttribute.AddComboBuffEffect(comboID);
                UtilityHelper.Log("Combo Attack Skill * 3 successful!");
                break;

            case 201:
                ChangeGridEffectWork(5, unitAttribute);
                battleUnitAttribute.AddComboBuffEffect(comboID);
                UtilityHelper.Log("Combo Attack 2 Power 1 Skill successful!");
                break;

            case 210:
                battleUnitAttribute.AddComboBuffEffect(comboID);
                UtilityHelper.Log("Combo Attack 2 Power 1 Move successful!");
                break;

            case 102:
                UtilityHelper.Log("Combo Attack 1 Power 2 Skill successful!");
                break;

            case 12:
                UtilityHelper.Log("Combo Attack 1 Move 2 Skill successful!");
                break;

            case 120:
                UtilityHelper.Log("Combo Attack 1 Power 2 Move successful!");
                break;

            case 21:
                UtilityHelper.Log("Combo Attack 2 Move 1 Skill successful!");
                break;

            case 111:
                UtilityHelper.Log("Combo Attack Power + Move + Skill successful!");
                break;
            }
            battleUnitAttribute.skillComboActiveCheck();
            return(comboResultSkill);
        }
 public override void OnInspectorGUI()
 {
     base.OnInspectorGUI();
     if (GUILayout.Button("Reset name."))
     {
         SO_BattleUnitAttribute instance = (SO_BattleUnitAttribute)target;
         instance.battleUnitName = instance.name;
     }
 }
Beispiel #3
0
        public BattleUnit Create(SO_BattleUnitAttribute battleUnitAttribute)
        {
            BattleUnit battleUnit = Create();

            battleUnit.battleUnitAttribute = GameObject.Instantiate <SO_BattleUnitAttribute>(battleUnitAttribute);
            battleUnit.battleUnitAttribute.hostBattleUnit = battleUnit;
            if (!battleUnit.battleUnitAttribute.manualOperation)
            {
                battleUnit.battleBehaviourSystem = GameObject.Instantiate <BattleBehaviourSystem.BattleBehaviourSystem>(battleUnitAttribute.battleBehaviourSystem);
            }
            battleUnit.battleUnitAttribute.RandomAttributes();
            battleUnit.battleUnitAttribute.Reset();

            return(battleUnit);
        }
Beispiel #4
0
        //对推拉型技能,判断生效效果
        private void ChangeGridEffectWork(int way, SO_BattleUnitAttribute unitAttribute)
        {
            foreach (BattleUnitSkillResult result in skillResults)
            {
                //GridUnit mapGrid = result.battleUnit.mapGrid;
                result.syncAttribute.newGrid = new GridUnit(mapGrid.battleMap, result.battleUnit.mapGrid.row, result.battleUnit.mapGrid.column);
                UtilityHelper.LogFormat("newGrid = {0}, battleUnit.mapgrid = {1}", result.syncAttribute.newGrid,
                                        result.battleUnit.mapGrid);
                Dir dir = GridDir(result.battleUnit.mapGrid, unitAttribute.hostBattleUnit.mapGrid);
                switch (dir)
                {
                case Dir.UP:
                    result.syncAttribute.newGrid.row             += way;
                    result.syncAttribute.newGrid.localPosition.y += way * EGameConstL.Map_GridOffsetY;
                    break;

                case Dir.DOWN:

                    result.syncAttribute.newGrid.row             -= way;
                    result.syncAttribute.newGrid.localPosition.y -= way * EGameConstL.Map_GridOffsetY;
                    //result.syncAttribute.newGrid = result.battleUnit.mapGrid;
                    break;

                case Dir.LEFT:

                    result.syncAttribute.newGrid.column          -= way;
                    result.syncAttribute.newGrid.localPosition.x -= way * EGameConstL.Map_GridWidth;
                    //result.syncAttribute.newGrid = result.battleUnit.mapGrid;
                    break;

                case Dir.RIGHT:

                    result.syncAttribute.newGrid.column          += way;
                    result.syncAttribute.newGrid.localPosition.x += way * EGameConstL.Map_GridWidth;
                    UtilityHelper.LogFormat("newGrid = {0}, battleUnit.mapgrid = {1}", result.syncAttribute.newGrid,
                                            result.battleUnit.mapGrid);
                    //result.syncAttribute.newGrid = result.battleUnit.mapGrid;
                    break;
                }
            }
        }