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);
        }
        // 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));
        }
コード例 #3
0
 public DangerousAffixMonsterDefinition(MonsterAffix affix)
 {
     Affix         = affix;
     AffixNameFunc = (a) => string.Empty;
 }
コード例 #4
0
 private bool HasAffix(IMonster m, MonsterAffix afx)
 {
     return(m.AffixSnoList.Any(a => a.Affix == afx));
 }
コード例 #5
0
        private float AfijosColores(MonsterAffix afijo, float coordx, float coordy)
        {
            ColorA = null;
            switch (afijo)
            {
            case MonsterAffix.Frozen:
                ColorA = AzulFFontA;
                break;

            case MonsterAffix.FrozenPulse:
                ColorA = Azul1;
                break;

            case MonsterAffix.Wormhole:
                ColorA = RojoFontA;
                break;

            case MonsterAffix.Illusionist:
                ColorA = VerdeCFontA;
                break;

            case MonsterAffix.Juggernaut:
                ColorA = JugFontA;
                break;

            case MonsterAffix.Waller:
                ColorA = MarronFontA;
                break;

            case MonsterAffix.Arcane:
                ColorA = MoradoFontA;
                break;

            case MonsterAffix.HealthLink:
                ColorA = AzulFontA;
                break;

            case MonsterAffix.Thunderstorm:
                ColorA = AmarilloFontA;
                break;

            case MonsterAffix.Shielding:
                ColorA = GrisFontA;
                break;

            case MonsterAffix.Desecrator:
                ColorA = Rosa1;
                break;

            case MonsterAffix.Molten:
                ColorA = Red1;
                break;

            case MonsterAffix.FireChains:
                ColorA = Red2;
                break;

            case MonsterAffix.Teleporter:
                ColorA = TeleportFontA;
                break;

            case MonsterAffix.Mortar:
                ColorA = GrisFontA;
                break;

            case MonsterAffix.Poison:
                ColorA = Verde2;
                break;

            case MonsterAffix.Plagued:
                ColorA = Verde1;
                break;

            case MonsterAffix.Horde:
                ColorA = HordaFontA;
                break;

            case MonsterAffix.Electrified:
                ColorA = Amarelo1;
                break;

            default:
                ColorA = LightFont;
                break;
            }
            var d = ColorA.GetTextLayout(DisplayAffix[afijo]);

            ColorA.DrawText(d, coordx, coordy);
            return(coordx + LightFont.GetTextLayout("-").Metrics.Width + d.Metrics.Width);
        }
コード例 #6
0
 public static void SetPriority(MonsterAffix affic, int priority)
 {
     AffixPriority[affic] = priority;
 }