static void ReplaceEffectTime() { foreach (GameObject gameObject in Selection.gameObjects) { destroyThisTimed component = gameObject.GetComponent <destroyThisTimed>(); if (component) { gameObject.AddComponent <EffectTime>().DestroyTime = component.destroyTime; GameObject.DestroyImmediate(component, true); } else { float maxTime = 0.0f; ParticleEmitter[] emitters = gameObject.GetComponentsInChildren <ParticleEmitter>(true); foreach (ParticleEmitter emitter in emitters) { maxTime = Mathf.Max(maxTime, emitter.maxEnergy); } EffectTime effectTime = gameObject.GetComponent <EffectTime>(); if (effectTime && maxTime > 0) { effectTime.DestroyTime = maxTime; } } ParticleAnimator[] animators = gameObject.GetComponentsInChildren <ParticleAnimator>(true); foreach (ParticleAnimator animator in animators) { animator.autodestruct = false; } } }
protected void SetBaseState(Dictionary <string, string> tmp) { if (tmp.ContainsKey("effectType")) { _effectType = ParseEffectType(tmp["effectType"]); __effectType = tmp["effectType"]; } if (tmp.ContainsKey("effectTime")) { _effectTime = ParseEffecTime("effectTime"); __effectTime = tmp["effectTime"]; } if (tmp.ContainsKey("reciever")) { reciever = tmp["reciever"]; } if (tmp.ContainsKey("delay")) { try { delay = float.Parse(tmp["delay"]); } catch (System.FormatException) { delay = -1; } } }
public void Update(EffectTime time) { foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { colorProvider.Reset(); effectTime.DeltaTime = (long)offset; colorProvider.Update(effectTime); float timeStep = 1.0f / strip.Pixels.Length; effectTime.DeltaTime = (long)(timeStep * 1000); for (int i = 0; i < strip.Pixels.Length; i++) { Color c = colorProvider.GetColor(effectTime); strip.Pixels[i] = strip.Pixels[i].Add(Color.FromArgb( (byte)(c.R * Intensity), (byte)(c.G * Intensity), (byte)(c.B * Intensity))); colorProvider.Update(effectTime); } } } colorProvider.Update(time); offset += Speed * time.DeltaTime / 1000.0f; }
public Color GetColor(EffectTime time) { //https://stackoverflow.com/questions/2288498/how-do-i-get-a-rainbow-color-gradient-in-c float div = (Math.Abs(offset % 1) * 6); int ascending = (int)((div % 1) * 255); int descending = 255 - ascending; switch ((int)div) { case 0: return(Color.FromArgb(255, 255, ascending, 0)); case 1: return(Color.FromArgb(255, descending, 255, 0)); case 2: return(Color.FromArgb(255, 0, 255, ascending)); case 3: return(Color.FromArgb(255, 0, descending, 255)); case 4: return(Color.FromArgb(255, ascending, 0, 255)); default: // case 5: return(Color.FromArgb(255, 255, 0, descending)); } }
public override void Update(DwarfTime time, Creature creature) { float hungerChange = creature.Status.Hunger.CurrentValue - LastHunger; LastHunger = creature.Status.Hunger.CurrentValue; switch (Type) { case HealType.Food: FoodValueUntilHealed -= hungerChange; if (FoodValueUntilHealed > 0) { DoDamage(DwarfTime.Dt, creature); } else { EffectTime.Reset(0); } break; case HealType.Sleep: if (!creature.Status.IsAsleep) { DoDamage(DwarfTime.Dt, creature); } else { EffectTime.Reset(0); } break; case HealType.Time: DoDamage(DwarfTime.Dt, creature); break; } if (IsContagious) { SpreadTimer.Update(time); if (SpreadTimer.HasTriggered && MathFunctions.RandEvent(LikelihoodOfSpread)) { foreach (CreatureAI other in creature.Faction.Minions) { if (other == creature.AI) { continue; } if ((other.Position - creature.AI.Position).LengthSquared() > 2) { continue; } other.Creature.AcquireDisease(Name); } } } base.Update(time, creature); }
internal void RunEffect(EffectTime time) { foreach (var effect in effects) { if (effect.IsEnabled) { effect.Update(time); } } }
public virtual void Update(DwarfTime time, Creature creature) { EffectTime.Update(time); ParticleTimer.Update(time); if (ParticleTimer.HasTriggered && !string.IsNullOrEmpty(Particles)) { PlayState.ParticleManager.Trigger(Particles, creature.Physics.Position, Color.White, 1); } }
// Update is called once per frame void Update() { switch (effectTime_g) { case EffectTime.ProccessStart: effectTime_g = EffectTime.ProccessNow; break; case EffectTime.ProccessNow: effectTime_g = EffectTime.ProccessEnd; break; case EffectTime.ProccessEnd: this.gameObject.transform.GetComponentInParent <EnemyMoveTest>().CanAttack(); Destroy(this.gameObject); break; } }
public void Update(EffectTime time) { Color color = ColorProvider.GetColor(time); foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { for (int i = 0; i < strip.Pixels.Length; i++) { strip.Pixels[i] = strip.Pixels[i].Add(Color.FromArgb( (byte)(color.R * Intensity), (byte)(color.G * Intensity), (byte)(color.B * Intensity))); } } } ColorProvider.Update(time); }
public void Update(EffectTime time) { foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { Span <Color> effectArea = strip.Pixels.AsSpan(AreaStartPosition, AreaLength); InterpolationEffect.Apply( Interpolator, effectArea, ColorProvider.GetColor(time), offset, Intensity, EffectLength); } } ColorProvider.Update(time); offset += Speed * time.DeltaTime / 1000.0f; }
public void Update(EffectTime time) { foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { for (int i = AreaStartPosition; i < strip.Pixels.Length && i < AreaStartPosition + AreaLength; i++) { double rawCalculation = strip.Pixels.Length / (double)i; Color color = ColorProvider.GetColor(time); Color c = Color.FromArgb( (byte)(color.R * rawCalculation * Intensity), (byte)(color.G * rawCalculation * Intensity), (byte)(color.B * rawCalculation * Intensity)); strip.Pixels[AreaStartPosition + (i + (int)offset) % AreaLength] = strip.Pixels[AreaStartPosition + (i + (int)offset) % AreaLength].Add(c); } } } offset += Speed * time.DeltaTime / 1000.0f; }
public void Update(EffectTime time) { foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { for (int i = 0; i < strip.Pixels.Length; i++) { var position = coordinates.GetPosition(strip, i); effectTime.DeltaTime = (long)(position.X * Zoom + offset); colorProvider.Reset(); colorProvider.Update(effectTime); Color color = colorProvider.GetColor(time); Color c = Color.FromArgb( (byte)(color.R * Intensity), (byte)(color.G * Intensity), (byte)(color.B * Intensity)); strip.Pixels[i] = strip.Pixels[i].Add(c); } } } offset += Speed * time.DeltaTime / 1000.0f; }
public void Update(EffectTime time) { int xOffset = (int)(offset % image.Width); int yOffset = (int)(offset % image.Height); foreach (var driver in neoPixelSetup.Drivers) { foreach (var strip in driver.Strips) { var yStep = image.Height / strip.Pixels.Length; for (int i = 0; i < strip.Pixels.Length; i++) { int x, y; if (Horizontal) { x = xOffset; y = yStep * i; } else { x = 0; y = (yStep * i + yOffset) % image.Height; } var color = image.GetPixel(x, y); strip.Pixels[i] = strip.Pixels[i].Add(Color.FromArgb( (byte)(color.R * Intensity), (byte)(color.G * Intensity), (byte)(color.B * Intensity))); } } } offset += Speed * time.DeltaTime / 1000.0f; }
public void Exit(EffectTime time) { }
public void Enter(EffectTime time) { }
public void Update(EffectTime time) { }
public Color GetColor(EffectTime time) { return(Color); }
public void Update(EffectTime time) { offset += Speed * time.DeltaTime / 1000.0f; }
void Start() { effectTime_g = EffectTime.ProccessStart; }