Commit Graph

1155 Commits

Author SHA1 Message Date
reaperrr
4fa199fb10 Merge pull request #6320 from Mailaender/smudge-offset
Unhardcoded and self-documented more resource/smudge parameters
2014-08-26 22:25:32 +02:00
Matthias Mailänder
5b4f8d1446 unhardcode and self-document more resource/smudge parameters 2014-08-24 08:13:40 +02:00
Curtis Shmyr
345e88d75a Add IRenderInfantrySequenceModifier 2014-08-23 14:42:16 -06:00
obrakmann
022c1ae4d1 Merge pull request #6310 from pchote/shroud-reset-fix
Fix shroud hash updating.
2014-08-23 10:43:56 +02:00
Paul Chote
531e3cfaf3 Fix shroud hash updating. Fixes #6308.
This ensures that multiple Invalidations() in one tick will each update the shroud rendering.
2014-08-23 15:25:39 +12:00
Paul Chote
2acfc23f18 Account for map edges in Shroud.IsExploredCore. 2014-08-23 10:54:01 +12:00
Paul Chote
80c4870a0f Don’t clear shroud outside the map. Fixes #6097. 2014-08-23 09:53:27 +12:00
Alexander Fast
070d00c678 Fixes year numbers in license text in file headers. 2014-08-21 11:27:52 +02:00
reaperrr
4469b5f5ca Introduces ReloadModifier
and renames ROF -> ReloadDelay
2014-08-19 02:59:50 +02:00
Matthias Mailänder
df09d16a1c Merge pull request #6218 from pchote/percentmods
Change attribute modifiers to use integers.
2014-08-16 17:28:37 +02:00
Paul Chote
c80a12f99c Merge pull request #5937 from reaperrr/explosions2
Implements more sophisticated explosion animation/sound system
2014-08-16 01:58:11 +12:00
reaperrr
ef54f011bb Change ImpactTypes from array to bitfield approach. 2014-08-13 11:45:58 +02:00
Paul Chote
01cd6efbd0 Convert firepower modifiers to integer percentages. 2014-08-12 11:41:09 +12:00
Paul Chote
84d3497e96 Convert speed modifiers to integer percentages. 2014-08-12 11:41:09 +12:00
Paul Chote
0425416ce2 Convert damage modifiers to integer percentages. 2014-08-12 11:41:09 +12:00
Oliver Brakmann
8cec848a0f Add a mission objectives GUI panel 2014-08-08 13:35:49 +02:00
Oliver Brakmann
a3bf3e7403 Add support for mission objectives
Objectives can be either primary or secondary objectives. Primary ones
influence the outcome of the game.  If all primary objectives are
completed the game is won, and lost when any of them fails.

Objectives can be added at any stage during the game, allowing to react
dynamically to game events.

The objectives backend only contains the information about the
objectives themselves. It does not check if objectives are completed or
failed.  Instead, the state of objectives must be manually marked. The
backend, however, does check whether the game is won or lost.
2014-08-07 16:56:17 +02:00
Paul Chote
bf5da145b0 Introduce IUpgradable and purchasable unit upgrades. 2014-08-07 20:40:47 +12:00
atlimit8
898bf4959a Remove sub-cell offset bounds checking 2014-08-04 18:09:26 -05:00
atlimit8
9b30c21f93 Load subcells and default subcell index from mod.yaml 2014-08-04 18:09:26 -05:00
atlimit8
43478dd500 enum SubCell => int & Dictionary<SubCell, WVec> => WVec[] 2014-08-04 18:09:26 -05:00
reaperrr
8798658b35 New Explosion system code changes. 2014-08-04 23:24:51 +02:00
Taryn Hill
b6fd757672 Merge pull request #6030 from UberWaffe/CustomWarheads
Custom Warheads refactor
2014-08-03 10:35:36 -05:00
UberWaffe
c972b39687 Custom Warheads refactor
Changes included:

Warhead code split out of weapon code and refactored.
Warhead functionality now split into several classes, each handling one effect/impact.

Additional custom warheads can now be defined and called via yaml.
Custom warheads inherit the abstract class Warhead,
which provides target check functions.

Custom warheads have to define their own impact functions,
and can also define their own replacement for check
functions.
2014-08-03 17:10:44 +02:00
Paul Chote
ef2f909f65 Reorganize IBodyOrientation. 2014-08-03 19:20:40 +12:00
ScottNZ
ca4b947037 Rename IAcceptInfiltrator to INotifyInfiltrated 2014-08-02 22:36:44 +12:00
ScottNZ
9f2e0e181f Add ITraitInfo constraint to Requires<T> 2014-07-31 22:43:37 +12:00
Oliver Brakmann
ad2327828d Make actors outside map borders selectable for their owner
PR #5967 only made planes not lose their selection when they strayed
outside the map border. This PR makes it possible to select them when
they already are outside the map.  It also ensures that the selection
decorations are drawn.  Rank designations, however, will disappear when
a unit leaves the map.

