public int CheckBuff(EnemyBuff a) { foreach (EnemyBuff b in enemyBuffList) { if (b.ToString().Equals(a.ToString())) { return(enemyBuffList.IndexOf(b)); } } return(-1); }
public void GainNewBuff(EnemyBuff newBuff, int stack) { if (CheckBuff(newBuff) == -1) { newBuff.thisEnemy = this; enemyBuffList.Add(newBuff); newBuff.GainStack(stack - 1); newBuff.ActivateBuff(); UpdateBuffDisplay(); } else { enemyBuffList[CheckBuff(newBuff)].GainStack(stack); UpdateBuffDisplay(); } }
public void RemoveBuff(EnemyBuff buff) { enemyBuffList.Remove(buff); buff.DeactivateBuff(); UpdateBuffDisplay(); }
private bool IsBuffAlive(EnemyBuff b) { if( b.Duration <= 0 ) { switch( b.Type ) { case BuffType.Damage: damageBuffed = false; break; case BuffType.AttackRate: attackRateBuffed = false; break; case BuffType.Velocity: velocityBuffed = false; GetComponent<NavMeshAgent>().speed = baseVelocity; break; } } return (b.Duration <= 0); }
public void ApplyBuff( EnemyBuff b ) { if( b.Type == BuffType.AttackRate && !attackRateBuffed ) { attackRateBuffed = true; buffs.Add(b); } if( b.Type == BuffType.Damage && !damageBuffed ) { damageBuffed = true; buffs.Add(b); } if( b.Type == BuffType.Velocity && !velocityBuffed ) { velocityBuffed = true; buffs.Add(b); } }