/// <summary> /// Funkcja wywoływana przy kazdym odswierzeniu okranu /// </summary> /// <param name="sender">Obiekt wysylajacy zdazenie</param> /// <param name="e">Argumenty zdarzenia</param> public override void UpdateTime(object sender, UpdateEventArgs e) { // pewne opóźnienie, zeby zwierzeta nie biegaly po planszy a czasem przystawaly if ( !IsMoveing && (counter_ == 0) && (rand_.NextDouble() <= 0.25) ) { counter_ = (uint)rand_.Next(50, 150); } if ( counter_ != 0 ) { --counter_; } if ( (counter_ == 0)) Go(e.UpdateTime, true); }
/// <summary> /// Funkcja wywoływana przy kazdym odswierzeniu okranu /// </summary> /// <param name="sender">Obiekt wysylajacy zdazenie</param> /// <param name="e">Argumenty zdarzenia</param> public override void UpdateTime(object sender, UpdateEventArgs e) { //if ( IsSelected ) { } if ( Job != null ) { if ( Job.Location.All(field => !field.IsAvaliable) ) { Colony.JobQueue.Enqueue(Job, 3f); Job = null; } else if ( Job.State == Job.Status.Done ) { Job = null; Console.WriteLine("BuildJob DONE!"); } else if ( !Job.IsInLocation(Location) ) { if ( GoToField == null ) GoToField = Closest(Job.Location); Go(e.UpdateTime); } else { Job.Work(this, new ConstructingJobEventArgs((float)e.UpdateTime * Constructing)); } } }
/// <summary> /// Funkcja wywoływana przy kazdym odswierzeniu okranu /// </summary> /// <param name="sender">Obiekt wysylajacy zdazenie</param> /// <param name="e">Argumenty zdarzenia</param> public abstract void UpdateTime(object sender, UpdateEventArgs e);
public void UpdateTime(object sender, UpdateEventArgs e) { foreach ( Men colonist in colonists_.Where(colonist => colonist.Job == null) ) { if ( JobQueue.Count > 0 ) colonist.Job = JobQueue.Dequeue(); } }