public override void Tick(World world) { if (Subjects.All(s => s.IsDead || !s.Info.HasTraitInfo <GuardInfo>())) { world.CancelInputMode(); } }
protected override IEnumerable <Order> OrderInner(World world, CPos xy, MouseInput mi) { if (mi.Button != ExpectedButton) { yield break; } var target = FriendlyGuardableUnits(world, mi).FirstOrDefault(); if (target == null || Subjects.All(s => s.IsDead)) { yield break; } world.CancelInputMode(); var queued = mi.Modifiers.HasModifier(Modifiers.Shift); foreach (var subject in Subjects) { if (subject != target) { yield return(new Order(OrderName, subject, Target.FromActor(target), queued)); } } }
protected override IEnumerable <Order> OrderInner(World world, CPos xy, GestureSample gs) { if (gs.GestureType != ExpectedGestureType) { yield break; } var target = FriendlyGuardableUnits(world, gs).FirstOrDefault(); if (target == null || Subjects.All(s => s.IsDead)) { yield break; } world.CancelInputMode(); var queued = false; foreach (var subject in Subjects) { if (subject != target) { yield return(new Order(OrderName, subject, Target.FromActor(target), queued)); } } }
protected override IEnumerable <Order> OrderInner(World world, CPos xy, MouseInput mi) { if (mi.Button != ExpectedButton) { yield break; } var target = FriendlyGuardableUnits(world, mi).FirstOrDefault(); if (target == null || Subjects.All(s => s.IsDead)) { yield break; } world.CancelInputMode(); foreach (var subject in Subjects) { if (subject != target) { yield return new Order(OrderName, subject, false) { TargetActor = target } } } ; }
/// <summary> /// Check if student has all subjects to get through to next class. /// </summary> /// <returns>True if rules are satisfied, false another.</returns> public bool Verify() { //For first class there must be 40 credits as minimum if (Class == 1) { return(Subjects.Where(k => k.Finished).Sum(k => k.Credits) >= 40); } //for other class there must be finished all subjects from previous class and must be 40 credits for current class subjects return(Subjects.All(k => k.Class == Class - 1 && k.Finished) && Subjects.Where(k => k.Class == Class && k.Finished).Sum(k => k.Credits) >= 40); }
private void AddSubjects(IEnumerable <string> newSubjects) { Subjects.AddRange( from newSubject in newSubjects where Subjects.All(ss => ss.Subject != newSubject) select new SetSubject { Set = this, Subject = newSubject, SetID = ID }); }
public void Update(SetInfo si) { if (ID != si.ID) { throw new InvalidOperationException("Cannot update Set view model with data from another group"); } Title = si.Title; Author = si.Author; Created = si.Created; Modified = si.Modified; for (int i = 0; i < Subjects.Count; ++i) { if (!si.Subjects.Contains(Subjects[i].Subject)) { Subjects.RemoveAt(i); } } foreach (var subject in si.Subjects) { if (Subjects.All(svm => svm.Subject != subject)) { Subjects.Add(new SubjectViewModel(subject)); } } switch (si.Editable) { case "groups": editPermissions = SetEditPermissions.Groups; break; case "password": editPermissions = SetEditPermissions.Password; break; default: editPermissions = SetEditPermissions.OnlyMe; break; } switch (si.Visibility) { case "public": visibility = SetVisibility.Public; break; case "groups": visibility = SetVisibility.Groups; break; case "password": visibility = SetVisibility.Password; break; default: visibility = SetVisibility.OnlyMe; break; } HasAccess = si.HasAccess; hasDiscussion = si.HasDiscussion; Description = si.Description; Uri = si.Uri; if (si.Terms != null) { TermsLoaded = true; Terms.Clear(); foreach (var ti in (IEnumerable <TermInfo>)si.Terms) { Terms.Add(new TermViewModel(ti)); } TermCount = Terms.Count; } else { TermCount = si.TermCount; } TermLanguageCode = si.TermLanguageCode; DefinitionLanguageCode = si.DefinitionLanguageCode; }