public void update() { long day = World.world.clock.totalMinutes / Clock.DAY; for (int i = 1; i < 8; i++) { if (nextX_Day[i] <= day) { // fire some event if (array[i].Count > 0) { int j = Economy.rand.Next(array[i].Count); Debug.Write("###fireEvent:" + i + "/" + j + "###"); EconomicalEvent e = (EconomicalEvent)array[i][j]; e.execute(); Debug.WriteLine(e.getLatestEventMessage()); // determins next event date nextX_Day[i] += StockMarketConfig.eventDaySpan[i] + Economy.rand.Next2D(StockMarketConfig.eventDaySpan[i] / 2); // fire followig event if (e.followedEvent != null) { e.followedEvent.execute(); Debug.WriteLine("###fireChildEvent###"); Debug.WriteLine(e.followedEvent.getLatestEventMessage()); } } } } }
public void loadData(XmlNode node) { for (int i = 0; i < 8; i++) { array[i].Clear(); } IEnumerator ie = node.ChildNodes.GetEnumerator(); while (ie.MoveNext()) { XmlNode cn = (XmlNode)ie.Current; if (cn.Name.Equals("define")) { string type = cn.Attributes["type"].Value; if (type.Equals("event")) { EconomicalEvent ee = EconomicalEvent.Parse(cn); array[ee.frequency].Add(ee); } } } }