Commit Graph

71 Commits

Author SHA1 Message Date
Chris Forbes
dddd057e3d Add IPositionable.CanExistInCell
This is like CanEnterCell, but doesn't take into account conflicting
actors, etc.
2018-04-10 01:01:53 +02:00
RoosterDragon
5bd5a384b7 Use a BitSet for representing target types.
- Rename Bits<T> to BitSet<T>.
- Implement set based helpers for BitSet<T>.
- When representing TargetTypes of ITargetable in various traits, use a BitSet<TargetableType> instead of HashSet<string> for better performance & reduced memory usage.
- Fix FieldLoader to trim input values when generating a BitSet<T>.
- Require T in BitSet<T> and BitSetAllocator<T> to be a class since it's just a marker value. This allows the JIT to instantiate generic code for these classes once, as they don't benefit from specialized code for T. (Typically JITs will generate shared code for all reference types, and unique code for every value type encountered).
2018-03-21 12:07:44 +01:00
Arular101
8a60918841 Update copyright notice year to 2018 2018-01-17 00:47:34 +01:00
RoosterDragon
c8c7629bce Convert some stray spaces to tabs. 2017-12-16 15:53:03 +00:00
RoosterDragon
62ab6ae6f1 OccupiedCells and TargetableCells must return arrays, not just enumerables.
This allows callers to efficiently enumerate these returned collections without the allocation and overhead imposed by the IEnumerable interface. All implementations were already returning arrays, so this only required a signature change.
2017-12-07 20:39:30 +02:00
Paul Chote
47634b25f9 Remove IFogVisibilityModifier. 2017-11-03 09:56:00 +01:00
reaperrr
8533debc44 Require explicit INotifyAddedToWorld and INotifyRemovedFromWorld 2017-10-07 10:17:11 +02:00
reaperrr
28e1f391e0 Make ITick require explicit implementation 2017-09-16 15:51:37 +02:00
Paul Chote
da5a725458 Add support for per-source and total external condition caps. 2017-02-18 19:10:22 +00:00
abcdefg30
ce97b3a3a2 Fix IPositionableInfo not inheriting IOccupySpaceInfo 2017-02-09 22:04:33 +01:00
abcdefg30
a385835939 Fix GiveUnitCrateAction being limited to MobileInfo 2017-02-09 22:04:32 +01:00
Paul Chote
255214e77c Fix timed external conditions being rejected instead of reset. 2017-01-26 22:52:26 +00:00
Taryn Hill
43317e0f5d Update copyright notice year to 2017 2016-12-31 23:46:13 -06:00
Paul Chote
d0270ab866 Rename comments and documentation. 2016-12-23 15:17:02 +00:00
Paul Chote
f360c10569 Rename ConditionManager variables. 2016-12-23 15:02:52 +00:00
Paul Chote
dcad5c3f7c Rename UpgradeManager to ConditionManager. 2016-12-23 14:57:56 +00:00
Paul Chote
9ddfdc45b3 Introduce SoundType enum. 2016-12-23 11:34:23 +00:00
Paul Chote
bcb3d52eb0 Convert Parachutable to conditions. 2016-12-13 19:30:38 +00:00
Paul Chote
6e29dfecfe Port GrantUpgradeCrateAction to GrantExternalConditionCrateAction. 2016-12-06 17:21:13 +00:00
Zimmermann Gyula
ecc65e4fe4 Do not apply the cell's Z offset twice during crate positioning. 2016-08-27 16:41:52 +02:00
Zimmermann Gyula
cf8fff2b99 Remove passing the warheads from DamageWarhead to AttackInfo.
Added a Damage class to pass damage value and damage(types) instead.
This removes a great amount of overhead and longterm opens possibilities to have damagetypes without warheads.
2016-07-12 10:09:49 +02:00
Oliver Brakmann
b080417db3 Prevent non-combatant players from receiving units from crate pickups 2016-07-08 13:24:25 +02:00
Paul Chote
9edf4be229 Disable hide map crate if explored map is enabled. 2016-06-18 14:18:05 +01:00
Paul Chote
a0b5b5ce66 Move initial map exploration to Shroud. 2016-05-14 18:54:44 +01:00
reaperrr
fd5a597966 Move Render traits to Traits.Render namespace 2016-04-15 20:43:04 +02:00
Bynnar18
a9ffe0a779 Paradrop Production 2016-03-30 02:46:19 +02:00
Oliver Brakmann
59d9eeaa08 Merge pull request #10795 from Mailaender/screenmap-bounds-crash
Fixed screen map updates for invisible mobile actors
2016-02-27 17:52:49 +01:00
Matthias Mailänder
9734054582 Reduce duplication. 2016-02-27 14:10:17 +01:00
Paul Chote
e71225496b Clarify GPL version. 2016-02-21 16:30:48 +00:00
Paul Chote
b396965fd9 Update licence header year. 2016-02-21 16:27:31 +00:00
Matthias Mailänder
3885f0b559 Fix screen map updates for boundless actors. 2016-02-21 11:34:33 +01:00
abcdefg30
fe5754e2bd Change the parameters of ICrushable.CrushableBy 2016-02-14 18:51:59 +01:00
abcdefg30
f21d1f52e7 Make the ICrushable implementation explicit 2016-02-14 18:51:57 +01:00
abcdefg30
8b59ce4dc2 Add a new INotifyCrushed interface 2016-02-14 18:51:56 +01:00
abcdefg30
e343803810 Remove an unnecessary Where in Crate.cs 2016-02-14 18:51:55 +01:00
RoosterDragon
8e89a6a696 Simplify names, remove unused usings, remove redundant casts. 2016-01-17 21:35:36 +00:00
abcdefg30
3c171569a7 Merge pull request #10193 from atlimit8/ITraitInfoInterface
TraitInfoInterface base for interfaces implemented by trait infos
2015-12-29 15:04:57 +01:00
RoosterDragon
dcf375a412 Store Targetables in Actor.
This can be used to avoid several lookups for these traits, as well as allow Actor to provide specialised methods to deal with target types efficiently. This also reduces some code duplication.
2015-12-12 20:55:17 +00:00
atlimit8
3d2aa751a3 TraitInfoInterface base for interfaces implemented by trait infos 2015-12-07 18:22:43 -06:00
atlimit8
b6f17df260 Add ActorsHavingTrait<TTrait>([Func<TTrait, bool]) 2015-10-28 16:36:45 -05:00
reaperrr
2f69711341 Rename ActorMap *UnitsAt* occurences to *ActorsAt*
These enumerate actors in general, not just mobile actors (which the term 'unit' usually refers to).
2015-10-16 00:07:06 +02:00
Pavel Penev
0ed3ef0eb8 Merge pull request #9219 from deniz1a/hide-map-crate
Adds IncludeAllies option to hide-map crate.
2015-09-30 16:15:26 +03:00
Paul Chote
ef55d646f7 Unstatic the Sound class. 2015-09-20 14:11:06 +01:00
atlimit8
09984683a7 Add ActorInfo.TraitInfo[OrDefault]<T>() requiring ITraitIfo types 2015-09-19 09:56:14 -05:00
atlimit8
85fab45451 Remove Actor.HasTrait<T>() 2015-09-19 09:49:23 -05:00
atlimit8
1d9d28b540 HealUnitsCrateAction.Activate() use ActorsWithTrait<Health>() 2015-09-17 23:55:38 -05:00
atlimit8
578a92370b Make DuplicateUnitCrateAction only check enabled targetability 2015-09-12 21:30:35 -05:00
deniz1a
07c0f489e3 Adds IncludeAllies option to hide-map crate. 2015-09-08 04:06:15 +03:00
atlimit8
8250f223c4 More HashSet trait fields & Lint support 2015-09-05 16:59:30 -05:00
RoosterDragon
901e604cf3 Replace arrays with sets.
In places where arrays were being treated as a set, just create a set directly. This reveals the intention of such collections better, and also improves performance by allowing set based methods to be used.
2015-09-03 20:09:24 +01:00