//give generic status effects to target public virtual void ApplyStatusEffects(SkillEventTrigger condition, CharacterStatus target, int allyFlag) { foreach(StatusEffectData effect in skillStatusEffects) { if(effect.triggerCondition == condition) { if(!isOwner && !effect.isLocal) { continue; } //myself if(effect.affectSelf && allyFlag == 0) { if(effect.effect == 5) { ownerStatus.AddImpact(ownerTransform.forward, effect.primaryEffectValue, effect.secondaryEffectValue, effect.tertiaryEffectValue); } //attribute change if(effect.effect == 3 || effect.effect == 1 || effect.effect == 6) { StatusEffect newEffect = ownerStatus.gameObject.AddComponent<StatusEffect>(); newEffect.statusEffect = effect; newEffect.ownerSkill = this; ownerStatus.AddStatusEffect(newEffect); } } //currently this bit never gets used since we are passing through outgoing targeted status effects directly to targetCS; else if(effect.affectAlly && allyFlag == 1 || effect.affectEnemy && allyFlag == 2) { if(effect.effect == 5) { target.AddImpact(target._myTransform.forward, effect.primaryEffectValue, effect.secondaryEffectValue, effect.tertiaryEffectValue); } //attribute change if(effect.effect == 3 || effect.effect == 1 || effect.effect == 6) { StatusEffect newEffect = target.gameObject.AddComponent<StatusEffect>(); newEffect.statusEffect = effect; newEffect.ownerSkill = this; target.AddStatusEffect(newEffect); } } } } }