public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { float FinalMoveValue = MoveValueBase; FinalMoveValue += MoveValuePerLevel * SourceItemSkill.GetSkillLevel(); Target.ChangeMovementRateModifier(FinalMoveValue); }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { float FinalResistanceValue = ResistanceValueBase; FinalResistanceValue += ResistanceValuePerLevel * SourceItemSkill.GetSkillLevel(); Target.ChangeResistance(ResistanceType, FinalResistanceValue); }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { int FinalDamageValue = DamageValueBase; FinalDamageValue += DamageValuePerLevel * SourceItemSkill.GetSkillLevel(); int LifeStealValue = Target.InflictDamage(DefenseType, DamageType, FinalDamageValue, 0, 0); LifeStealValue = Mathf.RoundToInt(LifeStealValue * LifeStealPercentage); Owner.ChangeHealthCurrent(LifeStealValue); }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { int FinalHealingValue = HealingValueBase; FinalHealingValue += HealingValuePerLevel * SourceItemSkill.GetSkillLevel(); for (int i = 0; i < HealingValueModifiers.Length; i++) { FinalHealingValue = Mathf.RoundToInt(HealingValueModifiers[i].ModifyValue(FinalHealingValue, Owner, SourceItemSkill, Target)); } float FinalHealingPercentage = HealingValueBasePercMax; FinalHealingPercentage += HealingValuePerLevelPercMax * SourceItemSkill.GetSkillLevel(); for (int i = 0; i < HealingValuePercMaxModifiers.Length; i++) { FinalHealingPercentage = Mathf.RoundToInt(HealingValuePercMaxModifiers[i].ModifyValue(FinalHealingPercentage, Owner, SourceItemSkill, Target)); } FinalHealingValue += Target.GetHealthPercentageAbsoluteValue(FinalHealingPercentage); Target.Heal(FinalHealingValue); }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { if (Target.GetCharacterIsDead()) { return; } float FinalDuration = DurationBase; FinalDuration += DurationPerLevel * SourceItemSkill.GetSkillLevel(); for (int i = 0; i < DurationModifiers.Length; i++) { FinalDuration = Mathf.RoundToInt(DurationModifiers[i].ModifyValue(FinalDuration, Owner, SourceItemSkill, Target)); } Target.ApplyNewCondition(ConditionToApply, Owner, SourceItemSkill, FinalDuration); }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { int FinalDamageValue = DamageValueBase; FinalDamageValue += DamageValuePerLevel * SourceItemSkill.GetSkillLevel(); for (int i = 0; i < DamageValueModifiers.Length; i++) { FinalDamageValue = Mathf.RoundToInt(DamageValueModifiers[i].ModifyValue(FinalDamageValue, Owner, SourceItemSkill, Target)); } int FinalIgnoreDefenseValue = CalculateIgnoreDefense(Owner, SourceItemSkill, Target, SourceItemSkill.GetSkillLevel()); int FinalIgnoreResistanceValue = CalculateIgnoreResistance(Owner, SourceItemSkill, Target, SourceItemSkill.GetSkillLevel()); var damageAmount = Target.InflictDamage(DefenseType, DamageType, FinalDamageValue, FinalIgnoreDefenseValue, FinalIgnoreResistanceValue); playSound(Target.GetComponent <AudioSource>(), damageAmount); }
public ActiveCondition(Character _TargetCharacter, Character _SourceCharacter, ItemSkill _SourceItemSkill, Condition _Condition, float Duration) { TargetCharacter = _TargetCharacter; SourceCharacter = _SourceCharacter; SourceItemSkill = _SourceItemSkill; Cond = _Condition; TimeCounter = 0f; TickCounter = 0f; FixedLevel = SourceItemSkill.GetSkillLevel(); MaxDuration = Duration; if (Cond.GetVisualEffectObject()) { VisualEffectObject = Instantiate(Cond.GetVisualEffectObject(), TargetCharacter.transform.position, TargetCharacter.transform.rotation); VisualEffectObject.transform.SetParent(TargetCharacter.transform, true); } ApplyCondition(); }
public void InitializeHitObject(Character _Owner, ItemSkill _SourceItemSkill, SkillEffect[] _SkillEffects, bool[] AllowTargets, float[] SkillThreat, bool UseLevelAtActivationMoment) { // Link Skill User and Skill: Owner = _Owner; SourceItemSkill = _SourceItemSkill; HitObjectSkillEffects = _SkillEffects; _audioSource = GetComponent <AudioSource>(); if (UseLevelAtActivationMoment) { FixedLevel = SourceItemSkill.GetSkillLevel(); } else { FixedLevel = -1; } // Calculate which Team(s) the HitObject can hit: int counter = 0; if (AllowTargets[0]) { counter += (int)(Owner.GetAlignment()); } if (AllowTargets[1]) { counter += ((int)(Owner.GetAlignment()) % 2) + 1; } HitObjectAlignment = (Character.TeamAlignment)(counter); // Living Time: if (MaxTimeAlive <= 0) { SourceItemSkill.AddEffectSkillHitObject(this); } if (TickTime > 0) { CurrentTickTime = TickTime; } // Parenting: if (HitObjectIsChildOfOwner) { transform.SetParent(Owner.transform); } if (AlwaysHitOwner) { HitTarget(Owner); } // Threat: Threat = SkillThreat; // Force Impulse: if (UseForceImpulse) { ApplyForceImpulse(); } // Spawn Particle System: if (ParticlesPrefab) { ParticlesInstance = Instantiate(ParticlesPrefab, ParticlesSpawnParent.transform); } if (UseFixedTerrainHeight) { TerrHeightLayerMask = 1 << TerrHeightLayerMask; } }
public override void ApplyEffect(Character Owner, ItemSkill SourceItemSkill, Character Target) { ApplyEffect(Owner, SourceItemSkill, Target, SourceItemSkill.GetSkillLevel()); }
public virtual void InitializeHitObject(Character _Owner, ItemSkill _SourceItemSkill, SkillType _SourceSkill, bool UseLevelAtActivationMoment) { // Link Skill User and Skill: Owner = _Owner; SourceSkill = _SourceSkill; SourceItemSkill = _SourceItemSkill; _audioSource = GetComponent <AudioSource>(); if (UseLevelAtActivationMoment) { FixedLevel = SourceItemSkill.GetSkillLevel(); } else { FixedLevel = -1; } // Calculate which Team(s) the HitObject can hit: int counter = 0; if (SourceSkill.GetAllowTargetFriendly()) { counter += (int)(Owner.GetAlignment()); } if (SourceSkill.GetAllowTargetEnemy()) { counter += ((int)(Owner.GetAlignment()) % 2) + 1; } HitObjectAlignment = (Character.TeamAlignment)(counter); // Living Time: if (MaxTimeAlive <= 0) { SourceItemSkill.AddEffectSkillHitObject(this); } if (TickTime > 0) { CurrentTickTime = TickTime; } // Parenting: if (HitObjectIsChildOfOwner) { transform.SetParent(Owner.transform); } if (AlwaysHitOwner) { HitTarget(Owner); } // Threat: Threat = SourceSkill.GetThreat(); // Force Impulse: if (UseForceImpulse) { ApplyForceImpulse(); } if (UseFixedTerrainHeight) { TerrHeightLayerMask = 1 << TerrHeightLayerMask; } }