//准备释放魔法 public void PrepareMagic(Hero _hero, Magic _magic) { //判定魔法学派,根据英雄的相应学派等级释放不同效果 int magicLevel = _magic.GetMagicLevel(_hero); MagicType type = _magic.type; if (type == MagicType.Battle) { } currentMagic = _magic; //隐藏节点 NodeSelector.HideActionNodes(); //目标类型:无目标直接释放 int targetType = Mathf.Min(_magic.targetType.Length - 1, magicLevel); //int effect = Mathf.Min(_magic.effects.Length - 1, magicLevel); if (_magic.targetType[targetType] == MagicTargetType.Null) { CastMagic(); } else { //是需要选择目标的技能 MagicTargetFliter fliter = _magic.targetFliter[Mathf.Min(_magic.targetFliter.Length - 1, magicLevel)]; NodeSelector.GetSpellableNodes(fliter); } }
//获取并高亮可施法节点 public static void GetSpellableNodes(MagicTargetFliter _fliter) { spellableNodes = new List <NodeItem>(); List <Unit> targetUnits; //否则选择目标 if (_fliter == MagicTargetFliter.All) { //选择所有单位 targetUnits = BattleManager.instance.allUnits; } else { int side = (BattleManager.currentSide + (int)_fliter) % 2; targetUnits = BattleManager.instance.units[side]; } foreach (Unit item in targetUnits) { //设置为可施法节点 item.nodeItem.GetComponent <NodeItem_Battle>().ChangeNodeType(BattleNodeType.spellable); spellableNodes.Add(item.nodeItem); } }