//根据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; } }
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); }
//对推拉型技能,判断生效效果 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; } } }