public float DrawInvestigatorAttacks(float offset)
    {
        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0.5f, offset, 18, 1);
        ui.SetText(new StringKey("val", "INVESTIGATOR_ATTACKS"));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(18.5f, offset, 1, 1);
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        ui.SetButton(NewAttackType);
        new UIElementBorder(ui, Color.green);
        offset += 1;

        attacksUIE = new Dictionary <string, List <UIElementEditablePaneled> >();
        foreach (string attackType in monsterComponent.investigatorAttacks.Keys)
        {
            string aType = attackType;
            attacksUIE.Add(attackType, new List <UIElementEditablePaneled>());
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0.5f, offset, 18, 1);
            ui.SetText(new StringKey("val", attackType));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(17.5f, offset, 1, 1);
            ui.SetText(CommonStringKeys.PLUS, Color.green);
            ui.SetButton(delegate { NewInvestigatorAttack(aType); });
            new UIElementBorder(ui, Color.green);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(18.5f, offset, 1, 1);
            ui.SetText(CommonStringKeys.MINUS, Color.red);
            ui.SetButton(delegate { RemoveInvestigatorAttackType(aType); });
            new UIElementBorder(ui, Color.red);
            offset += 1;

            foreach (StringKey attack in monsterComponent.investigatorAttacks[attackType])
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(18.5f, offset, 1, 1);
                ui.SetText(CommonStringKeys.MINUS, Color.red);
                ui.SetButton(delegate { RemoveInvestigatorAttack(attackType, attack); });
                new UIElementBorder(ui, Color.red);
                offset += 1;

                UIElementEditablePaneled uie = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
                uie.SetLocation(0.5f, offset, 19, 18);
                uie.SetText(attack.Translate());
                offset += uie.HeightToTextPadding(1);
                uie.SetButton(UpdateAttacks);
                new UIElementBorder(uie);
                attacksUIE[attackType].Add(uie);
            }
        }
        return(offset + 1);
    }
    public float MoMActivation(float offset)
    {
        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0.5f, offset++, 19, 1);
        ui.SetText(new StringKey("val", "X_COLON", INITIAL_MESSAGE));

        abilityUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        abilityUIE.SetLocation(0.5f, offset, 19, 18);
        abilityUIE.SetText(activationComponent.ability.Translate(true));
        offset += abilityUIE.HeightToTextPadding(1);
        abilityUIE.SetButton(delegate { UpdateAbility(); });
        new UIElementBorder(abilityUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 9.5f, 1);
        ui.SetText(UNABLE_BUTTON);

        moveButtonUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        moveButtonUIE.SetLocation(9.5f, offset, 10, 1);
        moveButtonUIE.SetText(activationComponent.moveButton.Translate(true));
        moveButtonUIE.SetSingleLine();
        moveButtonUIE.SetButton(delegate { UpdateMoveButton(); });
        new UIElementBorder(moveButtonUIE);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 19, 1);
        ui.SetText(new StringKey("val", "X_COLON", ATTACK_MESSAGE));

        masterActionsUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        masterActionsUIE.SetLocation(0.5f, offset, 19, 18);
        masterActionsUIE.SetText(activationComponent.masterActions.Translate(true));
        offset += masterActionsUIE.HeightToTextPadding(1);
        masterActionsUIE.SetButton(delegate { UpdateMasterActions(); });
        new UIElementBorder(masterActionsUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 19, 1);
        ui.SetText(new StringKey("val", "X_COLON", NO_ATTACK_MESSAGE));

        moveUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        moveUIE.SetLocation(0.5f, offset, 19, 8);
        moveUIE.SetText(activationComponent.move.Translate(true));
        offset += moveUIE.HeightToTextPadding(1);
        moveUIE.SetButton(delegate { UpdateMove(); });
        new UIElementBorder(moveUIE);
        offset += 1;

        return(offset);
    }
Пример #3
0
    virtual public float AddEventDialog(float offset)
    {
        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0, offset++, 20, 1);
        ui.SetText(new StringKey("val", "X_COLON", DIALOG));

        eventTextUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        eventTextUIE.SetLocation(0.5f, offset, 19, 18);
        eventTextUIE.SetText(eventComponent.text.Translate(true));
        offset += eventTextUIE.HeightToTextPadding(1);
        eventTextUIE.SetButton(delegate { UpdateText(); });
        new UIElementBorder(eventTextUIE);
        return(offset + 1);
    }
