public bool ApplyEffect(Combatant user, Combatant target)
{
bool applied = false;
if(target.CanApplyEffect(this.realID) &&
(!this.hitChance ||
DataHolder.GameSettings().GetRandom() <= DataHolder.Formulas().formula[this.hitFormula].Calculate(user, target)))
{
for(int i=0; i<this.condition.Length; i++)
{
if(this.condition[i].apply && !this.condition[i].stopChange)
{
this.condition[i].InitChange(i, target);
if(this.condition[i].OnCast())
{
this.condition[i].SetChange(i, target);
}
}
}
if(StatusEffectEnd.TIME.Equals(this.end)) this.endAfter = this.endValue*1000;
else this.endAfter = this.endValue;
this.combatant = target;
applied = true;
this.initialized = true;
}
return applied;
}