void Start() { m_setWave = GameObject.Find("Additional Camera").GetComponent <WaterWaveEffect>(); m_waterL = GameObject.Find("Water_Left").GetComponent <ParticleSystem>(); m_waterR = GameObject.Find("Water_Right").GetComponent <ParticleSystem>(); m_waterM = GameObject.Find("Water_Mid").GetComponent <ParticleSystem>(); m_time = 0f; m_stop = false; }
public void WaterBreath() { //List<Mobile> buffer = new List<Mobile>(); TimeSpan timeout = TimeSpan.FromSeconds(60); var fx = new WaterWaveEffect(Location, Map, Direction, 20, 0, TimeSpan.FromMilliseconds(1)) { EffectHandler = e => { if (e.ProcessIndex != 0) { return; } DateTime now = DateTime.UtcNow; foreach (Mobile t in AcquireAllTargets(e.Source.Location, 0) /*.Not(buffer.Contains)*/) { //buffer.Add(t); if (_FireBreathAffectedMobs.Remove(t)) { t.SendMessage(54, "The Hydra's water breath has doused the flames covering your body!"); } _WaterBreathAffectedMobs.AddOrReplace(t, o => (o != null ? o.Value : now) + timeout); if (t is BaseCreature) { t.Damage(200, this); } else { t.Damage(50, this); } t.SolidHueOverride = 1266; } }, Callback = () => { //buffer.Clear(); CantWalk = false; } }; fx.Send(); }