Description:
Add TODOs (also kind of roadmap).
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -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 |
@@ -42,6 +42,10 | |||
|
42 | 42 | { |
|
43 | 43 | this.position += change; |
|
44 | 44 | } |
|
45 | public void Jump (Vector2 change) | |
|
46 | { | |
|
47 | this.position = change; | |
|
48 | } | |
|
45 | 49 | |
|
46 | 50 | public Matrix get_transformation(GraphicsDevice graphicsDevice) |
|
47 | 51 | { |
@@ -269,6 +269,7 | |||
|
269 | 269 | float pitch = 0.0f; |
|
270 | 270 | float pan = 0.0f; |
|
271 | 271 | |
|
272 | ||
|
272 | 273 | // Run game logic in here. Do NOT render anything here! |
|
273 | 274 | KeyboardState keyboardCur = Keyboard.GetState(); |
|
274 | 275 | |
@@ -321,6 +322,11 | |||
|
321 | 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 | 330 | if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash) && keyboardCur.IsKeyDown(Keys.LeftShift)) |
|
325 | 331 | { |
|
326 | 332 | sound.Play(volume, pitch, pan); |
@@ -351,6 +357,7 | |||
|
351 | 357 | |
|
352 | 358 | |
|
353 | 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 | 362 | if (MathUtils.Between(mouseCur.X, 0, 50)) |
|
356 | 363 | { |
@@ -369,6 +376,14 | |||
|
369 | 376 | { |
|
370 | 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 | 387 | #endregion input |
|
373 | 388 | |
|
374 | 389 | this.simulation.update(gameTime.ElapsedGameTime); |
@@ -403,7 +418,6 | |||
|
403 | 418 | |
|
404 | 419 | base.Update(gameTime); |
|
405 | 420 | |
|
406 | ||
|
407 | 421 | } |
|
408 | 422 | |
|
409 | 423 | |
@@ -677,15 +691,16 | |||
|
677 | 691 | OutlineSquare(this.mouseGrid.X, this.mouseGrid.Y, Color.Yellow, 1); |
|
678 | 692 | } |
|
679 | 693 | |
|
694 | #if DEBUG | |
|
680 | 695 | OutlineSquare(1, 1, Color.Red, 2); |
|
681 | 696 | OutlineSquare(3, 1, Color.Blue, 2); |
|
682 | 697 | OutlineSquare(5, 1, Color.Green, 2); |
|
683 | 698 | OutlineSquare(7, 1, Color.Orange, 2); |
|
699 | #endif | |
|
684 | 700 | |
|
685 | 701 | |
|
686 | 702 | |
|
687 | ||
|
688 | #endregion draw_cursor | |
|
703 | #endregion draw_cursor | |
|
689 | 704 | /* |
|
690 | 705 | |
|
691 | 706 | for (int i = 0; i< 80; i++) |
@@ -707,7 +722,7 | |||
|
707 | 722 | } |
|
708 | 723 | }//*/ |
|
709 | 724 | |
|
710 |
|
|
|
725 | #region draw_trees | |
|
711 | 726 | for (int i = 0; i < this.simulation.map.MapHeight; i++) |
|
712 | 727 | { |
|
713 | 728 | for (int j = 0; j < this.simulation.map.MapWidth; j += 1) |
@@ -726,7 +741,7 | |||
|
726 | 741 | } |
|
727 | 742 | } |
|
728 | 743 | } |
|
729 |
|
|
|
744 | #endregion draw_trees | |
|
730 | 745 | |
|
731 | 746 | drawTileAt(2, 2, 140, 2); |
|
732 | 747 | drawTileAt(1, 1, 140, 2); |
@@ -734,7 +749,7 | |||
|
734 | 749 | |
|
735 | 750 | batch.End(); |
|
736 | 751 | |
|
737 |
|
|
|
752 | #region draw_header | |
|
738 | 753 | batch.Begin(SpriteSortMode.BackToFront, |
|
739 | 754 | BlendState.AlphaBlend, |
|
740 | 755 | null, |
@@ -765,12 +780,12 | |||
|
765 | 780 | |
|
766 | 781 | batch.DrawString(monoFont, header_left, new Vector2(1, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f); |
|
767 | 782 | batch.DrawString(monoFont, header_middle, new Vector2(middle_start, 1), Color.Black, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f); |
|
768 |
|
|
|
783 | #endregion draw_header | |
|
769 | 784 | |
|
770 | 785 | |
|
771 | 786 | batch.End(); |
|
772 | 787 | |
|
773 |
|
|
|
788 | #region debug_window | |
|
774 | 789 | //Calcs for debug window: |
|
775 | 790 | if ((this.frameCounter % 15) == 0) |
|
776 | 791 | { |
@@ -795,7 +810,15 | |||
|
795 | 810 | |
|
796 | 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 | 822 | debugWindow.Layout(debugInfo, additionalInfo, ref show_another_window); |
|
800 | 823 | |
|
801 | 824 | //String[] messages = { "Message1", "Message2" }; |
@@ -814,7 +837,7 | |||
|
814 | 837 | |
|
815 | 838 | _imGuiRenderer.AfterLayout(); |
|
816 | 839 | |
|
817 |
|
|
|
840 | #endregion debug_window | |
|
818 | 841 | |
|
819 | 842 | |
|
820 | 843 | stopWatch.Stop(); |
You need to be logged in to leave comments.
Login now