Description:
Toggle for Forest Policy plus more tweaks to crowding.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r78:89c651b103f6 -

@@ -344,21 +344,16
344 344 this.showBudget = !this.showBudget;
345 345
346 346 }
347 if (keyboardCur.IsKeyDown(Keys.F) && keyboardPrev.IsKeyUp(Keys.F))
348 {
349 this.showForest = !this.showForest;
350
351 }
347 352 if (keyboardCur.IsKeyDown(Keys.C) && keyboardPrev.IsKeyUp(Keys.C))
348 353 {
349 354 this.camera.Jump(Vector2.Zero);
350 355
351 356 }
352 if (keyboardCur.IsKeyDown(Keys.O) && keyboardPrev.IsKeyUp(Keys.O))
353 {
354 this.simulation.tree_planting -= 1;
355
356 }
357 if (keyboardCur.IsKeyDown(Keys.P) && keyboardPrev.IsKeyUp(Keys.P))
358 {
359 this.simulation.tree_planting += 1;
360
361 }
362 357 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash) && keyboardCur.IsKeyDown(Keys.LeftShift))
363 358 {
364 359 sound.Play(volume, pitch, pan);
@@ -832,7 +827,10
832 827 ref this.simulation.paused, debugWindow.monoFont, this.currentNode);
833 828 }
834 829
835 ForestWindow.Render(ref this.showForest, debugWindow.monoFont, this.simulation);
830 if (this.showForest)
831 {
832 ForestWindow.Render(ref this.showForest, debugWindow.monoFont, this.simulation);
833 }
836 834
837 835
838 836 _imGuiRenderer.AfterLayout();
@@ -42,8 +42,8
42 42 private const float NEIGHBOR_NEW_TREE_CHANCE = 0.995f;
43 43 private const float NEIGHBOR_CROWDS_TREE_CHANCE = 0.995f;
44 44
45 public const int TREE_PLANT_COST = 1000;
46 public const int TREE_CLEAR_COST = 750;
45 public const int TREE_PLANT_COST = 750;
46 public const int TREE_CLEAR_COST = 500;
47 47
48 48 public int Tick
49 49 {
@@ -142,7 +142,7
142 142 _tree_planting = MathUtils.Clamp(value, 0, 25);
143 143 }
144 144 }
145 public int _tree_clearing = 5;
145 public int _tree_clearing = 0;
146 146 public int tree_clearing
147 147 {
148 148 get {
@@ -153,10 +153,18
153 153 }
154 154 }
155 155
156 public int crowded_trees
157 {
158 get {
159 return this.map.iterate_cells_with_neighbors(7).Where(c => c.hasTree).Count();
160
161 }
162 }
163
156 164 public float healthy_percent
157 165 {
158 166 get {
159 return ((float)(this.map.tree_count - this.map.iterate_cells_with_neighbors(7).Count()) / this.map.tree_count) * 100;
167 return (float)(this.map.tree_count - this.map.iterate_cells_with_neighbors(7).Where(c => c.hasTree).Count()) / this.map.tree_count * 100;
160 168 }
161 169 }
162 170
@@ -182,6 +190,7
182 190
183 191 this.DateTime = this.DateTime.AddMonths(1);
184 192
193
185 194 foreach (Cell cell in this.map.iterate_cells())
186 195 {
187 196 if (random.NextDouble() > SPONTANEOUS_NEW_TREE_CHANCE)
@@ -190,21 +199,27
190 199 }
191 200 }
192 201
202 int new_planted = 0;
193 203 foreach (Cell cell in this.map.iterate_cells_with_neighbors(4))
194 204 {
195 205 if (random.NextDouble() > NEIGHBOR_NEW_TREE_CHANCE)
196 206 {
197 207 cell.hasTree = true;
208 new_planted += 1;
198 209 }
199 210 }
211 System.Console.WriteLine(String.Format("New {0}", new_planted));
200 212
213 int crowded_out = 0;
201 214 foreach (Cell cell in this.map.iterate_cells_with_neighbors(7))
202 215 {
203 216 if (random.NextDouble() > NEIGHBOR_CROWDS_TREE_CHANCE)
204 217 {
205 218 cell.hasTree = false;
219 crowded_out += 1;
206 220 }
207 221 }
222 System.Console.Write(String.Format("Crowded {0}", crowded_out));
208 223
209 224 int trees_to_plant = this.tree_planting;
210 225
@@ -219,22 +234,18
219 234 }
220 235 }
221 236
237
238 // while (trees_to_clear > 0 && neigh.Current != null)
222 239 int trees_to_clear = this.tree_clearing;
223
224 IEnumerator<Cell> neigh = this.map.iterate_cells_with_neighbors(7).GetEnumerator();
225 neigh.MoveNext();
226
227 while (trees_to_clear > 0 && neigh.Current != null)
240 System.Console.Write(String.Format("Found {0}; ", this.map.iterate_cells_with_neighbors(7).Where(c => c.hasTree).Count()));
241 foreach (Cell cell in this.map.iterate_cells_with_neighbors(7).Where(c => c.hasTree))
228 242 {
229 Cell current = neigh.Current;
230 current.hasTree = false;
231 neigh.MoveNext();
232 trees_to_clear -= 1;
243 if (trees_to_clear > 0) {
244 cell.hasTree = false;
245 trees_to_clear -= 1;
246 }
233 247 }
234 248
235 //this.money -= (this.map.tree_count * 1);
236 //this.money += 1000;
237
238 249 Budget newBudget = new Budget
239 250 {
240 251 DateTime = this.DateTime,
@@ -1,7 +1,6
1 1 using ImGuiNET;
2 2
3 3 using Num = System.Numerics;
4 using System.Linq;
5 4
6 5 namespace isometricparkfna.UI
7 6 {
@@ -42,7 +41,7
42 41 ImGui.SliderInt("Tree Clearing", ref new_tree_clearing, 0, 25, string.Format("%d (${0})", new_tree_clearing*Simulation.TREE_CLEAR_COST));
43 42 sim.tree_clearing = new_tree_clearing;
44 43
45 ImGui.Text(string.Format("Crowded Trees: {0}", sim.map.iterate_cells_with_neighbors(7).Count())); //via LINQ
44 ImGui.Text(string.Format("Crowded Trees: {0}", sim.crowded_trees ));
46 45 ImGui.Text(string.Format("Percent Healthy Trees: {0:F2}", sim.healthy_percent));
47 46
48 47 if (ImGui.Button("Okay"))
You need to be logged in to leave comments. Login now