Exemple #1
0
    public void Swap()
    {
        if (!_support.Character.IsDead)
        {
            // Interrupt actions in progress
            _main.InterruptAnimateAction();
            _support.InterruptAnimateAction();

            // Swap characters
            CombatCharacterScript temp = _main;
            _main    = _support;
            _support = temp;

            // Move character figures
            _support.GetComponent <CharacterMoverScript>().GoToSupportPosition();
            _main.GetComponent <CharacterMoverScript>().GoToMainPosition();

            // Update action bar
            TeamActionBar actionBar = GetComponent <TeamActionBar>();
            if (actionBar != null)
            {
                actionBar.UpdateButtons(_main.Character, _support.Character);
            }
        }
    }
Exemple #2
0
    void InitiateEffect(CombatCharacterScript target)
    {
        StartTime       = Time.time;
        FinishTime      = StartTime + _duration;
        _timeOfNextTick = Time.time + _tickRate;

        Target = target;
        OnApply();
        Target.Character.Buffs.Add(this);

        sfx = specialEffect.GetNext();
        Target.AttachSpecialEffect(sfx);
    }
Exemple #3
0
    public void ExecuteAction(CombatCharacterScript user, TeamScript team)
    {
        if (Time.time >= CooldownFinish)
        {
            ActionInstance action = GenerateInstance();
            action.User     = user;
            action.Target   = _targeting.GetTarget(user, team);
            action.Template = this;

            OnStart.Trigger(action);
            user.Character.OnActionStart.Trigger(action);
            action.Target.Character.OnEnemyActionStart.Trigger(action);
        }
    }
Exemple #4
0
    public void ApplyEffect(CombatCharacterScript target)
    {
        Buff preexistingBuff = target.Character.Buffs.Find(buff => buff.OriginatingBuff == this);

        if (preexistingBuff == null || Stacks)
        {
            Buff instance = Instantiate(this);
            instance.OriginatingBuff = this;

            instance.InitiateEffect(target);
        }
        else
        {
            preexistingBuff.FinishTime = Time.time + _duration;
        }
    }
 public override CombatCharacterScript GetTarget(CombatCharacterScript user, TeamScript team)
 {
     return(team.EnemyTeam.Main);
 }
 public override CombatCharacterScript GetTarget(CombatCharacterScript user, TeamScript team)
 {
     return(user);
 }
Exemple #7
0
 public abstract CombatCharacterScript GetTarget(CombatCharacterScript user, TeamScript team);