public void DoDamage(TakeDamage _target) { switch (WayDamageIsDealt) { case DamageTypes.initialOnly: _target.DoSingleDamage(initialDamage); break; case DamageTypes.initialWithBleedSameDamageSameTick: _target.DoSingleDamage(initialDamage, initialDelay); _target.DoTimedDamage(bleedDamage, timeBetweenTicks, bleedRepeatNumber); break; case DamageTypes.initialWithBleedManyDamageSameTick: _target.DoSingleDamage(initialDamage, initialDelay); _target.DoTimedDamage(bleedDamageArray, timeBetweenTicks); break; case DamageTypes.initialWithBleedSameDamageManyTick: _target.DoSingleDamage(initialDamage, initialDelay); _target.DoTimedDamage(bleedDamage, timeBetweenTicksArray); break; case DamageTypes.initialWithBleedManyDamageManyTick: _target.DoSingleDamage(initialDamage, initialDelay); _target.DoTimedDamage(bleedDamageArray, timeBetweenTicksArray); break; case DamageTypes.bleedOnlySameDamageSameTick: _target.DoTimedDamage(bleedDamage, timeBetweenTicks, bleedRepeatNumber); break; case DamageTypes.bleedOnlyManyDamageSameTick: _target.DoTimedDamage(bleedDamageArray, timeBetweenTicks); break; case DamageTypes.bleedOnlySameDamageManyTick: _target.DoTimedDamage(bleedDamage, timeBetweenTicksArray); break; case DamageTypes.bleedOnlyManyDamageManyTick: _target.DoTimedDamage(bleedDamageArray, timeBetweenTicksArray); break; } }