示例#1
0
 public void CollapseTarget(BattleUnitBase _target)
 {
     if (_target.IsDead)
     {
         _target.GetComponentInChildren <AddRigidBodyToChildren>().ActivateCollapse();
     }
 }
示例#2
0
    public void ActTarget()
    {
        bsMachine.TransitionToState(BattleStateMachine.MenuState.Attacking);
        if (!HighlightAll && !HighlightEnemies && !HighlightTeam)
        {
            foreach (UnitSlot unit in unitSlots)
            {
                if (unit.IsHighlighted)
                {
                    CurrentAbility = Instantiate(CurrentAbility);
                    _battleSystem.GetUnitTurn().AbilityInUse = CurrentAbility;

                    if (CurrentAbility.GetComponent <BaseAbility>() != null)
                    {
                        CurrentAbility.GetComponent <BaseAbility>().Act(unit.GetUnit().gameObject);
                    }
                }
            }
        }
        else
        {
            CurrentAbility = Instantiate(CurrentAbility);
            _battleSystem.GetUnitTurn().AbilityInUse = CurrentAbility;
            BattleUnitBase[] targets = new BattleUnitBase[unitSlots.Length];
            var index = 0;
            for (int u = 0; u < unitSlots.Length; u++)
            {
                if (unitSlots[u].IsHighlighted)
                {
                    targets[index] = unitSlots[u].GetUnit();
                    index++;
                }
            }
            if (CurrentAbility.GetComponent <BaseAbility>() != null)
            {
                CurrentAbility.GetComponent <BaseAbility>().SetTargetList(targets);
                CurrentAbility.GetComponent <BaseAbility>().Act();
            }
        }

        _battleSystem.GetUnitTurn().CombatValues.UseMana(CurrentAbility.GetComponent <BaseAbility>().ManaCost);

        Reset();
    }
示例#3
0
    public virtual void Act(GameObject go = null)
    {
        Attacker = FindObjectOfType <BattleSystem_v2>().GetUnitTurn();
        var isPlayer = Attacker.GetComponent <BattleUnitPlayer>();

        if (isPlayer != null)
        {
            if (attackType == ItemWeapon.WeaponType.Slash)
            {
                damage = isPlayer.SlashWeapon.damage;
            }
            else
            {
                damage = isPlayer.CrushWeapon.damage;
            }
        }
        else
        {
            damage = Attacker.CombatValues.CurrentAP;
        }
        Target             = go.GetComponent <BattleUnitBase>();
        battleUnitAnimator = Attacker.GetComponent <Animator>();
    }
示例#4
0
 public void SetUnit(BattleUnitBase unit)
 {
     _unit = Instantiate(unit, transform.position + SpawnOffset, transform.rotation, transform);
     _unit.isDoneForTurn = _unit is BattleUnitEnemy;
 }