Пример #4
0
    override public float AddSubComponents(float offset)
    {
        Game game = Game.Get();

        nameUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        nameUIE.SetLocation(0.5f, offset, 19, 1);
        nameUIE.SetText(game.quest.qd.quest.name.Translate());
        nameUIE.SetButton(delegate { UpdateQuestName(); });
        nameUIE.SetSingleLine();
        new UIElementBorder(nameUIE);
        offset += 2;

        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0, offset, 5, 1);
        ui.SetText(new StringKey("val", "X_COLON", HIDDEN));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(5, offset, 3, 1);
        ui.SetButton(delegate { ToggleHidden(); });
        new UIElementBorder(ui);
        if (game.quest.qd.quest.hidden)
        {
            ui.SetText(CommonStringKeys.TRUE);
        }
        else
        {
            ui.SetText(CommonStringKeys.FALSE);
        }
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 5, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "IMAGE")));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(5, offset, 12, 1);
        ui.SetButton(delegate { Image(); });
        ui.SetText(game.quest.qd.quest.image);
        new UIElementBorder(ui);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 8, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "DESCRIPTION")));
        ui.SetTextAlignment(TextAnchor.MiddleLeft);

        descriptionUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        descriptionUIE.SetLocation(0.5f, offset, 19, 30);
        descriptionUIE.SetText(game.quest.qd.quest.description.Translate(true));
        offset += descriptionUIE.HeightToTextPadding(1);
        descriptionUIE.SetButton(delegate { UpdateQuestDesc(); });
        new UIElementBorder(descriptionUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 30, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "SYNOPSYS")));
        ui.SetTextAlignment(TextAnchor.MiddleLeft);

        synopsysUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        synopsysUIE.SetLocation(0.5f, offset, 19, 4);
        synopsysUIE.SetText(game.quest.qd.quest.synopsys.Translate(true));
        offset += synopsysUIE.HeightToTextPadding(1);
        synopsysUIE.SetButton(delegate { UpdateQuestSynopsys(); });
        synopsysUIE.SetSingleLine();
        new UIElementBorder(synopsysUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 8, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "AUTHORS")));
        ui.SetTextAlignment(TextAnchor.MiddleLeft);

        authorsUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        authorsUIE.SetLocation(0.5f, offset, 19, 16);
        authorsUIE.SetText(game.quest.qd.quest.authors.Translate(true));
        offset += authorsUIE.HeightToTextPadding(1);
        authorsUIE.SetButton(delegate { UpdateQuestAuth(); });
        new UIElementBorder(authorsUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset++, 35, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "AUTHORS_SHORT")));
        ui.SetTextAlignment(TextAnchor.MiddleLeft);

        authors_shortUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        authors_shortUIE.SetLocation(0.5f, offset, 19, 1f);
        authors_shortUIE.SetText(game.quest.qd.quest.authors_short.Translate(true));
        offset += authors_shortUIE.HeightToTextPadding(0);
        authors_shortUIE.SetButton(delegate { UpdateQuestShortAuth(); });
        authors_shortUIE.SetSingleLine();
        new UIElementBorder(authors_shortUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset, 10, 1);
        ui.SetText(REQUIRED_EXPANSIONS);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(10.5f, offset, 1, 1);
        ui.SetButton(delegate { QuestAddPack(); });
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        new UIElementBorder(ui, Color.green);

        offset += 1;
        int index;

        for (index = 0; index < game.quest.qd.quest.packs.Length; index++)
        {
            int i = index;
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0.5f, offset, 10, 1);
            ui.SetText(new StringKey("val", game.quest.qd.quest.packs[index]));
            new UIElementBorder(ui);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(10.5f, offset, 1, 1);
            ui.SetButton(delegate { QuestRemovePack(i); });
            ui.SetText(CommonStringKeys.MINUS, Color.red);
            new UIElementBorder(ui, Color.red);
            offset += 1;
        }
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 7.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "MIN_X", game.gameType.HeroesName())));

        minHeroUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        minHeroUIE.SetLocation(7.5f, offset, 2, 1);
        minHeroUIE.SetText(game.quest.qd.quest.minHero.ToString());
        minHeroUIE.SetSingleLine();
        minHeroUIE.SetButton(delegate { UpdateMinHero(); });
        new UIElementBorder(minHeroUIE);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(9.5f, offset, 7.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "MAX_X", game.gameType.HeroesName())));

        maxHeroUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        maxHeroUIE.SetLocation(17, offset, 2, 1);
        maxHeroUIE.SetText(game.quest.qd.quest.maxHero.ToString());
        maxHeroUIE.SetSingleLine();
        maxHeroUIE.SetButton(delegate { UpdateMaxHero(); });
        new UIElementBorder(maxHeroUIE);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 7.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "MIN_X", new StringKey("val", "DURATION"))));

        minLengthUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        minLengthUIE.SetLocation(7.5f, offset, 2, 1);
        minLengthUIE.SetText(game.quest.qd.quest.lengthMin.ToString());
        minLengthUIE.SetSingleLine();
        minLengthUIE.SetButton(delegate { UpdateMinLength(); });
        new UIElementBorder(minLengthUIE);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(9.5f, offset, 7.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "MAX_X", new StringKey("val", "DURATION"))));

        maxLengthUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        maxLengthUIE.SetLocation(17, offset, 2, 1);
        maxLengthUIE.SetText(game.quest.qd.quest.lengthMax.ToString());
        maxLengthUIE.SetSingleLine();
        maxLengthUIE.SetButton(delegate { UpdateMaxLength(); });
        new UIElementBorder(maxLengthUIE);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 7.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "DIFFICULTY")));

        difficultyUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        difficultyUIE.SetLocation(7.5f, offset, 3, 1);
        difficultyUIE.SetText(game.quest.qd.quest.difficulty.ToString());
        difficultyUIE.SetSingleLine();
        difficultyUIE.SetButton(delegate { UpdateDifficulty(); });
        new UIElementBorder(difficultyUIE);
        offset += 2;

        return(offset);
    }
