source: 2015/26/MikkoL/JRPG/JRPG/JRPG/Overworld/MapData.cs @ 6415

Revision 6415, 3.7 KB checked in by mijoliim, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6
7public class MapData
8{
9    public static List<EnemyGroup> Enemies = new List<EnemyGroup>();
10    public static List<Image> _BackgroundImages = new List<Image>();
11
12    public static int StepsToAnEncounter { get; set; }
13    public static int EncounterProbability { get; set; }
14
15    public string CurrentMapIndex;
16
17    public List<Exit> Exits = new List<Exit>();
18
19    public List<EnemyGroup> EnemiesList()
20    {
21        return Enemies;
22    }
23    public List<Image> BackgroundImages()
24    {
25        return _BackgroundImages;
26    }
27
28    public EnemyGroup PickRandomWeightedGroup(List<EnemyGroup> Probabilities, Random r)
29    {
30        int totalWeight = Probabilities.Sum(G => G.EncounterProbability);
31        int weightedPick = r.Next(totalWeight);
32        foreach (var item in Probabilities)
33        {
34            if (weightedPick < item.EncounterProbability)
35            {
36                return item;
37            }
38            weightedPick -= item.EncounterProbability;
39        }
40        throw new InvalidOperationException("List must have changed or list count is zero");
41    }
42
43
44    public void LoadMapDataFromString(string MapIndex)
45    {
46        CurrentMapIndex = MapIndex;
47
48        if (MapIndex == "Test")
49        {
50            StepsToAnEncounter = 5;
51            EncounterProbability = 25;
52
53            InitializeEnemies(MapIndex);
54
55            _BackgroundImages.Add(Images.Backgrounds.Test);
56        }
57
58        if (MapIndex == "00")
59        {
60            Exit Exit00 = new Exit("01", new Vector(13, 15), 0);
61
62            Exits.Add(Exit00);
63        }
64
65        if (MapIndex == "01")
66        {
67            Exit Exit00 = new Exit("00", new Vector(6, 5), 0);
68            Exits.Add(Exit00);
69
70            StepsToAnEncounter = 5;
71            EncounterProbability = 30;
72
73            InitializeEnemies(MapIndex);
74        }
75    }
76
77    public void InitializeEnemies(string MapIndex)
78    {
79        if (MapIndex == "Test")
80        {
81            Enemies.Clear();
82
83            EnemyBase Ghost = EnemyList.Spookt();
84
85            EnemyGroup Group = new EnemyGroup(100);
86
87            Group.Add(Ghost);
88
89            Enemies.Add(Group);
90        }
91        else if (MapIndex == "01")
92        {
93            Enemies.Clear();
94
95            EnemyBase Cucumber = EnemyList.Cucumber();
96            EnemyBase Cucumber2 = EnemyList.Cucumber();
97            EnemyBase Cucumber3 = EnemyList.Cucumber();
98
99            EnemyBase ChiliSnake = EnemyList.ChiliSnake();
100            EnemyBase ChiliSnake2 = EnemyList.ChiliSnake();
101            EnemyBase ChiliSnake3 = EnemyList.ChiliSnake();
102
103            EnemyGroup Cucumber2x = new EnemyGroup(2);
104            EnemyGroup Cucumber3x = new EnemyGroup(2);
105            EnemyGroup ChiliSnake2x = new EnemyGroup(2);
106            EnemyGroup ChiliSnake3x = new EnemyGroup(2);
107            EnemyGroup CCS1x = new EnemyGroup(2);
108
109            Cucumber2x.Add(Cucumber);
110            Cucumber2x.Add(Cucumber2);
111
112            Cucumber3x.Add(Cucumber);
113            Cucumber3x.Add(Cucumber2);
114            Cucumber3x.Add(Cucumber3);
115
116            ChiliSnake2x.Add(ChiliSnake);
117            ChiliSnake2x.Add(ChiliSnake2);
118
119            ChiliSnake3x.Add(ChiliSnake);
120            ChiliSnake3x.Add(ChiliSnake2);
121            ChiliSnake3x.Add(ChiliSnake3);
122
123            CCS1x.Add(Cucumber);
124            CCS1x.Add(ChiliSnake);
125
126            Enemies.Add(Cucumber2x);
127            Enemies.Add(Cucumber3x);
128            Enemies.Add(ChiliSnake2x);
129            Enemies.Add(CCS1x);
130            Enemies.Add(ChiliSnake3x);
131        }
132    }
133}
Note: See TracBrowser for help on using the repository browser.