/// <summary> /// Evaluates the expression for the given shape. /// </summary> /// <param name="shapes"></param> /// <returns>The result of evaluating the expression.</returns> public override bool Evaluate(ShapeSet shapes) { if (shapes == null) { throw new ArgumentNullException(nameof(shapes)); } switch (ExpressionType) { case ExpressionType.And: return(Expressions.All(e => e.Evaluate(shapes))); case ExpressionType.Or: return(Expressions.Any(e => e.Evaluate(shapes))); case ExpressionType.BoolEqual: return(Expressions.AreEqual()); case ExpressionType.Xor: Debug.Assert(Expressions.Count == 2); return(Expressions[0].Evaluate(shapes) ^ Expressions[1].Evaluate(shapes)); case ExpressionType.Not: Debug.Assert(Expressions.Count == 1); return(!Expressions[0].Evaluate(shapes)); default: Debug.Assert(false); throw new ArgumentOutOfRangeException(); } }
/// <summary> /// Initializes character renderers with selected sprites. /// </summary> private void TryInitialize() { if (Expressions.All(i => i.Name != "Default") || Expressions.All(i => i.Name != "Angry") || Expressions.All(i => i.Name != "Dead")) { throw new Exception("Character must have at least 3 basic expressions: Default, Angry and Dead."); } HeadRenderer.sprite = Head; HairRenderer.sprite = Hair; HairRenderer.maskInteraction = Helmet == null || Helmet.name.Contains("[FullHair]") ? SpriteMaskInteraction.None : SpriteMaskInteraction.VisibleInsideMask; EarsRenderer.sprite = Ears; SetExpression(Expression); BeardRenderer.sprite = Beard; MapSprites(BodyRenderers, Body); HelmetRenderer.sprite = Helmet; GlassesRenderer.sprite = Glasses; MaskRenderer.sprite = Mask; EarringsRenderer.sprite = Earrings; MapSprites(ArmorRenderers, Armor); CapeRenderer.sprite = Cape; BackRenderer.sprite = Back; PrimaryMeleeWeaponRenderer.sprite = PrimaryMeleeWeapon; SecondaryMeleeWeaponRenderer.sprite = SecondaryMeleeWeapon; BowRenderers.ForEach(i => i.sprite = Bow.SingleOrDefault(j => j != null && i.name.Contains(j.name))); ShieldRenderer.sprite = Shield; PrimaryMeleeWeaponRenderer.enabled = WeaponType != WeaponType.Bow; SecondaryMeleeWeaponRenderer.enabled = WeaponType == WeaponType.MeleePaired; BowRenderers.ForEach(i => i.enabled = WeaponType == WeaponType.Bow); if (Hair != null && Hair.name.Contains("[HideEars]") && HairRenderer.maskInteraction == SpriteMaskInteraction.None) { EarsRenderer.sprite = null; } }
/// <summary> /// Returns true if the inclusive expression is true and the exclusive expression is false /// </summary> /// <param name="aDate"></param> /// <returns></returns> public override bool Includes(DateTime aDate) { return(Expressions.All(e => e.Includes(aDate))); }
public override bool CanBeEmpty() { return(Expressions.All(e => e.CanBeEmpty())); }
/// <summary> /// Initializes character renderers with selected sprites. /// </summary> private void TryInitialize() { if (Expressions.All(i => i.Name != "Default") || Expressions.All(i => i.Name != "Angry") || Expressions.All(i => i.Name != "Dead")) { throw new Exception("Character must have at least 3 basic expressions: Default, Angry and Dead."); } HeadRenderer.sprite = Head; HairRenderer.sprite = Hair; HairRenderer.maskInteraction = HelmetMask == null ? SpriteMaskInteraction.None : SpriteMaskInteraction.VisibleOutsideMask; HairMask.sprite = HelmetMask; EarsRenderer.sprite = Ears; SetExpression(Expression); BeardRenderer.sprite = Beard; EarsRenderer.sprite = Ears; MapSprites(BodyRenderers, Body); HelmetRenderer.sprite = Helmet; GlassesRenderer.sprite = Glasses; MaskRenderer.sprite = Mask; EarringsRenderer.sprite = Earrings; MapSprites(ArmorRenderers, Armor); CapeRenderer.sprite = Cape; BackRenderer.sprite = Back; PrimaryMeleeWeaponRenderer.sprite = PrimaryMeleeWeapon; SecondaryMeleeWeaponRenderer.sprite = SecondaryMeleeWeapon; BowRenderers.ForEach(i => i.sprite = Bow.SingleOrDefault(j => j != null && i.name.Contains(j.name))); FirearmsRenderers.ForEach(i => i.sprite = Firearms.SingleOrDefault(j => j != null && i.name.Contains(j.name))); ShieldRenderer.sprite = Shield; PrimaryMeleeWeaponRenderer.enabled = WeaponType != WeaponType.Bow; SecondaryMeleeWeaponRenderer.enabled = WeaponType == WeaponType.MeleePaired; BowRenderers.ForEach(i => i.enabled = WeaponType == WeaponType.Bow); switch (HairMaskType) { case HairMaskType.None: HairRenderer.maskInteraction = SpriteMaskInteraction.None; HairMask.sprite = null; break; case HairMaskType.HelmetMask: HairRenderer.maskInteraction = HelmetMask == null ? SpriteMaskInteraction.None : SpriteMaskInteraction.VisibleOutsideMask; HairMask.sprite = HelmetMask; break; case HairMaskType.HeadMask: HairRenderer.maskInteraction = Head == null ? SpriteMaskInteraction.None : SpriteMaskInteraction.VisibleInsideMask; HairMask.sprite = HeadMask; break; } if (Hair != null && Hair.name.Contains("[HideEars]")) { EarsRenderer.sprite = null; } if (Hair != null && Hair.name.Contains("[HideHelm]")) { HairRenderer.maskInteraction = SpriteMaskInteraction.None; HelmetRenderer.sprite = null; } switch (WeaponType) { case WeaponType.Firearms1H: case WeaponType.Firearms2H: Firearm.AmmoShooted = 0; BuildFirearms(Firearm.Params); break; } }
/// <summary> /// Initializes character renderers with selected sprites. /// </summary> private void TryInitialize() { if (Expressions.All(i => i.Name != "Default") || Expressions.All(i => i.Name != "Angry") || Expressions.All(i => i.Name != "Dead")) { throw new Exception("Character must have at least 3 basic expressions: Default, Angry and Dead."); } if (ShowHelmet) { HairRenderer.sprite = Hair == null ? null : CropHair ? HairCropped : Hair; EarsRenderers.ForEach(i => i.enabled = !HideEars); HelmetRenderer.sprite = Helmet; } else { HairRenderer.sprite = Hair; EarsRenderers.ForEach(i => i.enabled = true); HelmetRenderer.sprite = null; } MapSprites(EarsRenderers, Ears); SetExpression(Expression); if (BeardRenderer != null) { BeardRenderer.sprite = Beard; } MapSprites(BodyRenderers, Body); MapSprite(HeadRenderer, Body); MapSprites(ArmorRenderers, Armor); //CapeRenderer.sprite = Cape; //BackRenderer.sprite = Back; PrimaryWeaponRenderer.sprite = PrimaryWeapon; PrimaryWeaponRenderer.enabled = WeaponType == WeaponType.Melee1H || WeaponType == WeaponType.Melee2H || WeaponType == WeaponType.Paired || WeaponType == WeaponType.Crossbow || WeaponType == WeaponType.Throwable; SecondaryWeaponRenderer.sprite = SecondaryWeapon; SecondaryWeaponRenderer.enabled = WeaponType == WeaponType.Paired; MapSprites(BowRenderers, CompositeWeapon); BowRenderers.ForEach(i => i.enabled = WeaponType == WeaponType.Bow); MapSprites(ShieldRenderers, Shield); ShieldRenderers.ForEach(i => i.enabled = WeaponType == WeaponType.Melee1H); if (MakeupRenderer != null) { MakeupRenderer.sprite = Makeup; } if (MaskRenderer != null) { MaskRenderer.sprite = Mask; } MapSprites(EarringsRenderers, Earrings); if (WeaponType == WeaponType.Crossbow) { var quiver = BowRenderers.Single(i => i.name == "Quiver"); quiver.enabled = true; MapSprites(new List <SpriteRenderer> { PrimaryWeaponRenderer, quiver }, CompositeWeapon); } ApplyMaterials(); }