public void TriggerSkillEvents(SkillEventTrigger trigger) { for (int i = 0; i < skillVFXs.Count; i++) { if(!isOwner && !skillVFXs[i].isLocal) { continue; } if(skillVFXs[i].activationEvent == trigger) skillVFXs[i].Activate(); if(skillVFXs[i].deactivationEvent == trigger) skillVFXs[i].Deactivate(); } for (int i = 0; i < skillDetectors.Count; i++) { if(!isOwner && !skillDetectors[i].isLocal) { continue; } if(skillDetectors[i].activationEvent == trigger) { skillDetectors[i].Activate(); } if(skillDetectors[i].deactivationEvent == trigger) skillDetectors[i].Deactivate(); } ApplySelfStatusEffects(trigger); }
//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); } } } } }
public virtual void ApplySelfStatusEffects(SkillEventTrigger condition) { ApplyStatusEffects(condition, null, 0); }