Exemplo n.º 1
0
        private int ItemsInZone(Zone i, int ItemPid)
        {
            int num = 0;

            if (i.EncounterGroups == null)
            {
                return(0);
            }

            foreach (EncounterZoneGroup gr in i.EncounterGroups)
            {
                EncounterGroup realgroup = GroupParser.GetGroupByName(gr.Name); // Because gr contains only small amount of data parsed
                                                                                // from worldmap.fowm, rest is in parser.
                foreach (EncounterNpc npc in realgroup.Npcs)
                {
                    foreach (EncounterItem item in npc.Items)
                    {
                        if (item.Item.Pid == ItemPid)
                        {
                            num++;
                        }
                    }
                }
            }
            return(num);
        }
Exemplo n.º 2
0
        private void lstGroups_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            EncounterGroup group = new EncounterGroup();

            group.Name     = e.Item.Text;
            group.Quantity = Int32.Parse(e.Item.SubItems[1].Text);
            SelectedGroup  = group;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public EncounterGroups(EndianBinaryReader r)
        {
            byte count = r.ReadByte();

            Groups = new EncounterGroup[count];
            for (int i = 0; i < count; i++)
            {
                Groups[i] = new EncounterGroup(r);
            }
        }
 public EncounterGroup FillGroupInfo(EncounterGroup Group)
 {
     foreach (EncounterGroup grp in _groups)
     {
         if (grp.Name == Group.Name)
         {
             return(grp.Clone());
         }
     }
     return(null);
 }
Exemplo n.º 6
0
    private void Start()
    {
        int            _GroupCount    = m_EnemyGroups.Count;
        int            _RandomGroup   = Random.Range(0, _GroupCount);
        EncounterGroup _SelectedGroup = m_EnemyGroups[_RandomGroup];

        foreach (EnemyInGroup _EnemyInGroup in _SelectedGroup.EnemiesInGroup)
        {
            Instantiate(_EnemyInGroup.Enemy, _EnemyInGroup.Position, _EnemyInGroup.Enemy.transform.rotation);
        }
    }
Exemplo n.º 7
0
        public EncounterGroups(JToken j)
        {
            var arr   = (JArray)j;
            int count = arr.Count;

            Groups = new EncounterGroup[count];
            for (int i = 0; i < count; i++)
            {
                Groups[i] = new EncounterGroup(arr[i]);
            }
        }
Exemplo n.º 8
0
        public void CalculateZoneStatistics(List <IZone> Zones)
        {
            ZoneCount = 0;
            List <int> diffs = new List <int>();

            foreach (Zone zone in Zones)
            {
                if (zoneProperty is EncounterGroup)
                {
                    EncounterGroup group = (EncounterGroup)zoneProperty;

                    if (zone.EncounterGroups == null)
                    {
                        continue;
                    }

                    foreach (EncounterZoneGroup grp in zone.EncounterGroups)
                    {
                        if (grp.Name == group.Name)
                        {
                            ZoneCount++;
                            diffs.Add(zone.Difficulty);
                            break;
                        }
                    }
                }
            }
            if (diffs.Count == 0)
            {
                return;
            }

            this.ZoneDiffAvg = diffs.Sum() / diffs.Count;
            this.ZoneDiffMin = diffs.Min();
            this.ZoneDiffMax = diffs.Max();
            diffs.Sort();
            if (diffs.Count % 2 == 0)
            {
                if (diffs.Count == 2)
                {
                    this.ZoneDiffMed = this.ZoneDiffAvg;
                }
                else
                {
                    this.ZoneDiffMed = (diffs[diffs.Count / 2] + diffs[(diffs.Count / 2) + 1]) / 2;
                }
            }
            else
            {
                this.ZoneDiffMed = diffs[diffs.Count / 2];
            }
        }
Exemplo n.º 9
0
    public void LoadEncounterGroups(DataController.EncounterGroupData data)
    {
        encounterGroups = new Dictionary <int, EncounterGroup>();

        for (int i = 0; i < data.EncounterGroup.Count; i++)
        {
            EncounterGroup _encounterGroup = new EncounterGroup();

            _encounterGroup.GroupName      = data.EncounterGroup[i].GroupName;
            _encounterGroup.startEncounter = data.EncounterGroup[i].startEncounter;
            _encounterGroup.Active         = data.EncounterGroup[i].Active;

            encounterGroups.Add(data.EncounterGroup[i].GroupID, _encounterGroup);
        }
    }
Exemplo n.º 10
0
        public bool IsDup(EncounterGroup Group)
        {
            if (ExistingGroups == null)
            {
                return(false);
            }

            foreach (EncounterZoneGroup egrp in ExistingGroups)
            {
                if (egrp.Name == Group.Name)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 11
0
 public void InitRandomEncounterGroup()
 {
     gameState             = State.intro;
     currentEncounterGroup = data.json.GetEncounterGroup(Random.Range((int)0, data.json.CountEncounterGroups()));
     encounter.InitEncounter(currentEncounterGroup.startEncounter);
 }
Exemplo n.º 12
0
 public EncounterZoneGroup(String name, int quantity, EncounterGroup group)
 {
     Name      = name;
     _quantity = quantity;
     _group    = group;
 }