Пример #5
0
    override public float AddSubEventComponents(float offset)
    {
        spawnComponent = component as QuestData.Spawn;

        UIElement ui = null;

        if (game.gameType is D2EGameType)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 6, 1);
            ui.SetText(new StringKey("val", "X_COLON", MONSTER_UNIQUE));

            if (!spawnComponent.unique)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(6, offset, 3, 1);
                ui.SetText(CommonStringKeys.FALSE);
                ui.SetButton(delegate { UniqueToggle(); });
                new UIElementBorder(ui);
                offset += 2;
            }
            else
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(6, offset, 3, 1);
                ui.SetText(CommonStringKeys.TRUE);
                ui.SetButton(delegate { UniqueToggle(); });
                new UIElementBorder(ui);
                offset += 2;

                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(0, offset, 5, 1);
                ui.SetText(new StringKey("val", "X_COLON", UNIQUE_TITLE));

                uniqueTitleUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
                uniqueTitleUIE.SetLocation(5, offset, 14.5f, 1);
                uniqueTitleUIE.SetText(spawnComponent.uniqueTitle.Translate());
                uniqueTitleUIE.SetSingleLine();
                uniqueTitleUIE.SetButton(delegate { UpdateUniqueTitle(); });
                new UIElementBorder(uniqueTitleUIE);
                offset += 2;

                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(0, offset++, 20, 1);
                ui.SetText(new StringKey("val", "X_COLON", UNIQUE_INFO));

                uniqueTextUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
                uniqueTextUIE.SetLocation(0.5f, offset, 19, 18);
                uniqueTextUIE.SetText(spawnComponent.uniqueText.Translate());
                offset += uniqueTextUIE.HeightToTextPadding(1);
                uniqueTextUIE.SetButton(delegate { UpdateUniqueText(); });
                new UIElementBorder(uniqueTextUIE);
                offset += 1;
            }
        }

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 5, 1);
        ui.SetText(new StringKey("val", "X_COLON", HEALTH));

        healthUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        healthUIE.SetLocation(5, offset, 3, 1);
        healthUIE.SetText(spawnComponent.uniqueHealthBase.ToString());
        healthUIE.SetSingleLine();
        healthUIE.SetButton(delegate { UpdateHealth(); });
        new UIElementBorder(healthUIE);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(8, offset, 7, 1);
        ui.SetText(new StringKey("val", "X_COLON", HEALTH_HERO));

        healthHeroUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        healthHeroUIE.SetLocation(15, offset, 3, 1);
        healthHeroUIE.SetText(spawnComponent.uniqueHealthHero.ToString());
        healthHeroUIE.SetSingleLine();
        healthHeroUIE.SetButton(delegate { UpdateHealthHero(); });
        new UIElementBorder(healthHeroUIE);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(1.5f, offset, 17, 1);
        ui.SetText(new StringKey("val", "X_COLON", TYPES));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(18.5f, offset++, 1, 1);
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        ui.SetButton(delegate { MonsterTypeAdd(0); });
        new UIElementBorder(ui, Color.green);

        int i = 0;

        for (i = 0; i < spawnComponent.mTypes.Length; i++)
        {
            int    mSlot = i;
            string mName = spawnComponent.mTypes[i];
            if (mName.IndexOf("Monster") == 0)
            {
                mName = mName.Substring("Monster".Length);
            }

            if ((spawnComponent.mTypes.Length > 1) || (spawnComponent.mTraitsRequired.Length > 0) || (spawnComponent.mTraitsPool.Length > 0))
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(0.5f, offset, 1, 1);
                ui.SetText(CommonStringKeys.MINUS, Color.red);
                ui.SetButton(delegate { MonsterTypeRemove(mSlot); });
                new UIElementBorder(ui, Color.red);
            }

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            if (game.quest.qd.components.ContainsKey(spawnComponent.mTypes[i]))
            {
                ui.SetLocation(1.5f, offset, 16, 1);
                UIElement link = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                link.SetLocation(17.5f, offset, 1, 1);
                link.SetText("<b>⇨</b>", Color.cyan);
                link.SetTextAlignment(TextAnchor.LowerCenter);
                link.SetButton(delegate { QuestEditorData.SelectComponent(spawnComponent.mTypes[mSlot]); });
                new UIElementBorder(link, Color.cyan);
            }
            else
            {
                ui.SetLocation(1.5f, offset, 17, 1);
            }
            ui.SetText(mName);
            ui.SetButton(delegate { MonsterTypeReplace(mSlot); });
            new UIElementBorder(ui);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(18.5f, offset++, 1, 1);
            ui.SetText(CommonStringKeys.PLUS, Color.green);
            ui.SetButton(delegate { MonsterTypeAdd(mSlot + 1); });
            new UIElementBorder(ui, Color.green);
        }
        offset++;

        float traitOffset = offset;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset, 8, 1);
        ui.SetText(REQ_TRAITS);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(8.5f, offset++, 1, 1);
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        ui.SetButton(delegate { MonsterTraitsAdd(); });
        new UIElementBorder(ui, Color.green);

        for (i = 0; i < spawnComponent.mTraitsRequired.Length; i++)
        {
            int    mSlot = i;
            string mName = spawnComponent.mTraitsRequired[i];

            if ((spawnComponent.mTypes.Length > 0) || (spawnComponent.mTraitsRequired.Length > 1) || (spawnComponent.mTraitsPool.Length > 0))
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(0.5f, offset, 1, 1);
                ui.SetText(CommonStringKeys.MINUS, Color.red);
                ui.SetButton(delegate { MonsterTraitsRemove(mSlot); });
                new UIElementBorder(ui, Color.red);
            }

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(1.5f, offset++, 8, 1);
            ui.SetText(new StringKey("val", mName));
            ui.SetButton(delegate { MonsterTraitReplace(mSlot); });
            new UIElementBorder(ui);
        }

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(10.5f, traitOffset, 8, 1);
        ui.SetText(POOL_TRAITS);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(18.5f, traitOffset++, 1, 1);
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        ui.SetButton(delegate { MonsterTraitsAdd(true); });
        new UIElementBorder(ui, Color.green);

        for (int j = 0; j < spawnComponent.mTraitsPool.Length; j++)
        {
            int    mSlot = j;
            string mName = spawnComponent.mTraitsPool[j];

            if ((spawnComponent.mTypes.Length > 0) || (spawnComponent.mTraitsRequired.Length > 0) || (spawnComponent.mTraitsPool.Length > 1))
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(10.5f, traitOffset, 1, 1);
                ui.SetText(CommonStringKeys.MINUS, Color.red);
                ui.SetButton(delegate { MonsterTraitsRemove(mSlot, true); });
                new UIElementBorder(ui, Color.red);
            }

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(11.5f, traitOffset++, 8, 1);
            ui.SetText(new StringKey("val", mName));
            ui.SetButton(delegate { MonsterTraitReplace(mSlot, true); });
            new UIElementBorder(ui);
        }

        if (traitOffset > offset)
        {
            offset = traitOffset;
        }

        offset++;
        if (game.gameType is D2EGameType || game.gameType is IAGameType)
        {
            offset = AddPlacementComponenets(offset);
        }

        return(offset);
    }
