reaperrr
fd5a597966
Move Render traits to Traits.Render namespace
2016-04-15 20:43:04 +02:00
Paul Chote
acab6f1f4b
Fix custom order generators for left-click targeting.
2016-04-09 11:59:54 -04:00
Paul Chote
2024f86290
Fix Turreted units not dropping cancelled targets.
2016-04-03 10:22:53 +01:00
Taryn Hill
6d4e365af5
Require explicit implementation of INotifyPassenger(Entered|Exited)
2016-03-29 06:59:43 -05:00
Jonathan Ling
2d4c3f715f
Refactored ticks to delay per issue #9810
2016-03-22 17:03:37 -04:00
RoosterDragon
4598b0de43
Have turrets actively track targets, even when not ready to attack.
2016-03-12 20:42:10 +00:00
Matthias Mailänder
ecbd1a0247
Merge pull request #9509 from penev92/upgradeTickTank
...
Convert Tick Tank to use DeployToUpgrade + some fixes
2016-02-23 23:33:38 +01:00
Pavel Penev
17ef6efefc
Fix AttackFollow (and consequently AttackTurreted) firing at old target when the trait is reenabled
...
Most noticeable by ordering a deployed Tick Tank to fire at the ground, then undeploying it and deploying it again.
2016-02-22 02:44:28 +02: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
Oliver Brakmann
ce62e456d7
Fix TD gunboat attack behaviour
2016-02-14 21:28:50 +01:00
teees
dc6d31cec8
Fix turreted immovable actors not dropping targets that are out of range
2016-02-14 21:28:50 +01:00
Paul Chote
5f4ca605bd
Merge pull request #10420 from Mailaender/revert-fixAttack
...
Revert "Don't attack actors that you can't see"
2016-01-23 12:45:55 +00:00
Paul Chote
b0bd252343
Move Util to Mods.Common.
2016-01-19 23:35:18 +00:00
Paul Chote
0039a2bdbf
Split out an ActivityUtils class.
2016-01-19 23:34:13 +00:00
RoosterDragon
8e89a6a696
Simplify names, remove unused usings, remove redundant casts.
2016-01-17 21:35:36 +00:00
Paul Chote
3b18c7815d
Remove Util.GetFacing.
2016-01-16 22:38:17 +00:00
Matthias Mailänder
6900e4bad3
rename DemoTruck to AttackSuicides
...
generalize move to add Aircraft support
give it a description
don't require Explodes as it is just a soft dependency
use a regular self kill
2016-01-16 19:38:23 +01:00
Matthias Mailänder
aa9ef48737
Revert "Don't attack actors that you can't see"
...
This reverts commit d235ea3a52 .
2016-01-04 23:02:03 +01:00
RoosterDragon
adc7e902e3
Speed up AutoTarget.ChooseTarget among groups of allied units.
...
Most auto target scans will be conducted among groups of allied units unable to target each other because they are allied and their weapons only target enemies. Since they cannot target each other, the scan will be repeated constantly. Realising this, we can significantly reduce the performance impact of auto target scanning by bailing early in this scenario to avoid carrying out expensive targeting checks on friendly units which we know will fail anyway.
2016-01-04 07:07:26 +00:00
Matthias Mailänder
b289478123
Merge pull request #10189 from reaperrr/less-lazy1
...
AttackBase and Armament optimizations
2015-12-25 14:04:46 +01:00
reaperrr
0e5ea959aa
Perform faster checks in AB.CanAttack much earlier
...
Move self.IsDisabled right after IsInWorld and IsTraitDisabled checks.
This should skip/avoid a lot of the following checks when actors are disabled by low power, EMP or similar, potentially saving some performance when there are many disabled actors with attack trait.
Move IsValidFor before HasAnyValidWeapons because the latter is more
expensive.
2015-12-14 04:34:58 +01:00
reaperrr
acc9b37a01
Remove ITraitInfo from AttackBase
...
That is already included in UpgradableTraitInfo.
2015-12-14 04:34:58 +01:00
RoosterDragon
21292061f9
Added "PERF: Avoid LINQ." comments.
2015-12-12 21:05:13 +00:00
RoosterDragon
16386873af
Optimize AttackBase.ChooseArmamentsForTarget.
...
Remove the unused onlyEnabled parameter to avoid it needlessly being captured in the closure, and simplify the logic.
Evaluate RequiresForceFire and Weapon.IsValidAgainst last in their respective logic chains as these are the most expensive operations and benefit from short-circuiting being able to skip their evaluation.
2015-12-12 20:55:19 +00:00
RoosterDragon
0fab3ec1b2
Remove LINQ in some performance critical AutoTarget paths.
2015-12-12 20:55:18 +00:00
RoosterDragon
082ea6ba73
Refactor animation classes.
...
Specify pause function in constructors of Animation if required, and remove the unused pause function from AnimationWithOffset.
Cleanup Animation.cs and reduce code duplication.
2015-12-05 16:58:26 +00:00
reaperrr
72ec431766
Add RenderUtils
...
With ZOffsetFromCenter as first feature so render traits don't have to use it from WithTurret(Overlay)
2015-11-28 20:47:17 +01:00
Oliver Brakmann
16de21d41c
Merge pull request #10018 from pchote/fix-spy-cursor
...
Restore targeting cursor when mousing over a disguised enemy spy.
2015-11-21 20:57:12 +01:00
Paul Chote
65a7f2e863
Restore earlier spy targeting behaviour.
2015-11-21 18:06:47 +00:00
Pavel Penev
d235ea3a52
Don't attack actors that you can't see
2015-11-21 19:33:10 +02:00
Paul Chote
124c0ea041
Make CanTarget modifiers a ref parameter.
2015-11-16 20:38:53 +00:00
Pavel Penev
000c701414
Fix actors ignoring Disguise
2015-10-23 00:27:43 +03:00
Oliver Brakmann
244093834c
Merge pull request #9447 from atlimit8/CacheFireportsForAttackGarrisoned
...
Cache AttackGarrisoned fire ports using IRulesetLoaded
2015-10-11 15:26:38 +02:00
Matija Hustić
d94c645046
First step in the attack mechanism's refactor.
...
Enabled firing multiple armaments at a target simultaneously.
Each armament defines own cursor for targeting.
The force attack modifier influences armament choice for target.
Autotargeting modified to handle firing multiple armaments simultaneously.
As a consequence, healers (medics) no longer require separate Heal
activity and AttackMedic and AutoHeal traits.
2015-10-06 01:46:55 +02:00
atlimit8
dc54841bad
cache AttackGarrisoned fire ports using IRulesetLoaded
2015-10-02 13:40:21 -05:00
atlimit8
74a9dc6793
Added IRangeMultiplier
2015-09-24 16:37:43 -05:00
atlimit8
527675db8d
Attack activities use armaments directly through constructor
2015-09-24 16:17:06 -05:00
Paul Chote
ef55d646f7
Unstatic the Sound class.
2015-09-20 14:11:06 +01:00
atlimit8
8162fa27ab
Add ActorInfo.HasTraitInfo<T>() requiring ITraitInfo types
2015-09-19 09:49:24 -05:00
atlimit8
85fab45451
Remove Actor.HasTrait<T>()
2015-09-19 09:49:23 -05:00
reaperrr
4fa20e78fa
Merge pull request #9304 from atlimit8/Fix_AttackBase_GetMinimumRange
...
Make AttackBase.GetMinimumRange() return WDist.Zero if there are no available armaments
2015-09-18 01:26:35 +02:00
atlimit8
45112cfa76
Remove redundant IBodyOrientation[Info] & replace with BodyOrientation[Info]
2015-09-15 22:57:08 -05:00
atlimit8
6ab32d75bf
Make AttackBase.GetMinimumRange() return WDist.Zero if there are no available armaments
2015-09-08 23:36:05 -05:00
Matthias Mailänder
118782a85e
check palette references
2015-08-17 21:36:45 +02:00
reaperrr
398f02c5db
Remove redundant ISync and ITick from Attack* traits
...
ISync is implemented by AttackBase, so there's no need for other Attack traits to implement it again.
AttackTurreted inherits AttackFollow, which already implements ITick.
2015-07-29 17:45:30 +02:00
atlimit8
1bcc07ce69
Add property requirements to safe traits
2015-07-12 12:44:30 -05:00
Matthias Mailänder
56e9bcd96e
rename RangeSquard to LengthSquared
2015-07-09 21:16:01 +02:00
Matthias Mailänder
413baf9d8b
rename WDist.Range to WDist.Length
2015-07-09 10:55:38 +02:00
Matthias Mailänder
7447e0bf93
rename WRange to WDist
2015-07-09 10:55:38 +02:00