コード例 #1
0
        private MarketEvent GetNextMarketEvent()
        {
            int selectedEvent = this.random.Next(0, this.marketEvents.Count);

            MarketEvent returnValue = this.marketEvents[selectedEvent];

            this.marketEvents.RemoveAt(selectedEvent);

            return(returnValue);
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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);
        }