public DangerousAffixMonsterDefinition DefineDangerousAffix(MonsterAffix affix, AffixNameFunc affixNameFunc, int priority = 0, IFont eliteFont = null, IFont minionFont = null, bool showMinionDecorators = false, bool showMinionAffixesNames = false, float bgEliteRadius = _bgEliteRadius, float fgEliteRadius = _fgEliteRadius, float bgMinionRadius = _bgMinionRadius, float fgMinionRadius = _fgMinionRadius, IBrush bgBrush = null, IShapePainter bgShapePainter = null, bool bgPing = false, IRadiusTransformator bgRadiusTransformator = null, IBrush fgBrush = null, IShapePainter fgShapePainter = null, bool fgPing = false, IRadiusTransformator fgRadiusTransformator = null) { bgBrush = bgBrush ?? DefaultBackgroundBrush; fgBrush = fgBrush ?? DefaultForegroundBrush; bgShapePainter = bgShapePainter ?? DefaultMapShapePainter; fgShapePainter = fgShapePainter ?? DefaultMapShapePainter; eliteFont = eliteFont ?? DefaultEliteAffixesFont; minionFont = minionFont ?? DefaultMinionAffixesFont; if (bgPing) { bgRadiusTransformator = bgRadiusTransformator ?? DefaultRadiusTransformator; } else { bgRadiusTransformator = null; } if (fgPing) { fgRadiusTransformator = fgRadiusTransformator ?? DefaultRadiusTransformator; } else { fgRadiusTransformator = null; } var affixDef = new DangerousAffixMonsterDefinition(affix) { EliteDecorators = CreateDecorators(bgEliteRadius, fgEliteRadius, bgBrush, fgBrush, bgShapePainter, fgShapePainter, bgRadiusTransformator, fgRadiusTransformator), MinionDecorators = CreateDecorators(bgMinionRadius, fgMinionRadius, bgBrush, fgBrush, bgShapePainter, fgShapePainter, bgRadiusTransformator, fgRadiusTransformator), EliteLabelFont = eliteFont, MinionLabelFont = minionFont, ShowMinionDecorators = showMinionDecorators, ShowMinionAffixesNames = showMinionAffixesNames, AffixNameFunc = affixNameFunc, Priority = priority, }; affixDef.MinionDecorators.ToggleDecorators <MapShapeDecorator>(showMinionDecorators); affixDef.MinionDecorators.ToggleDecorators <MapLabelDecorator>(showMinionAffixesNames); Affixes[affix] = affixDef; return(affixDef); }
private WorldDecoratorCollection CreateDecorators(float bgRadius, float fgRadius, IBrush bgBrush, IBrush fgBrush, IShapePainter bgShapePainter, IShapePainter fgShapePainter, IRadiusTransformator bgRadiusTransformator, IRadiusTransformator fgRadiusTransformator) { return(new WorldDecoratorCollection( new MapShapeDecorator(Hud) { Brush = bgBrush, Radius = bgRadius, ShapePainter = bgShapePainter, RadiusTransformator = bgRadiusTransformator, }, new MapShapeDecorator(Hud) { Brush = fgBrush, Radius = fgRadius, ShapePainter = fgShapePainter, RadiusTransformator = fgRadiusTransformator, } )); }
// TODO : refactor these monstruous signatures.. >< public DangerousAffixMonsterDefinition DefineDangerousAffix(MonsterAffix affix, string affixName, int priority = 0, IFont eliteFont = null, IFont minionFont = null, bool showMinionDecorators = false, bool showMinionAffixesNames = false, float bgEliteRadius = _bgEliteRadius, float fgEliteRadius = _fgEliteRadius, float bgMinionRadius = _bgMinionRadius, float fgMinionRadius = _fgMinionRadius, IBrush bgBrush = null, IShapePainter bgShapePainter = null, bool bgPing = false, IRadiusTransformator bgRadiusTransformator = null, IBrush fgBrush = null, IShapePainter fgShapePainter = null, bool fgPing = false, IRadiusTransformator fgRadiusTransformator = null) { AffixNameFunc affixNameFunc; if (affixName == null) { affixNameFunc = (a) => string.Empty; } else { affixNameFunc = (a) => affixName; } return(DefineDangerousAffix(affix, affixNameFunc, priority, eliteFont, minionFont, showMinionDecorators, showMinionAffixesNames, bgEliteRadius, fgEliteRadius, bgMinionRadius, fgMinionRadius, bgBrush, bgShapePainter, bgPing, bgRadiusTransformator, fgBrush, fgShapePainter, fgPing, fgRadiusTransformator)); }