public bool AddCondition(IGraphicCondition condition) { if (_conditions.ContainsKey(condition.Name)) return false; _conditions.Add(condition.Name, condition); return true; }
private bool? EvaluateCondition(IGraphicCondition condition) { if (!GameGraphics.DoesDrawableExist(condition.DrawableName)) return null; switch (condition.GraphicConditionType) { case GraphicConditionType.Animation: IAnimationCondition animationCondition = (IAnimationCondition) condition; return EvaluateAnimationCondition(animationCondition); case GraphicConditionType.Position: IPositionCondition positionCondition = (IPositionCondition) condition; return EvaluatePositionCondition(positionCondition); case GraphicConditionType.Shape: IShapeCondition shapeCondition = (IShapeCondition) condition; return EvaluateShapeCondition(shapeCondition); case GraphicConditionType.String: StringCondition stringCondition = (StringCondition) condition; return EvaluateStringCondition(stringCondition); } return null; }