private void OnWeightChangeCallback(object sender, WeightChangeArgs args) { if (effectManager == null) { return; } if (args.newWeight > maxWeight) { if (effect == null) { effect = new MovementEffect("Inventory overload", 0.2f, EffectStyle.Debuff, EffectType.Physical); effect.IsInfinite = true; effect.ShouldBeSaved = false; effectManager.AddEffect(effect); } } else { if (effect != null) { effectManager.RemoveEffect(effect); effect = null; } } }
public override void ApplyMovementEffect(MovementEffect effect) { if (effect.GetSpeedMultiplier() < 1.0f) { return; } movementEffects.AddLast(effect); }
private List <LongEffect> CreateLongEffectsFromText(List <string> text) { List <LongEffect> effects = new List <LongEffect>(); int i = -1; while (i < text.Count - 1) { switch (text[++i]) { case "DamageModifierEffect": DamageModifierEffect dmEffect = new DamageModifierEffect() { damageMultiplier = float.Parse(text[++i]), duration = float.Parse(text[++i]), shieldBadPrefab = ShieldBadPrefab, shieldGoodPrefab = ShieldGoodPrefab }; effects.Add(dmEffect); break; case "HealthLongEffect": HealthLongEffect hlEffect = new HealthLongEffect() { healthModifier = float.Parse(text[++i]), intensity = float.Parse(text[++i]), duration = float.Parse(text[++i]), dummyMonoBehaviourForStartingCoroutines = this }; effects.Add(hlEffect); break; case "MovementEffect": MovementEffect mEffect = new MovementEffect() { movementSpeedMultiplier = float.Parse(text[++i]), rotationSpeedMultiplier = float.Parse(text[++i]), duration = float.Parse(text[++i]) }; effects.Add(mEffect); break; case "": break; default: Debug.LogError("Unknown long effect type: " + text[i]); break; } } return(effects); }
public void ApplyMovementEffect(MovementEffect effect) { movementEffects.AddLast(effect); }