private void lstNpcItems_SelectionChanged(object sender, EventArgs e)
        {
            EncounterItem Item = (EncounterItem)lstNpcItems.SelectedObject;

            if (Item == null)
            {
                return;
            }

            if (CurrentItem == Item)
            {
                return;
            }

            if (CurrentItem != null)
            {
                SaveCurrentItem();
            }

            CurrentItem = Item;

            cmbItemPid.SelectedIndex = cmbItemPid.Items.IndexOf(Item.Item.Define);
            cmbSlot.SelectedIndex    = (int)Item.Slot;
            numItemMin.Value         = Item.Min;
            numItemMax.Value         = Item.Max;
        }
        public static List <FOCommon.Worldmap.EncounterGroup.EncounterGroup> LoadNew(List <string> lines)
        {
            List <FOCommon.Worldmap.EncounterGroup.EncounterGroup> Groups = new List <FOCommon.Worldmap.EncounterGroup.EncounterGroup>();

            int            groupId = 0;
            EncounterGroup Group   = null;

            foreach (string line in lines)
            {
                if (line.StartsWith("*")) // Npc data
                {
                    string[] parts = line.Split('|');
                    string[] param = parts[0].Split(',');

                    EncounterNpc NpcObj = new EncounterNpc(Int32.Parse(param[1]), Int32.Parse(param[2]), param[3], Int32.Parse(param[4]), param[5] == "1" ? true : false,
                                                           Int32.Parse(param[6]), Int32.Parse(param[7]), Int32.Parse(param[8]));

                    for (int i = 1; i < parts.Length; i++)
                    {
                        string[] npcData = parts[i].Split(',');
                        if (Int32.Parse(npcData[0]) == (int)GroupFormatData.Item)
                        {
                            EncounterItem item = new EncounterItem(Int32.Parse(npcData[1]), Int32.Parse(npcData[2]), Int32.Parse(npcData[3]), Int32.Parse(npcData[4]));
                            NpcObj.AddItem(item);
                        }
                        else if (Int32.Parse(npcData[0]) == (int)GroupFormatData.Perk)
                        {
                            EncounterPerk perk = new EncounterPerk(npcData[1], Int32.Parse(npcData[2]), Int32.Parse(npcData[3]), Int32.Parse(npcData[4]));
                            NpcObj.Perks.Add(perk);
                        }
                    }
                    Group.Npcs.Add(NpcObj);
                }
                else // Group data
                {
                    if (String.IsNullOrEmpty(line) || line.Length < 5)
                    {
                        continue;
                    }

                    string[] param = line.Split(',');

                    float quantityDay   = (float)double.Parse(param[7], NumberStyles.Any, ci);
                    float quantityNight = (float)double.Parse(param[8], NumberStyles.Any, ci);

                    Group = new FOCommon.Worldmap.EncounterGroup.EncounterGroup(param[0], Int32.Parse(param[1]), Int32.Parse(param[2]),
                                                                                Int32.Parse(param[3]), Int32.Parse(param[4]), Int32.Parse(param[5]), Int32.Parse(param[6]), quantityDay, quantityNight, Int32.Parse(param[9]), Int32.Parse(param[10]));

                    if (Group != null)
                    {
                        Group.Id = groupId++;
                        Groups.Add(Group);
                    }
                }
            }

            return(Groups);
        }
        public static List <FOCommon.Worldmap.EncounterGroup.EncounterGroup> LoadOld(List <string> lines)
        {
            List <FOCommon.Worldmap.EncounterGroup.EncounterGroup> Groups = new List <FOCommon.Worldmap.EncounterGroup.EncounterGroup>();
            int groupId = 0;

            foreach (string line in lines)
            {
                string[] partsdel = { "|||" };
                string[] npcsdel  = { "||" };
                string[] parts    = line.Split(partsdel, StringSplitOptions.RemoveEmptyEntries);

                string[] npcs;
                if (parts.Length == 2)
                {
                    npcs = parts[1].Split(npcsdel, StringSplitOptions.RemoveEmptyEntries);
                }
                else
                {
                    npcs = new string[0];
                }

                string[] param = parts[0].Split(',');

                float quantityDay   = (float)double.Parse(param[7], NumberStyles.Any, ci);
                float quantityNight = (float)double.Parse(param[8], NumberStyles.Any, ci);

                FOCommon.Worldmap.EncounterGroup.EncounterGroup Group = new FOCommon.Worldmap.EncounterGroup.EncounterGroup(param[0], Int32.Parse(param[1]), Int32.Parse(param[2]),
                                                                                                                            Int32.Parse(param[3]), Int32.Parse(param[4]), Int32.Parse(param[5]), Int32.Parse(param[6]), quantityDay, quantityNight, Int32.Parse(param[9]), Int32.Parse(param[10]));

                Group.Id = groupId++;

                foreach (string npc in npcs)
                {
                    string[] npcparts  = npc.Split('|');
                    string[] npcparams = npcparts[0].Split(',');

                    // Convert
                    EncounterNpc NpcObj = new EncounterNpc(Int32.Parse(npcparams[0]), Int32.Parse(npcparams[1]), npcparams[2], Int32.Parse(npcparams[3]), npcparams[4] == "1" ? true : false,
                                                           -1, -1, -1);

                    for (int i = 1; i < npcparts.Length; i++)
                    {
                        string[]      itemparam = npcparts[i].Split(',');
                        EncounterItem item      = new EncounterItem(Int32.Parse(itemparam[0]), Int32.Parse(itemparam[1]), Int32.Parse(itemparam[2]), Int32.Parse(itemparam[3]));
                        NpcObj.AddItem(item);
                    }

                    Group.Npcs.Add(NpcObj);
                }
                Groups.Add(Group);
            }
            return(Groups);
        }
