private void GainStatus(StatusEffect.StatusType statusType, int stacks, int duration)
    {
        ConfigData configData = FindObjectOfType <ConfigData>();

        enemyCurrentStatusEffects = configData.GetEnemyStatusEffects();
        enemyCurrentStatusEffects.InflictStatus(statusType, stacks, playerOrEnemy, duration);
    }
    public int GetDefaultStatusDuration(StatusEffect.StatusType statusType)
    {
        switch (statusType)
        {
        case StatusEffect.StatusType.Dodge:
            return(1);

        case StatusEffect.StatusType.Momentum:
            return(1);

        case StatusEffect.StatusType.DamageResist:
            return(1);

        case StatusEffect.StatusType.AutoCrit:
            return(100);

        case StatusEffect.StatusType.Vulnerable:
            return(1);

        case StatusEffect.StatusType.FizzleChance:
            return(1);

        case StatusEffect.StatusType.CritChance:
            return(1);

        default:
            return(1);
        }
    }
Beispiel #3
0
    void Start()
    {
        target = GameObject.FindGameObjectWithTag("Player").transform;
        GameObject.FindGameObjectWithTag("Camera").GetComponent <CompassScript> ().AddPoint("Comet", gameObject, Color.white, icon);

        Alive      = true;
        statusType = StatusEffect.StatusType.NONE;
        cooldown   = Time.time + AbilityCooldown;
    }
Beispiel #4
0
    void Start()
    {
        target = GameObject.FindGameObjectWithTag ("Player").transform;
        em = GetComponent<EnemyHealth> ();
        GameObject.FindGameObjectWithTag ("Camera").GetComponent<CompassScript> ().AddPoint ("Comet", gameObject, Color.white, icon);

        Alive = true;
        statusType = StatusEffect.StatusType.NONE;
        cooldown = Time.time + AbilityCooldown;
    }
Beispiel #5
0
    void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Bullet") {
            OnHit.Invoke ();
        }

        if (other.tag == "StatusEffect") {
            StatusEffect effect = other.GetComponent<StatusEffect> ();
            statusType = effect.statusType;
            Invoke ("ResetStatusEffect", effect.Duration);
        }
    }
    private void CopyEffect(StatusEffect previousEffect, StatusEffect currentEffect)
    {
        if (currentEffect.GetStatusType() == StatusEffect.StatusType.None)
        {
            int remainingDuration = previousEffect.GetRemainingDuration();
            int stacks            = previousEffect.GetStacks();
            StatusEffect.StatusType statusType = previousEffect.GetStatusType();
            string inflictedBy = previousEffect.GetPlayerOrEnemy();
            Sprite statusIcon  = GetStatusIcon(statusType);

            previousEffect.DestroyStatus(GetStatusIcon(StatusEffect.StatusType.Default));
            currentEffect.SetupStatus(statusType, stacks, remainingDuration, statusIcon, inflictedBy);
        }
    }
Beispiel #7
0
    void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Bullet")
        {
            OnHit.Invoke();
        }

        if (other.tag == "StatusEffect")
        {
            StatusEffect effect = other.GetComponent <StatusEffect> ();
            statusType = effect.statusType;
            Invoke("ResetStatusEffect", effect.Duration);
        }
    }
    private int GetStatusIndex(StatusEffect.StatusType statusToCheckFor)
    {
        // look for and return index of status effect in holder
        // if status effect does not exist, return -1
        int currentIndex = 0;

        foreach (StatusEffect statusEffect in statusEffects)
        {
            if (statusEffect.GetStatusType() == statusToCheckFor)
            {
                return(currentIndex);
            }
            currentIndex++;
        }
        return(-1);
    }
    private void NewStatus(StatusEffect.StatusType statusType, int stacks, int duration, string inflictedBy)
    {
        int statusDuration = 0;

        if (duration == 0)
        {
            statusDuration = GetDefaultStatusDuration(statusType);
        }
        else
        {
            statusDuration = duration;
        }
        int    firstAvailableStatusSlot = FindFirstAvailableStatusSlot();
        Sprite statusIcon = GetStatusIcon(statusType);

        statusEffects[firstAvailableStatusSlot].SetupStatus(statusType, stacks, statusDuration, statusIcon, inflictedBy);
    }
    public void InflictStatus(StatusEffect.StatusType statusType, int stacks, string inflictedBy, int duration = 0)
    {
        int indexOfStatus = GetStatusIndex(statusType);

        if (indexOfStatus == -1)
        {
            NewStatus(statusType, stacks, duration, inflictedBy);
        }
        else
        {
            StatusEffect currentStatus = statusEffects[indexOfStatus];
            currentStatus.ModifyStatus(stacks, duration);

            CheckDestroyStatus(currentStatus);
            RejiggerStatusIcons();
        }
    }
    private Sprite GetStatusIcon(StatusEffect.StatusType statusType)
    {
        switch (statusType)
        {
        case StatusEffect.StatusType.Dodge:
            return(images[1]);

        case StatusEffect.StatusType.Momentum:
            return(images[2]);

        case StatusEffect.StatusType.DamageResist:
            return(images[3]);

        case StatusEffect.StatusType.AutoCrit:
            return(images[4]);

        case StatusEffect.StatusType.Vulnerable:
            return(images[5]);

        case StatusEffect.StatusType.FizzleChance:
            return(images[6]);

        case StatusEffect.StatusType.CritChance:
            return(images[7]);

        case StatusEffect.StatusType.Retaliate:
            return(images[8]);

        case StatusEffect.StatusType.Weakness:
            return(images[9]);

        default:
            // default empty status
            return(images[0]);
        }
    }
    private void InflictStatus(StatusEffect.StatusType whichStatus, int amountOfStacks)
    {
        StatusEffectHolder playerStatusEffects = FindObjectOfType <ConfigData>().GetPlayerStatusEffects();

        playerStatusEffects.InflictStatus(whichStatus, amountOfStacks, playerOrEnemy);
    }
Beispiel #13
0
 void ResetStatusEffect()
 {
     statusType = StatusEffect.StatusType.NONE;
 }
Beispiel #14
0
 void ResetStatusEffect()
 {
     statusType = StatusEffect.StatusType.NONE;
 }