-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathdevplan.txt
More file actions
161 lines (146 loc) · 10 KB
/
devplan.txt
File metadata and controls
161 lines (146 loc) · 10 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
ACTIVE NOTES:
- What happens to multiple unique spawn hosts on "main force" when they go to a new planet?
- They get unique spawn areas, but they have to coordinate regarding the landing pad, OR they can install a mod to have multiple but it is still up to them to coordinate.
- Change permissions to be enabled/disabled when entering/leaving the holding pen (use custom surface changed event?)
------------------------------------------------------------------------------------------------------------------------
BACKLOG:
Minor:
- If dead when resetting spawn... possibly delay the opening of the welcome GUI or block spawning until character is spawned?
- Expose old enemy scaling as an option? And/or remove unnecessary checks/logs
- Refresh players in admin controls when dropdown is clicked
Performance:
- User on_nth_tick for any tick % (modulo) operations.
- SeparateSpawnsGenerateChunk should only search for closest spawn once and pass to sub functions!
- Rework world eater to use less find_entities_filtered
Major:
- Space Age Support (In Progress)
------------------------------------------------------SPACE AGE---------------------------------------------------------
- Map Settings changes?
- Pollution changes (regrowth)?
- Enemy changes?
- Landing pad locations per FORCE limited to 1?
- Spawner health tied to evolution?
- Source: https://forums.factorio.com/115737
- Specifics that I might need to investigate:
Added LuaPlayer::land_on_planet() method.
Added LuaPlayer::enter_space_platform() and leave_space_platform() method.
Added cargo-landing-pad prototype.
Added space-platform-starter-pack, space-location, planet and space-connection prototypes.
Added surface-property and surface prototypes.
Added new controller type (remote), which is to build space platforms, so it allows ghost building but not any physical manipulation.
Added LuaPlayer::physical_surface, physical_surface_index, physical_vehicle and physical_position read.
LuaGameScript::print, LuaPlayer::print, LuaSurface::print and LuaForce::print no longer accept Color as a second parameter.
Added LuaSurface::set_property() and get_property() methods.
Added LuaSurface::execute_lightning() method.
Added LuaSurface::create_global_electric_network() and destroy_global_electric_network() methods.
Added LuaSurface::has_global_electric_network read.
Added LuaSurface::platform read.
Added LuaSurface::pollutant_type read.
Added airborne-pollutant prototype and changed various pollution related properties to support multiple pollution types.
Added LuaForce::set_surface_hidden() and get_surface_hidden() methods.
Added LuaSurfacePrototype::surface_properties read.
Added on_player_controller_changed event.
Added LuaGameScript::technology_notifications_enabled (read/write).
Added LuaForce::copy_from() and copy_chart() methods.
------------------------------------------------------------------------------------------------------------------------
Other Ideas, Not Committed:
- Look into checking if a force has a chunk visible (for regrowth)
- Add option to spawn on existing chunks (look for chunks with any entities in them, or use regrowth logic)
- Add option for spawn pen to be on a specified surface (not sure this serves any real purpose)
- Change "search for ungenerated spawn point" to be a "roll" button that the player can re-roll? Maybe it shows on the map in an icon where they might go first?
- Make players join a "holding_pen" force instead of the main force? Might cause issues with chat and vision?
- Separate chest sharing and electricity ()
- Consider scrapping any overlapping mod settings from the config. ONLY keep the part that can't easily be done in the mod settings menu... NOT SURE about this.
- Change enable_shared_team_vision to allow players to change this per player (like BNO)
- Change enable_friendly_fire to be per team?
- Allow players to spawn "near" an existing player (by request)
- Change regrowth to be list of surfaces indexed by surface name?
- Figure out how to reset player inventory on player reset to avoid extra items? (save and load items?)
- Work on space ex support?
- Profile regrowth and try to improve performance ?
- Possibly adjust easy/medium evo factors on new player joined?
- Convert regrowth to a proper mod
- Create shared electricty with a LIMITED output transfer rate using a custom accumulator?
- Cleanup offline protection (Lots of commented out code)
- Custom tips and tricks??
--------------------------------------------------------DONE------------------------------------------------------------
- First setup the mod settings and lua global settings.
- Test out removing the creation of a custom surface and ensure map settings can be set as needed. Possibly create a separate surface, or just a separate area away from the origin, for starting players.
- Start copying in the core pieces required for the primary spawning mechanic.
- Document config and mod settings using Lua annotation as a custom class
- Document global ocore as a custom class (with subclasses/types as needed)
- Add multiple surfaces to options/settings [As a single boolean.]
- Convert scenario to a mod.
- Add multiple surfaces to Spawn GUI (Drop down selection?)
- Configurable welcome/server messages in mod settings.
- Check and update all functions using surfaces to clearly use either the LuaSurface obj OR a string name.
- Create server settings admin GUI tab
- Figure out how to define custom lua table/data structs to make syntax/linting work?
- Setup multiplayer testing using multiple instances and some batch files.
- Change Near/Far buttons to radio selection w/ text explanation and have a single Spawn button.
- Refactor the spawn menu GUI (don't destroy the menu unless we need to, refresh only the elements we need to, save data to a global using tags?)
- Remove separate buddy spawn menu?
- Remove the shared spawn separate GUI window?
- Redo DisplayBuddySpawnRequestMenu and DisplayBuddySpawnWaitMenu and move their events to the new event handlers
- Refresh the spawn controls GUI when player accepts/rejects
- Redo FindUngeneratedCoordinates to pick a random direction, and use the distance to get a starting point, instead of multiple tries.
- Fix all GUI styling (buttons outside of content)
- Force enable_world_eater to require enable_regrowth
- Add warning for modifying surface settings after gameplay has started
- Tooltips for GUI elements in spawn menu options!
- Check all settings to see which CAN'T be changed during runtime. Possibly move these to startup.
- FIGURE OUT CHUNK NOT IN MAP REGROWTH ISSUE!
- Add validation for default starting surface name
- Make server info headings consistent / Add heading for spawn controls (change button?)
- Confirm regrowth should add new chunks when found (not only on chunk generate?)
- Make disable main team setting work (hide radio button)
- Support run time toggling of enable_shared_team_vision
- Support run time toggling of enable_friendly_fire
- Watch for chunks being generated to be able to move the player to their spawn as soon as it is done with the last chunk.
- If this is their first spawn, give them items. Otherwise don't give new items and don't clear items either?
- Change enable_spawning_on_other_surfaces to a start up setting?
- Test out space expansion
- Compare GUI mod button icons to space ex (looks better??)
- Create surface blacklist setting.
- Enable/Disable and show information about shared spawn based on shared spawn dropdown interactions.
- Ensure updates to regrowth surfaces don't cause errors (update indexes)
- Confirm regrowth does or does not delete chunks with robots in them?
- Show the surface name in shared spawn join GUI
- Show the surface name in the share spawn controls tab
- Add rich text map location in spawn controls tab for current home location
- Move sharedspawns data under unique spawns
- "uniqueSpawns" should have a "primary" flag and be indexed by surface FIRST
- Make respawn locations first be indexed by player, then surface
- Offline protection re-implement!
- Resolve regrowth issue with radars and confirm that when we mark chunks for removal, they can be refreshed still. (trace logic!)
- Move "buddy" info to unique_spawns as well.
- Fix search vector to use more variable vector'ing, always normalize vector, and then ensure the other reliant functions work still.
- Add regrowth settings GUI tab? Not sure how the other settings fit in with a dedicated regrowth tab? Need to be able to enable/disable other surfaces during runtime?
- Test multiple enemy forces to provide a way to scale evolution locally (need to continually set the evo factor back)
- Change main_force_name to a startup setting! New players in spawn area should stay on default "player" force to avoid mod conflicts on player init?
- In spawn controls, add a note if spawn is full (and maybe disable the shared spawn checkbox?)
- Add rich text map location links for new spawns (print to chat)
- Add in square bases again
- TEST resizing spawn areas and moat sizes!
- Create a function to create secondary uniqueSpawns for the same player
- Expose primary AND secondary spawn info in spawn controls GUI tab
- Shared items (proper)
- Shared electricity (proper) (with configurable settings)
- Add a show current respawn location button (same as show spawn location)
- Expose some settings for adjusting easy and medium enemy evolution values
- Add FAQ for enemy modifications
- Add FAQ for item and energy sharing
- FIX GetNextPlayerIndex!
- Lots of localizations!
- List all TO-DOs in code here.
- Remove testing surfaces before release!
- Change default surface selection to be the default surface if multiple are enabled
- Test and make sure scenario settings overrides get written back to mod settings to avoid any out of sync settings.
- Test teleporting to other surfaces
- Test on_player_changed_surface
- Run the profiler
- Pull out general spawn config from surfaces config
- Redo resource placement to be simpler (and make a linear layout for square base)
- Default to selecting SELF in admin controls player dropdown?
- Add refresh chunks around spidertrons based on their vision
- Allow players to restart at anytime via GUI button (configurable setting by admin)