示例#1
0
 private void DisplayText_Load(object sender, EventArgs e)
 {
     UIText.Text = Message.Substring(0, 32);
     for (int i = 1; i < 8; i++)
     {
         UIText.AppendText("\r\n" + Message.Substring(i * 32, 32));
     }
     this.Text = Title;
 }
示例#2
0
        private void UIItems_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            var selectedItem = (RoomItem)UIItems.SelectedItem;

            if (selectedItem.Item == null)
            {
                selectedX = -1;
                selectedY = -1;
            }
            else
            {
                selectedX = selectedItem.XPosition;
                selectedY = selectedItem.YPosition;
            }
            UpdateImage();

            if (selectedItem.Item == null)
            {
                return;
            }
            //var desc = selectedItem.Item.Description();

            //UIInformation.Text = desc[0] + "\n";
            //UIInformation.Text += desc[1] + "\n";
            //UIInformation.Text += desc[2] + "\n";

            if (selectedItem.Item.ChooseWhenPutIntoRoom == AcsLib.Thing.ChooseWhenPutIntoRoomType.SpellModifier &&
                selectedItem.Item.Action.TypeOfSpellAction == SpellAction.SpellActionType.DisplayMessage)
            {
                UIText.Visible              = true;
                UIInformation.Visible       = false;
                lblRandomCreature.Visible   = false;
                lblAppearChance.Visible     = false;
                UIPortalDest.Visible        = false;
                UIRandomCreature.Visible    = false;
                UIAppearChance.Visible      = false;
                UIPortalDestination.Visible = false;
                UIStoreItems.Visible        = false;
                byte param = selectedItem.Parameter;
                if (param > 0)
                {
                    string Message = definition.LongMessages[param - 1];
                    UIText.Text = Message.Substring(0, 32);
                    for (int i = 1; i < 8; i++)
                    {
                        UIText.AppendText("\r\n" + Message.Substring(i * 32, 32));
                    }
                }
                return;
            }

            UIText.Visible = false;
            if (selectedItem.Item.TypeOfThing != Thing.ThingType.Store)
            {
                UIInformation.Visible       = true;
                lblRandomCreature.Visible   = true;
                lblAppearChance.Visible     = true;
                UIPortalDest.Visible        = true;
                UIRandomCreature.Visible    = true;
                UIAppearChance.Visible      = true;
                UIPortalDestination.Visible = true;
                UIStoreItems.Visible        = false;
            }
            UIInformation.Text = "";
            string descFormat = selectedItem.Item.GetUsageDescription();

            if (descFormat.Length > 0)
            {
                byte   param    = selectedItem.Parameter;
                string descText = "";
                if (selectedItem.Item.ChooseWhenPutIntoRoom == AcsLib.Thing.ChooseWhenPutIntoRoomType.Object)
                {
                    descText = definition.Things[param - 1].Name;
                }
                if (selectedItem.Item.ChooseWhenPutIntoRoom == AcsLib.Thing.ChooseWhenPutIntoRoomType.SpellModifier)
                {
                    switch (selectedItem.Item.Action.ParameterType)
                    {
                    case SpellAction.ActionParameterType.Music:
                        Music mus = new Music();
                        descText = mus.GetMusicName(param);
                        break;

                    case SpellAction.ActionParameterType.Item:
                        descText = definition.Things[param - 1].Name;
                        break;

                    case SpellAction.ActionParameterType.VictimStat:
                        descText = Enum.ToObject(typeof(Creature.Stat), param).ToString();
                        break;

                    case SpellAction.ActionParameterType.ChangeLifeForcePower:
                        int n = param & 0x3F;
                        if (param.BitField(7))
                        {
                            n = -n;
                        }
                        descText = n.ToString();
                        if (param.BitField(6))
                        {
                            descText += " Temporarily";
                        }
                        else
                        {
                            descText += " Permanently";
                        }
                        break;

                    case SpellAction.ActionParameterType.Creature:
                        if (param == 0)
                        {
                            descFormat = "Banish all creatures in room";
                        }
                        else
                        {
                            descFormat = "Summon creature {0} - {1}";
                            descText   = definition.CreatureList[param - 1].Name;
                        }
                        break;
                    }
                }
                UIInformation.Text = string.Format(CultureInfo.CurrentCulture, descFormat, param, descText);
            }

            if (selectedItem.Item.TypeOfThing == Thing.ThingType.Portal)
            {
                string s = "";
                if (selectedItem.WorldMapDestination)
                {
                    s = string.Format("World map {0},{1}", selectedItem.PortalDestinationX, selectedItem.PortalDestinationY);
                }
                else
                {
                    s = s + definition.Regions[selectedItem.PortalDestinationRegion - 1].Name;
                    s = s + ":" + definition.Regions[selectedItem.PortalDestinationRegion - 1].Room(selectedItem.PortalDestinationRoom).Name;
                    s = s + string.Format(" ({0},{1})", selectedItem.PortalDestinationX, selectedItem.PortalDestinationY);
                }

                UIPortalDestination.Text = s;
            }

            if (selectedItem.Item.TypeOfThing == Thing.ThingType.Store)
            {
                UIInformation.Visible       = false;
                lblRandomCreature.Visible   = false;
                lblAppearChance.Visible     = false;
                UIPortalDest.Visible        = false;
                UIRandomCreature.Visible    = false;
                UIAppearChance.Visible      = false;
                UIPortalDestination.Visible = false;
                UIStoreItems.Visible        = true;
                UIStoreItems.Items.Clear();
                for (int i = 0; i < 81; i++)
                {
                    if (region.StoreItems[i] != 0)
                    {
                        string s = "(" + region.StoreItems[i].ToString() + ") " + definition.Things[i - 1].Name;
                        UIStoreItems.Items.Add(s);
                    }
                }
            }
        }