Exemple #4
0
        private void btnAddNpc_Click(object sender, EventArgs e)
        {
            EncounterNpc Npc = new EncounterNpc(Decimal.ToInt32(numProto.Value), Decimal.ToInt32(numDialog.Value), cmbScript.Text, Decimal.ToInt32(numNpcRatio.Value), chkDead.Checked,
                                                GetArmorPid(), GetHelmPid(), GetForcedCrType());

            if (lstNpcItems.Items.Count > 0)
            {
                foreach (Object o in lstNpcItems.Objects)
                {
                    EncounterItem item = (EncounterItem)o;
                    Npc.AddItem(item);
                }
            }
            CurrentGroup.Npcs.Add(Npc);
            CurrentGroup.NpcCount++;
            RefreshNpcList();
        }
Exemple #5
0
        private void btnAddItem_Click(object sender, EventArgs e)
        {
            if (cmbItemPid.SelectedIndex == -1)
            {
                Message.Show("No item PID selected.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (cmbSlot.SelectedIndex == -1)
            {
                Message.Show("No item slot selected.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            EncounterItem Item = new EncounterItem(ItemPid.GetPid(cmbItemPid.SelectedItem.ToString()), Decimal.ToInt32(numItemMin.Value), Decimal.ToInt32(numItemMax.Value), cmbSlot.SelectedIndex);

            CurrentNpc.AddItem(Item);
            RefreshItems();
            RefreshNpcList();
        }
Exemple #6
0
    public void NextItem(int Encounter = 0)
    {
        if (currentItem.nextItem[0])
        {
            currentItem        = currentItem.nextItem[Encounter];
            encounterText.text = currentItem.message;
            for (int index = 0; index < decButtons.Count; ++index)
            {
                decButtons[index].gameObject.SetActive(false);
                if (index < currentItem.nextItem.Count)
                {
                    decButtons[index].gameObject.SetActive(true);
                    decButtons[index].GetComponentInChildren <Text>().text = currentItem.nextItem[index].decisionText;
                }
            }

            _GameManager.AddMoney(currentItem.moneyToGive);
            partyMoney.text = "Cash: " + _GameManager.GetMoney().ToString();

            slot.gameObject.SetActive(false);
            if (currentItem.itemToGive)
            {
                slot.gameObject.SetActive(true);
                slot.item = currentItem.itemToGive.gameObject;
                slot.GetComponent <Image>().sprite = slot.item.GetComponent <Item>().itemSprite;
            }

            if (currentItem.nextItem.Count > 4)
            {
                Debug.Log("Too Many Encounter Items!");
            }

            if (image && currentItem.sprite)
            {
                image = currentItem.sprite;
            }
        }
    }