Пример #6
0
    override public float AddSubEventComponents(float offset)
    {
        uiComponent = component as QuestData.UI;

        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0, offset, 4.5f, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "IMAGE")));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(5, offset, 14, 1);
        ui.SetText(uiComponent.imageName);
        ui.SetButton(delegate { SetImage(); });
        new UIElementBorder(ui);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 6, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "UNITS")));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(6, offset, 6, 1);
        ui.SetButton(delegate { ChangeUnits(); });
        new UIElementBorder(ui);
        if (uiComponent.verticalUnits)
        {
            ui.SetText(new StringKey("val", "VERTICAL"));
        }
        else
        {
            ui.SetText(new StringKey("val", "HORIZONTAL"));
        }
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset++, 4, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "ALIGN")));

        DrawAlignSelection(offset, -1, -1, "┏");
        DrawAlignSelection(offset, 0, -1, "━");
        DrawAlignSelection(offset, 1, -1, "┓");

        DrawAlignSelection(offset, -1, 0, "┃");
        DrawAlignSelection(offset, 0, 0, "╋");
        DrawAlignSelection(offset, 1, 0, "┃");

        DrawAlignSelection(offset, -1, 1, "┗");
        DrawAlignSelection(offset, 0, 1, "━");
        DrawAlignSelection(offset, 1, 1, "┛");
        offset += 3;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset++, 10, 1);
        ui.SetText(new StringKey("val", "POSITION"));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 2, 1);
        ui.SetText("X:");

        locXUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        locXUIE.SetLocation(2, offset, 3, 1);
        locXUIE.SetText(uiComponent.location.x.ToString());
        locXUIE.SetSingleLine();
        locXUIE.SetButton(delegate { UpdateNumbers(); });
        new UIElementBorder(locXUIE);

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(5, offset, 2, 1);
        ui.SetText("Y:");

        locYUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        locYUIE.SetLocation(7, offset, 3, 1);
        locYUIE.SetText(uiComponent.location.y.ToString());
        locYUIE.SetSingleLine();
        locYUIE.SetButton(delegate { UpdateNumbers(); });
        new UIElementBorder(locYUIE);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 5, 1);
        ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "SIZE")));

        sizeUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
        sizeUIE.SetLocation(5, offset, 3, 1);
        sizeUIE.SetText(uiComponent.size.ToString());
        sizeUIE.SetSingleLine();
        sizeUIE.SetButton(delegate { UpdateNumbers(); });
        new UIElementBorder(sizeUIE);

        if (uiComponent.imageName.Length == 0)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(10, offset, 5, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "ASPECT")));

            aspectUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
            aspectUIE.SetLocation(15, offset, 3, 1);
            aspectUIE.SetText(uiComponent.aspect.ToString());
            aspectUIE.SetSingleLine();
            aspectUIE.SetButton(delegate { UpdateNumbers(); });
            new UIElementBorder(aspectUIE);
            offset += 2;

            textUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
            textUIE.SetLocation(0.5f, offset, 19, 38);
            textUIE.SetText(uiComponent.uiText.Translate(true));
            offset += textUIE.HeightToTextPadding(1);
            textUIE.SetButton(delegate { UpdateUIText(); });
            new UIElementBorder(textUIE);
            offset += 1;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 7, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "RICH_TEXT")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(7, offset, 3, 1);
            ui.SetButton(delegate { SetRichText(); });
            if (uiComponent.richText)
            {
                ui.SetText(new StringKey("val", "TRUE"));
            }
            else
            {
                ui.SetText(new StringKey("val", "FALSE"));
            }
            new UIElementBorder(ui);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(10, offset, 4.5f, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "TEXT_ALIGNMENT")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(14.5f, offset, 5, 1);
            ui.SetText(new StringKey("val", uiComponent.textAlignment.ToString()));
            ui.SetButton(delegate { SetTextAlignment(); });
            new UIElementBorder(ui);
            offset += 2;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 7, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "TEXT_SIZE")));

            textSizeUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
            textSizeUIE.SetLocation(7, offset, 3, 1);
            textSizeUIE.SetText(uiComponent.textSize.ToString());
            textSizeUIE.SetSingleLine();
            textSizeUIE.SetButton(delegate { UpdateTextSize(); });
            new UIElementBorder(textSizeUIE);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(10, offset, 4.5f, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "COLOR")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(14.5f, offset, 5, 1);
            ui.SetText(new StringKey("val", uiComponent.textColor));
            ui.SetButton(delegate { SetColour(); });
            new UIElementBorder(ui);
            offset += 2;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 8.5f, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "BACKGROUND_COLOUR")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(8.5f, offset, 4.5f, 1);
            ui.SetText(new StringKey("val", uiComponent.textBackgroundColor));
            ui.SetButton(delegate { SetBackgroundColour(); });
            new UIElementBorder(ui);
            offset += 2;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0.5f, offset, 8, 1);
            ui.SetText(uiComponent.textColor);
            ui.SetButton(delegate { ToggleBorder(); });
            new UIElementBorder(ui);
            if (uiComponent.border)
            {
                ui.SetText(new StringKey("val", "BORDER"));
            }
            else
            {
                ui.SetText(new StringKey("val", "NO_BORDER"));
            }
        }
        offset += 2;

        DrawUIComponent();

        return(offset);
    }
    override public float AddSubComponents(float offset)
    {
        Game game = Game.Get();

        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0, offset, 3, 1);
        ui.SetText(new StringKey("val", "X_COLON", BASE));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(3, offset, 16.5f, 1);
        ui.SetText(monsterComponent.baseMonster);
        ui.SetButton(delegate { SetBase(); });
        new UIElementBorder(ui);
        offset += 2;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 3, 1);
        ui.SetText(new StringKey("val", "X_COLON", NAME));

        if (monsterComponent.baseMonster.Length == 0 || monsterComponent.monsterName.KeyExists())
        {
            nameUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
            nameUIE.SetLocation(3, offset, 13.5f, 1);
            nameUIE.SetText(monsterComponent.monsterName.Translate());
            nameUIE.SetSingleLine();
            nameUIE.SetButton(delegate { UpdateName(); });
            new UIElementBorder(nameUIE);
            if (monsterComponent.baseMonster.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(16.5f, offset, 3, 1);
                ui.SetText(CommonStringKeys.RESET);
                ui.SetButton(delegate { ClearName(); });
                new UIElementBorder(ui);
            }
        }
        else
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(16.5f, offset, 3, 1);
            ui.SetText(CommonStringKeys.SET);
            ui.SetButton(delegate { SetName(); });
            new UIElementBorder(ui);
        }
        offset += 2;

        if (game.gameType is D2EGameType)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0.5f, offset, 16, 1);
            ui.SetText(new StringKey("val", "X_COLON", INFO));

            if (monsterComponent.baseMonster.Length == 0 || monsterComponent.info.KeyExists())
            {
                if (monsterComponent.baseMonster.Length > 0)
                {
                    ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                    ui.SetLocation(16.5f, offset++, 3, 1);
                    ui.SetText(CommonStringKeys.RESET);
                    ui.SetButton(delegate { ClearInfo(); });
                    new UIElementBorder(ui);
                }

                infoUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
                infoUIE.SetLocation(0.5f, offset, 19, 18);
                infoUIE.SetText(monsterComponent.info.Translate());
                offset += infoUIE.HeightToTextPadding(1);
                infoUIE.SetButton(delegate { UpdateInfo(); });
                new UIElementBorder(infoUIE);
            }
            else
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(16.5f, offset++, 3, 1);
                ui.SetText(CommonStringKeys.SET);
                ui.SetButton(delegate { SetInfo(); });
                new UIElementBorder(ui);
            }
            offset++;

            offset = DrawD2EActivations(offset);
        }
        else
        {
            offset = DrawMoMActivations(offset);
        }

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(12.5f, offset, 6, 1);
        ui.SetText(new StringKey("val", "X_COLON", CommonStringKeys.TRAITS));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(18.5f, offset++, 1, 1);
        ui.SetText(CommonStringKeys.PLUS, Color.green);
        ui.SetButton(delegate { AddTrait(); });
        new UIElementBorder(ui, Color.green);

        for (int index = 0; index < monsterComponent.traits.Length; index++)
        {
            int i = index;
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(12.5f, offset, 6, 1);
            ui.SetText(new StringKey("val", monsterComponent.traits[index]));
            new UIElementBorder(ui);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(18.5f, offset++, 1, 1);
            ui.SetText(CommonStringKeys.MINUS, Color.red);
            ui.SetButton(delegate { RemoveTrait(i); });
            new UIElementBorder(ui, Color.red);
        }
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 5, 1);
        ui.SetText(new StringKey("val", "X_COLON", HEALTH));

        if (monsterComponent.baseMonster.Length == 0 || monsterComponent.healthDefined)
        {
            healthUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
            healthUIE.SetLocation(5, offset, 3, 1);
            healthUIE.SetText(monsterComponent.healthBase.ToString());
            healthUIE.SetSingleLine();
            healthUIE.SetButton(delegate { UpdateHealth(); });
            new UIElementBorder(healthUIE);

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(8, offset, 6, 1);
            ui.SetText(new StringKey("val", "X_COLON", HEALTH_HERO));

            healthHeroUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
            healthHeroUIE.SetLocation(14, offset, 2.5f, 1);
            healthHeroUIE.SetText(monsterComponent.healthPerHero.ToString());
            healthHeroUIE.SetSingleLine();
            healthHeroUIE.SetButton(delegate { UpdateHealthHero(); });
            new UIElementBorder(healthHeroUIE);
            if (monsterComponent.baseMonster.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(16.5f, offset, 3, 1);
                ui.SetText(CommonStringKeys.RESET);
                ui.SetButton(delegate { ClearHealth(); });
                new UIElementBorder(ui);
            }
        }
        else
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(16.5f, offset, 3, 1);
            ui.SetText(CommonStringKeys.SET);
            ui.SetButton(delegate { SetHealth(); });
            new UIElementBorder(ui);
        }
        offset += 2;

        if (game.gameType is MoMGameType)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 7, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "horror")));

            if (monsterComponent.baseMonster.Length == 0 || monsterComponent.horrorDefined)
            {
                horrorUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
                horrorUIE.SetLocation(7, offset, 3, 1);
                horrorUIE.SetText(monsterComponent.horror.ToString());
                horrorUIE.SetSingleLine();
                horrorUIE.SetButton(delegate { UpdateHorror(); });
                new UIElementBorder(horrorUIE);

                if (monsterComponent.baseMonster.Length > 0)
                {
                    ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                    ui.SetLocation(10, offset, 3, 1);
                    ui.SetText(CommonStringKeys.RESET);
                    ui.SetButton(delegate { ClearHorror(); });
                    new UIElementBorder(ui);
                }
            }
            else
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(10, offset, 3, 1);
                ui.SetText(CommonStringKeys.SET);
                ui.SetButton(delegate { SetHorror(); });
                new UIElementBorder(ui);
            }
            offset += 2;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 7, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "AWARENESS")));

            if (monsterComponent.baseMonster.Length == 0 || monsterComponent.awarenessDefined)
            {
                awarenessUIE = new UIElementEditable(Game.EDITOR, scrollArea.GetScrollTransform());
                awarenessUIE.SetLocation(7, offset, 3, 1);
                awarenessUIE.SetText(monsterComponent.awareness.ToString());
                awarenessUIE.SetSingleLine();
                awarenessUIE.SetButton(delegate { UpdateAwareness(); });
                new UIElementBorder(awarenessUIE);

                if (monsterComponent.baseMonster.Length > 0)
                {
                    ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                    ui.SetLocation(10, offset, 3, 1);
                    ui.SetText(CommonStringKeys.RESET);
                    ui.SetButton(delegate { ClearAwareness(); });
                    new UIElementBorder(ui);
                }
            }
            else
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(10, offset, 3, 1);
                ui.SetText(CommonStringKeys.SET);
                ui.SetButton(delegate { SetAwareness(); });
                new UIElementBorder(ui);
            }
            offset += 2;

            offset = DrawInvestigatorAttacks(offset);
        }

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0, offset, 3, 1);
        ui.SetText(new StringKey("val", "X_COLON", IMAGE));
        if (monsterComponent.baseMonster.Length == 0 || monsterComponent.imagePath.Length > 0)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(3, offset, 13.5f, 1);
            ui.SetText(monsterComponent.imagePath);
            ui.SetButton(delegate { SetImage(); });
            new UIElementBorder(ui);
            if (monsterComponent.baseMonster.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(16.5f, offset, 3, 1);
                ui.SetText(CommonStringKeys.RESET);
                ui.SetButton(delegate { ClearImage(); });
                new UIElementBorder(ui);
            }
        }
        else
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(16.5f, offset, 3, 1);
            ui.SetText(CommonStringKeys.SET);
            ui.SetButton(delegate { SetImage(); });
            new UIElementBorder(ui);
        }
        offset += 2;

        if (game.gameType is D2EGameType)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 4, 1);
            ui.SetText(new StringKey("val", "X_COLON", PLACE_IMG));
            if (monsterComponent.baseMonster.Length == 0 || monsterComponent.imagePlace.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(4, offset, 12.5f, 1);
                ui.SetText(monsterComponent.imagePlace);
                ui.SetButton(delegate { SetImagePlace(); });
                new UIElementBorder(ui);
                if (monsterComponent.baseMonster.Length > 0)
                {
                    ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                    ui.SetLocation(16.5f, offset, 3, 1);
                    ui.SetText(CommonStringKeys.RESET);
                    ui.SetButton(delegate { ClearImagePlace(); });
                    new UIElementBorder(ui);
                }
            }
            else
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(16.5f, offset, 3, 1);
                ui.SetText(CommonStringKeys.SET);
                ui.SetButton(delegate { SetImagePlace(); });
                new UIElementBorder(ui);
            }
            offset += 2;
        }

        if (game.gameType is MoMGameType)
        {
            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 5, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "EVADE")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(5, offset, 13.5f, 1);
            ui.SetText(monsterComponent.evadeEvent);
            ui.SetButton(delegate { SetEvade(); });
            new UIElementBorder(ui);

            if (monsterComponent.evadeEvent.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(18.5f, offset, 1, 1);
                ui.SetText("<b>⇨</b>", Color.cyan);
                ui.SetTextAlignment(TextAnchor.LowerCenter);
                ui.SetButton(delegate { QuestEditorData.SelectComponent(monsterComponent.evadeEvent); });
                new UIElementBorder(ui, Color.cyan);
            }
            offset += 2;

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(0, offset, 5, 1);
            ui.SetText(new StringKey("val", "X_COLON", new StringKey("val", "horror")));

            ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
            ui.SetLocation(5, offset, 13.5f, 1);
            ui.SetText(monsterComponent.horrorEvent);
            ui.SetButton(delegate { SetHorrorEvent(); });
            new UIElementBorder(ui);

            if (monsterComponent.horrorEvent.Length > 0)
            {
                ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
                ui.SetLocation(18.5f, offset, 1, 1);
                ui.SetTextAlignment(TextAnchor.LowerCenter);
                ui.SetText("<b>⇨</b>", Color.cyan);
                ui.SetButton(delegate { QuestEditorData.SelectComponent(monsterComponent.horrorEvent); });
                new UIElementBorder(ui, Color.cyan);
            }
            offset += 2;
        }

        return(offset);
    }
    public float D2EActivation(float offset)
    {
        UIElement ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());

        ui.SetLocation(0.5f, offset++, 19, 1);
        ui.SetText(new StringKey("val", "X_COLON", ABILITY));

        abilityUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        abilityUIE.SetLocation(0.5f, offset, 19, 18);
        abilityUIE.SetText(activationComponent.ability.Translate());
        offset += abilityUIE.HeightToTextPadding(1);
        abilityUIE.SetButton(delegate { UpdateAbility(); });
        new UIElementBorder(abilityUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset, 14, 1);
        ui.SetText(new StringKey("val", "X_COLON", MONSTER_MASTER));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(14.5f, offset++, 5, 1);
        ui.SetButton(delegate { ToggleMasterFirst(); });
        new UIElementBorder(ui);
        if (activationComponent.masterFirst)
        {
            ui.SetText(FIRST);
        }
        else
        {
            ui.SetText(NOT_FIRST);
        }

        masterActionsUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        masterActionsUIE.SetLocation(0.5f, offset, 19, 18);
        masterActionsUIE.SetText(activationComponent.masterActions.Translate(true));
        offset += masterActionsUIE.HeightToTextPadding(1);
        masterActionsUIE.SetButton(delegate { UpdateMasterActions(); });
        new UIElementBorder(masterActionsUIE);
        offset += 1;

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(0.5f, offset, 14, 1);
        ui.SetText(new StringKey("val", "X_COLON", MONSTER_MINION));

        ui = new UIElement(Game.EDITOR, scrollArea.GetScrollTransform());
        ui.SetLocation(14.5f, offset++, 5, 1);
        ui.SetButton(delegate { ToggleMinionFirst(); });
        new UIElementBorder(ui);
        if (activationComponent.minionFirst)
        {
            ui.SetText(FIRST);
        }
        else
        {
            ui.SetText(NOT_FIRST);
        }

        minionActionsUIE = new UIElementEditablePaneled(Game.EDITOR, scrollArea.GetScrollTransform());
        minionActionsUIE.SetLocation(0.5f, offset, 19, 18);
        minionActionsUIE.SetText(activationComponent.minionActions.Translate(true));
        offset += minionActionsUIE.HeightToTextPadding(1);
        minionActionsUIE.SetButton(delegate { UpdateMinionActions(); });
        new UIElementBorder(minionActionsUIE);

        return(offset + 1);
    }