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); }
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; }
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 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); }
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); } }
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]); } }
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]; } }
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); } }
public bool IsDup(EncounterGroup Group) { if (ExistingGroups == null) { return(false); } foreach (EncounterZoneGroup egrp in ExistingGroups) { if (egrp.Name == Group.Name) { return(true); } } return(false); }
public void InitRandomEncounterGroup() { gameState = State.intro; currentEncounterGroup = data.json.GetEncounterGroup(Random.Range((int)0, data.json.CountEncounterGroups())); encounter.InitEncounter(currentEncounterGroup.startEncounter); }
public EncounterZoneGroup(String name, int quantity, EncounterGroup group) { Name = name; _quantity = quantity; _group = group; }