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); } }
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; }
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; }
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); } }
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); }
void ResetStatusEffect() { statusType = StatusEffect.StatusType.NONE; }
void ResetStatusEffect() { statusType = StatusEffect.StatusType.NONE; }