Fixes #5651 for real, then.
2014-07-26 11:05:41 +02:00
Matthias Mailänder
1d0538526d Merge pull request #6040 from pchote/more-renderables
Convert RenderAfterWorld to use Renderables.
2014-07-26 07:28:53 +02:00
atlimit8
0319b8cbda INotifyCreated 2014-07-25 17:07:15 -05:00
Paul Chote
da6ecbf92e Change IPostRenderSelection and IPlaceBuildingDecoration to return renderables. 2014-07-25 21:14:39 +12:00
Paul Chote
1beff77c6a Split selectable rendering into *Renderables. 2014-07-25 21:14:39 +12:00
Taryn Hill
b4cecff74e ClonesProductionUnits:
string[] CloneableTypes	checks Cloneable.Types

Cloneable:
	string[] Types checked by ClonesProductionUnits.CloneableTypes

Added INotifyOtherProduction
	for notifying self when another actor
	produces a unit.
2014-07-24 19:08:08 -05:00
Paul Chote
b2e7cf8edb Merge pull request #5853 from RoosterDragon/actormap-perf
Sped up ActorMap.ActorsInBox.
2014-07-24 20:40:15 +12:00
Matthias Mailänder
d830a0a7ae Merge pull request #6029 from pchote/gametomods
Move *Renderables and Render* out of Game.
2014-07-23 06:54:42 +02:00
Paul Chote
6b1cecc6b4 Add a workaround for the legacy map editor. 2014-07-23 11:40:30 +12:00
Paul Chote
1d77cd5391 Merge pull request #5851 from RoosterDragon/shroud-perf
Speed up shroud checks
2014-07-23 11:02:27 +12:00
Paul Chote
51abbad5ff Move RenderSprites and RenderSimple into Mods.RA. 2014-07-22 16:43:39 +12:00
Matthias Mailänder
1071a94d1d document traits 2014-07-20 14:50:37 +02:00
Paul Chote
2e9e4cff5c Allow NormalizeSequence to remove existing damage prefixes. Fixes #5909. 2014-07-10 17:16:46 +12:00
RoosterDragon
ffd2e8ea9d Sped up ActorMap.ActorsInBox.
- By ensuring both the add and remove actor lists are sets, we ensure the partitioning bins will contain only distinct actors. We can remove the HashSet and Distinct in ActorsInBox and ActorsInWorld which provides a nice speedup for queries. ActorsInBox sees nearly a 3x speedup in the RA shellmap.
2014-07-09 18:43:40 +01:00
Paul Chote
2b91a2363b Fix make animations. 2014-07-08 16:56:09 +12:00
Paul Chote
5650d5fc98 Revert "use TickRender() for RenderSprites and PaletteModifier"
This reverts commit 87fd576b26.
2014-07-08 11:09:54 +12:00
Paul Chote
802b6a652c Revert "new PauseState to differentiate game and editor pausing"
This reverts commit d1e18cad7a.
2014-07-08 10:42:00 +12:00
Paul Chote
18c9a25232 Revert "freeze animations during pause to visualize it better"
This reverts commit 960248fe44.
2014-07-08 10:40:06 +12:00
RoosterDragon
a512d9ad0a Sped up shroud rendering.
- Only update shroud within the visible screen area, rather than the whole map. This improves performance on larger maps significantly when scrolling around since large portions of the shroud do not need to be updated.
- Provide methods in Shroud to return delegates to check for explored/visibility for tiles within a certain region. This allows it to return more efficient delegates whenever the region is within the map bounds, or shroud/fog is disabled. In the typical case where the region is in bounds and shroud/fog is enabled, the fast check is almost twice as fast as the slow check.
- Use the Shroud delegate functions in shroud rendering, frozen actors, minimap rendering and resource layer areas to provide a speedup since these areas of code can often take advantage of the fact they perform checks within the map boundary.
- Cache current element in CellRegionEnumerator to prevent repeated work if the element is accessed more than once.
- Decrease the size of elements in some arrays in hopes of reducing memory needs and improving cache hits.
2014-07-07 17:34:31 +01:00
RoosterDragon
2351c43237 Refactoring pass.
- Extract an enum for edges rather than using magic numbers for everything.
- Remove duplicated code between FoggedEdges and ShroudedEdges by hosting the visibility function into a delegate.
- Make minimap methods more readable.
- Tidy formatting.
- Make some fields readonly.
- Remove unused usings.
2014-07-07 17:34:25 +01:00
Matthias Mailänder
960248fe44 freeze animations during pause to visualize it better 2014-07-06 08:24:08 +02:00
Matthias Mailänder
d1e18cad7a new PauseState to differentiate game and editor pausing 2014-07-06 08:24:08 +02:00
Matthias Mailänder
87fd576b26 use TickRender() for RenderSprites and PaletteModifier 2014-07-06 08:24:08 +02:00