Description:
Add TODOs (also kind of roadmap).
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r48:a68330329b8f -

@@ -0,0 +1,61
1
2 Gameplay:
3 Money:
4 - Add basic subsidy @milestone(1: Basic Money)
5 - Balance sheet @milestone(1: Basic Money)
6 -
7 Logging:
8 - Add contract struct @milestone(3: Contracts)
9 - Add tree simulation @milestone(3: Contracts)
10 - Add contract generation @milestone(3: Contracts)
11 - Outline reserved areas @milestone(3: Contracts)
12 -
13 Trees:
14 - Add basic maintenance cost @milestone(1: Basic Money)
15 - Add basic age simulation
16 - Biodiversity @maybe
17 - Research agreements @maybe
18 -
19 Leisure:
20 - Add way to mark off area for leisure @milestone(4: Leisure)
21 - Basic satisfaction @milestone(4: Leisure)
22 - Set
23 End games/outcomes:
24 - Financial mismanagement @milestone(5: Events)
25 - Figure out threshold
26 - Self-sufficient
27 i.e., no need for subsidy
28 May not be ending
29 - Forest mismanagement @milestone(5: Events)
30 - Figure out threshold
31 - High biodiversity? @maybe
32 - High satisfaction
33 - Figure out how to differentiate this from forest health
34 - Hat Trick: Satisfaction, Forest Health, **and** Self-Sustaining
35 - Figure out extent that this should even be possible?
36 Thematically, maybe dubious?
37 On the other hand, could be something that requires luck
38 It's possible in SimSafari
39 - Research center @maybe
40 -
41 Misc:
42 - Assistant commentary @milestone(5: Events)
43 Need to ensure it's not annoying
44 Basic random events
45 - Tree planting campaign
46 - Fire
47 - Friends of the park fundraiser
48
49 Structure:
50 - Add modes @milestone(5: Events)
51 - Refactor stuff out of FNAGame
52 - Saving
53 Other features:
54 Accessibility:
55 - Verify contrast
56 - Increase display size
57 - Turn off bad outcomes
58 Other QoL things:
59 - Adjust display size
60 - Toggle trees translucency
61 - Right click to center No newline at end of file
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -42,6 +42,10
42 {
42 {
43 this.position += change;
43 this.position += change;
44 }
44 }
45 public void Jump (Vector2 change)
46 {
47 this.position = change;
48 }
45
49
46 public Matrix get_transformation(GraphicsDevice graphicsDevice)
50 public Matrix get_transformation(GraphicsDevice graphicsDevice)
47 {
51 {
@@ -269,6 +269,7
269 float pitch = 0.0f;
269 float pitch = 0.0f;
270 float pan = 0.0f;
270 float pan = 0.0f;
271
271
272
272 // Run game logic in here. Do NOT render anything here!
273 // Run game logic in here. Do NOT render anything here!
273 KeyboardState keyboardCur = Keyboard.GetState();
274 KeyboardState keyboardCur = Keyboard.GetState();
274
275
@@ -321,6 +322,11
321 this.showGrid = !this.showGrid;
322 this.showGrid = !this.showGrid;
322
323
323 }
324 }
325 if (keyboardCur.IsKeyDown(Keys.C) && keyboardPrev.IsKeyUp(Keys.C))
326 {
327 this.camera.Jump(Vector2.Zero);
328
329 }
324 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash) && keyboardCur.IsKeyDown(Keys.LeftShift))
330 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash) && keyboardCur.IsKeyDown(Keys.LeftShift))
325 {
331 {
326 sound.Play(volume, pitch, pan);
332 sound.Play(volume, pitch, pan);
@@ -351,6 +357,7
351
357
352
358
353 MouseState mouseCur = Mouse.GetState();
359 MouseState mouseCur = Mouse.GetState();
360 this.original_point = Vector2.Transform(new Vector2(mouseCur.X, mouseCur.Y), Matrix.Invert(camera.get_transformation(GraphicsDevice)));
354
361
355 if (MathUtils.Between(mouseCur.X, 0, 50))
362 if (MathUtils.Between(mouseCur.X, 0, 50))
356 {
363 {
@@ -369,6 +376,14
369 {
376 {
370 this.camera.Move(new Vector2(0, 4));
377 this.camera.Move(new Vector2(0, 4));
371 }
378 }
379
380 if (mouseCur.RightButton == ButtonState.Pressed)
381 {
382 Vector2 cameraMiddle = this.camera.position + new Vector2(FNAGame.width / 2, FNAGame.height / 2);
383 Vector2 delta = this.camera.position - this.original_point;
384 this.camera.Jump(this.original_point);
385 }
386
372 #endregion input
387 #endregion input
373
388
374 this.simulation.update(gameTime.ElapsedGameTime);
389 this.simulation.update(gameTime.ElapsedGameTime);
@@ -403,7 +418,6
403
418
404 base.Update(gameTime);
419 base.Update(gameTime);
405
420
406
407 }
421 }
408
422
409
423
@@ -677,15 +691,16
677 OutlineSquare(this.mouseGrid.X, this.mouseGrid.Y, Color.Yellow, 1);
691 OutlineSquare(this.mouseGrid.X, this.mouseGrid.Y, Color.Yellow, 1);
678 }
692 }
679
693
694 #if DEBUG
680 OutlineSquare(1, 1, Color.Red, 2);
695 OutlineSquare(1, 1, Color.Red, 2);
681 OutlineSquare(3, 1, Color.Blue, 2);
696 OutlineSquare(3, 1, Color.Blue, 2);
682 OutlineSquare(5, 1, Color.Green, 2);
697 OutlineSquare(5, 1, Color.Green, 2);
683 OutlineSquare(7, 1, Color.Orange, 2);
698 OutlineSquare(7, 1, Color.Orange, 2);
699 #endif
684
700
685
701
686
702
687
703 #endregion draw_cursor
688 #endregion draw_cursor
689 /*
704 /*
690
705
691 for (int i = 0; i< 80; i++)
706 for (int i = 0; i< 80; i++)
@@ -707,7 +722,7
707 }
722 }
708 }//*/
723 }//*/
709
724
710 #region draw_trees
725 #region draw_trees
711 for (int i = 0; i < this.simulation.map.MapHeight; i++)
726 for (int i = 0; i < this.simulation.map.MapHeight; i++)
712 {
727 {
713 for (int j = 0; j < this.simulation.map.MapWidth; j += 1)
728 for (int j = 0; j < this.simulation.map.MapWidth; j += 1)
@@ -726,7 +741,7
726 }
741 }
727 }
742 }
728 }
743 }
729 #endregion draw_trees
744 #endregion draw_trees
730
745
731 drawTileAt(2, 2, 140, 2);
746 drawTileAt(2, 2, 140, 2);
732 drawTileAt(1, 1, 140, 2);
747 drawTileAt(1, 1, 140, 2);
@@ -734,7 +749,7
734
749
735 batch.End();
750 batch.End();
736
751
737 #region draw_header
752 #region draw_header
738 batch.Begin(SpriteSortMode.BackToFront,
753 batch.Begin(SpriteSortMode.BackToFront,
739 BlendState.AlphaBlend,
754 BlendState.AlphaBlend,
740 null,
755 null,
@@ -765,12 +780,12
765
780
766 batch.DrawString(monoFont, header_left, new Vector2(1, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
781 batch.DrawString(monoFont, header_left, new Vector2(1, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
767 batch.DrawString(monoFont, header_middle, new Vector2(middle_start, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
782 batch.DrawString(monoFont, header_middle, new Vector2(middle_start, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);
768 #endregion draw_header
783 #endregion draw_header
769
784
770
785
771 batch.End();
786 batch.End();
772
787
773 #region debug_window
788 #region debug_window
774 //Calcs for debug window:
789 //Calcs for debug window:
775 if ((this.frameCounter % 15) == 0)
790 if ((this.frameCounter % 15) == 0)
776 {
791 {
@@ -795,7 +810,15
795
810
796 var additionalInfo = new Dictionary<string, string>();
811 var additionalInfo = new Dictionary<string, string>();
797
812
798 additionalInfo.Add("Tracery Test", this.output);
813 Vector2 cameraMiddle = this.camera.position + new Vector2(FNAGame.width / 2, FNAGame.height / 2);
814 var state = Mouse.GetState();
815 Vector2 delta = this.camera.position - this.original_point;
816
817 additionalInfo.Add("cameraMiddle", cameraMiddle.ToString());
818 additionalInfo.Add("mouse ", String.Format("{0}, {1}", state.X, state.Y));
819 additionalInfo.Add("mouse delta", delta.ToString());
820
821 additionalInfo.Add("Tracery Test", this.output);
799 debugWindow.Layout(debugInfo, additionalInfo, ref show_another_window);
822 debugWindow.Layout(debugInfo, additionalInfo, ref show_another_window);
800
823
801 //String[] messages = { "Message1", "Message2" };
824 //String[] messages = { "Message1", "Message2" };
@@ -814,7 +837,7
814
837
815 _imGuiRenderer.AfterLayout();
838 _imGuiRenderer.AfterLayout();
816
839
817 #endregion debug_window
840 #endregion debug_window
818
841
819
842
820 stopWatch.Stop();
843 stopWatch.Stop();
You need to be logged in to leave comments. Login now