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 |
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
783 | #endregion draw_header |
|
769 |
|
784 | ||
|
770 |
|
785 | ||
|
771 | batch.End(); |
|
786 | batch.End(); |
|
772 |
|
787 | ||
|
773 |
|
|
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 |
|
|
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