private MarketEvent GetNextMarketEvent() { int selectedEvent = this.random.Next(0, this.marketEvents.Count); MarketEvent returnValue = this.marketEvents[selectedEvent]; this.marketEvents.RemoveAt(selectedEvent); return(returnValue); }
internal void UpdateMarketValue(Portfolio startingYear, int[] marketChanges, MarketEvent marketEvent) { for (int i = 1; i < Portfolio.NumberAccountTypes; ++i) { this.ammounts[i] = startingYear.ammounts[i] + marketChanges[i]; } foreach (KeyValuePair <AccountType, int> change in marketEvent.MarketSegmentChanges) { this.ammounts[(int)change.Key] += change.Value; } }
private void LoadAllMarketEvents() { MarketEvent marketEvent; marketEvents = new List <MarketEvent>(); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "President announces expansion plans to increase productive capacity by 30%.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.UnitedAuto, 15); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "Influx of personnel of new company in nearby town creates a severe housing shortage.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.ShadyBrooks, 5); marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.VallyPowerAndLight, 4); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "Large petroleum corporation offers to buy all assets for cash. Offer is well above book value. Directors approve and will submite recommendation to stockholders.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.StrykerDrilling, 17); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "Company prospectors find huge, new high-grade ore deposits.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.UraniumEnterprises, 10); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "War scare promotes mixed activity on Wall Street.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.PioneerMutual, -8); marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.StrykerDrilling, 8); marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.UraniumEnterprises, 5); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bull, Description = "==Growth==", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.MetroProperties, 7); marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.PioneerMutual, 8); marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.ShadyBrooks, 5); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "Extra year-end dividend of $2 per share devlared by the Board of Directors.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.GrowthCorporation, 10); // TODO: How to handle dividends... marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "President hospitalized in sanitorium for an indefinite period.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.TriCityTransport, -5); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "City Council considers the Company's choicest property for large industrial fair.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.MetroProperties, 10); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "Government suddenly announces it ill no longer support ore prices, since it has large stockpiles.", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.UraniumEnterprises, -25); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "==Recall==", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.UnitedAuto, -15); marketEvents.Add(marketEvent); marketEvent = new MarketEvent() { CurrentMarketTrend = MarketEvent.MarketTrend.Bear, Description = "==Market Tensions==", }; marketEvent.MarketSegmentChanges.Add(Portfolio.AccountType.GrowthCorporation, -10); marketEvents.Add(marketEvent); }