Alexander Gavrilov
63d256c1e9
Adjust siege engine targeting weights.
...
Stop shooting at leaving caravan guards for one.
2014-04-17 22:10:43 +04:00
Alexander Gavrilov
c27c38e4c0
Remove tired or hungry siege operators from duty when at peace.
...
The threshold is set at the level when they start to blink - normally
they would continue on with the job until they get a thirsty/hungry
thought, but immediately run off to eat if they lose the job (thus
refusing to load the engine after firing it). The code checks for
active sieges and whether there is a free replacement unit.
2014-04-15 21:52:39 +04:00
Alexander Gavrilov
fc9826389b
Account for meandering movement when predicting unit path in siege engine.
...
The movement is random, but there is an average slowdown coefficient.
2014-04-15 19:50:23 +04:00
Alexander Gavrilov
55cea36c76
Use the new API to produce combat reports for aimed siege engine attacks.
...
This requires exposing the actual operator unit to lua code.
2014-04-15 19:50:23 +04:00
Quietust
837da8ae98
Fix siege-engine to compile on Windows - don't have C++11, and pow() is picky about arg types
2014-03-25 13:30:45 -05:00
Alexander Gavrilov
8963a49414
Forbid the items shot by siege engines if the forbid ammo order is set.
...
This only applies when targeting the engine, so you could still make
cheaty infinite ammo training units by using stock aiming mode.
2014-03-24 16:05:12 +04:00
Alexander Gavrilov
97ae857c38
Always shatter glass items within bins thrown by a catapult.
...
The glass materials have impact strength copied from compression
strength, so the items had 1/5 chance to survive without damage.
Since glass is infinite, it makes sense to make it single-use.
2014-03-07 17:42:49 +04:00
Alexander Gavrilov
df22f25a69
Rewrite aiming error code to account for distance and engine quality.
...
Now the error is simulated by using an approximate normal distribution.
2014-03-07 17:35:04 +04:00
Alexander Gavrilov
ef93f2ea4c
Compute quality of siege engines and use it to extend firing range.
...
Since parts aren't there until it is built, it requires checking that.
2014-03-07 17:34:21 +04:00
Alexander Gavrilov
9827184ef7
Switch to the new random number generator class.
2014-03-07 17:34:21 +04:00
Alexander Gavrilov
983685de8d
Squash uninitialized variable warnings.
2014-03-07 17:34:21 +04:00
Alexander Gavrilov
41bcd52c36
Make siege engine debug markings toggleable via lua.
...
Also check that the tile actually exists to avoid crashes.
2014-03-07 17:34:04 +04:00
Alexander Gavrilov
d7e35c2d23
Add built-in enable and disable commands.
2013-09-30 13:19:51 +04:00
Alexander Gavrilov
3ff5d38a5c
Add a few utility functions to the main library.
2012-10-30 12:40:26 +04:00
Quietust
27c7dfde4f
ANY_FREE -> IN_PLAY, to match terminology used in DF's error messages
2012-10-23 12:14:21 -05:00
Alexander Gavrilov
459c69046b
Dissolve the World module class into a namespace.
...
It made accessing persistent data way too cumbersome.
2012-10-06 13:46:20 +04:00
Alexander Gavrilov
164c61b638
Forbid stuff from bins in siege-engine, if forbid ammo standing order set.
2012-09-27 10:43:42 +04:00
Alexander Gavrilov
a80f574be8
Only initialize siege engine in dwarf mode.
2012-09-19 19:52:57 +04:00
Alexander Gavrilov
82e870c8dd
Move siege engine out of devel.
2012-09-17 14:59:59 +04:00