/
CHANGELOG
202 lines (141 loc) · 8.93 KB
/
CHANGELOG
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# 2012 03 15
create_schemaverse.sql - v1.1.0
tic.pl - v0.11.1
Bug Fixes
-resolved issues with tic.pl and action_permission_check() that allowed for double actions and actions beyond the grave
Gameplay Changes
-First 1 minute of fleet runtime is now free. You can run the upgrade(id, 'FLEET_RUNTIME', 1) once wihtout having the money.
-Players starting balance has been lowered to account for this
# 2012 03 06
create_schemaverse.sql - v1.1.0 location, location, location
tic.pl - v0.11
Gameplay / System Changes
[Location]
-Any table/view in the game that had the columns location_x, location_y or destination_x, destination_y have been replaced with location and destination columns, both of the Point data type.
-Any function that accepted a location_x integer, location_y integer now accepts location Point (and similar to destination)
-Specifics on ships/planets in range are now cached after the movement for a tic is complete. This should speed up all requests to views like ships_in_range
- Cached data is stored in ships_near_ships and ships_near_planets (Not accessible to players)
[Movement]
-MOVE() is gone
-Ship movement occurs at the beginning of the tic using the MOVE_SHIPS() command
-The course of a ship can be controlled using SHIP_COURSE_CONTROL(ship_id, target_speed integer, target_direction integer, destination point)
-Once set, a ship will burn all available fuel to attempt to reach the target_speed
-Ships will also slow down if fuel is available once the destination is reached
-MOVE() bug which stopped ships just outside of a ships range has been resolved
-SHIP_COURSE_CONTROL() can be called multiple times during a tic. The actual ship movement will not happen until the tic called MOVE_SHIPS()
Credits (Thanks guys!)
derpfish - Contributed the new MOVE_SHIP()/SHIP_COURSE_CONTROL() system
cbbrowne - Contributed the changeover to Point data types from (integer_x,integer_y)
MassConfusion - Bug Report
# 2012 02 23
create_schemaverse.sql - v1.0.0 <--- Awwwwww yeah. That's nice.
stat.pl - v1.0
Gameplay / System Changes
[Trophies]
- Trophies now have a Weight and Run Order
- Trophies can now be back-run for older rounds
- ROUND_CONTROL() calls the new trophy_script_#(_round_id integer) instead of trophy_script_#()
- 29 New trophies were created to take advantage of the Weighting
- You can see who is currently in the running for a trophy by issuing a select against trophy_script_#((SELECT last_value FROM round_seq)); where the # is the trophy ID.
[Stats]
- Stat Tables: player_overall_stats, player_round_stats, round_stats
- Stat Views: current_player_stats, current_round_stats, player_stats
- player_round_stats are updated 1 by 1 over time in stat.pl
- round_stats is updated after every 100 player updates in stat.pl
- player_stats shows both stats for the current round as well as aggregated stats from previous rounds
- players have access to SELECT on all stat views and tables. The table results will not be as fresh but will be returned much faster compared to the views
- ROUND_CONTROL() updates the stats before issuing trophies
- ROUND_CONTROL() prepares the new stat rows for the new round in player_round_stats and round_stats
[Misc]
Changed where the Variable related functions were created within create_schemaverse.sql so that the script actually works
# 2012 01 23
Bug Fix
- ships_in_range.health now returns a numeric value rather than an integer. Represents the percentage of a ship's remaining health.
# 2012 01 15
Gameplay change / Bug Fix
- Ships can no longer create ships at location (0,0). This was how the rule was intended during the recent map changes but I missed commenting out a line in create_ship
- A ship's first coordinates are also now added to the ship_flight_recorder during create_ship_event
# 2012 01 13
create_schemaverse.sql - v0.14.2
Bug Fix
-Round_Control() difficulty of a planet could be zero leaving it 'dead' (impossible to mine)
Gameplay change
-Round_Control() has been altered so that all player home planets start equal. Inital planet settings for home planets are:
mine_limit 30
fuel 50000000
difficulty 2
# 2011 12 29
Bug Fix
-Round_control() was not setting enabled='t' when activing fleets players had designated to be active at the start of a round
-Round_control() was also not removing the owner of Torono at the begging of a round. Now sets to NULL.
# 2011 10 22
tic.pl - v0.10.1
Bug Fix/Gameplay change
-Since there are less planets, the tic had to be changed to replenish the fuel supply much slower
# 2011 10 21
create_schemaverse.sql - v0.14 - Now I remember where I put that ship
New Features
- Players can now store their own variables in the public_variables view.
This should give them a lot more control over the state of their scripts.
Note: Players cannot reuse the names of system variables
Players can maintain their variables with UPDATE/INSERT/DELETE on the public_vairable view or use the following commands
- SET_NUMERIC_VARIABLE(CHARACTER VARYING, INTEGER)
- SET_CHAR_VARIABLE(CHARACTER VARYING, CHARACTER VARYING)
The GET_NUMERIC_VARIABLE() and GET_CHAR_VARIABLE() have not changed
# 2011 10 17
create_schemaverse.sql - v0.14 - Where is everyone?
Rule Alterations and Balancing
-New maps will now be generated every round
-The center box where you could generate ships no longer exists
-You can generate a ship on 0,0 still
-Only ~(total_players * 1.05) planets will be created each round
# 2011 09 10
create_schemaverse.sql - v0.13 - Packrat
New Features
- After a round ends, all events from the round are moved into the event_archive table. The first round to be archived will be round 4
- read_event() has not changed when using it on the my_events view, if you want to use it on the new event_archive
then you can use it by passing a round id like: read_event(round_id, event_id)
- A new view has been created, current_player_stats, to allow you to better track your opponents and allies
# 2011 08 28
create_schemaverse.sql - v0.12 - Stateful Ships
tic.pl - v0.10
ref.pl - v0.2
New Features
- Ships have been given a way to store state. You no longer have to rely on your fleet script to call all actions each tic.
my_ships.action : Stores either NULL, 'ATTACK', 'REPAIR', 'MINE'
my_ships.action_target_id : Stores either NULL, the Ship ID or Planet ID of the object you want to perform the action against
The tic.pl program will run the desired action for each ship after performing the fleet scripts.
- New MOVE overloads and functionality.
MOVE(ship, speed, x, y); -- automatically calculates direction. must have enough fuel still to stop
MOVE(ship, x, y); -- automatically calculates direction and best possible speed
MOVE(ship, speed, direction, x, y) -- Still works as before
As the second overload also mentions, if you give a NULL speed and direction, the system will now calculate the optimal choice for both
Rule Alterations and Balancing
- The calculation for an attack is now:
my_ships.attack * ( DEFENSE_EFFICIENCY / enemy.defense + DEFENSE_EFFICIENCY)
This will likely be tweaked but right now DEFENSE_EFFICIENCY is 0.50
Bug Fixes
-committed some fixes to ROUND_CONTROL() I had forgot about
# 2011 08 24
create_schemaverse.sql - v0.11 - The DC19 Tournament Edition
tic.pl - v0.9
ref.pl - v0.2
Rule Alterations and Balancing
-Changed Pricing to try and make upgrading a better option
-Destroyed ships no longer return the value of the initial ship to the players player.balance (changed in the destroy_ship() trigger)
--A new function will need to be created called ~'reset' that puts a player back to the starting game values, destroys all ships, etc.
-Queries only get 1 minute of run time if they are ran outside of the script system, down from 2 minutes (change made in ref.pl)
-Fleets that run over their limit are automatically set to disabled (change made in ref.pl)
Bug Fixes
[create_schemaverse.sql]
-SQL Injections all over these here parts
-Added NOT NULL to player.balance and player.fuel_reserve
-Fixed player_creation trigger issue where new players were not assigned a planet
-Can no longer charge a negative quantity for free money added to player.balance
-Fixed a ship.last_living_tic bug that would set a ship to destroyed if it's health was diminished to zero during the same tic the ship was created on
-my_ships.speed and my_ships.direction are no longer directly updatable because it does not calculate fuel costs when using this method. MOVE() must be used to alter these values
-Can no longer create ships where attack, defense, engineering and prospecting are given as values less than zero. This is to resolve one of the top game hacks discovered at DC19.
-Move fixes, mostly involving when you give a speed and direction but no destination x,y. This function isn't perfect but it is getting there. The suggestions I received recently will definitely be put to use in the near future to further develop this function.
-Fixed round control to start a new round even if it misses the day mark it should have started on
[tic.pl]
-Dead ships no longer try to move