reaperrr
a784081973
Add ReloadingCondition to Armament
...
Allows to grant condition while reloading.
2018-06-03 12:23:54 +01:00
Arular101
8a60918841
Update copyright notice year to 2018
2018-01-17 00:47:34 +01:00
reaperrr
cefe3d2c8f
When Armament has multiple LocalOffsets but weapon has Burst: 1, cycle through offsets
2017-12-29 15:28:34 +00:00
reaperrr
8b7a71685c
Remove AmmoPool-awareness from Armament
2017-11-12 19:48:06 +00:00
reaperrr
6f95080aa4
Add ReloadAmmoPool and adapt AmmoPool
...
Refactored and simplified Rearm activity.
Uses local Reload now.
Removed AmmoPool.SelfReloads.
2017-11-12 19:48:06 +00:00
reaperrr
834a40b18d
Refactor BurstDelay to BurstDelays
...
Allowing to set custom per-burst delays.
2017-08-20 20:48:25 +02:00
reaperrr
8ee742d66a
Split MuzzleOffset and MuzzleOrientation calcs to protected methods
...
To make overriding easier for downstream traits inheriting Armament.
2017-07-29 22:14:58 +02:00
reaperrr
26be2a3e99
Split Burst updating to separate method
2017-07-29 22:14:58 +02:00
reaperrr
e847f49256
Split barrel firing to separate method
2017-07-29 22:14:58 +02:00
reaperrr
514bd12885
Merge some Armament CanFire checks
2017-07-29 22:14:58 +02:00
reaperrr
bdfa8a361b
Split Barrel can-fire checks to separate CanFire method
2017-07-29 22:14:58 +02:00
reaperrr
07edf2f7c6
Reset burst counter if ReloadDelay has passed since last shot
...
This fixes the following issues:
- units like mammoth tanks sometimes at first only fired 1 shot on new encounter because they only depleted 1 burst before previous target was killed
- weapons that use strafing logic would not reset the offset multiplier after passing the target once, leading to wrong offsets on following attacks
2017-07-13 19:12:16 +02:00
reaperrr
afa8d3522c
Add strafing support to weapons
2017-07-13 19:12:16 +02:00
reaperrr
edffaa4987
Introduce Weapon.TargetActorCenter and adapt projectiles
...
This also fixes issues with attackers that don't have their own Attack
trait.
2017-06-24 11:24:17 +01:00
reaperrr
8e9f20cf4b
Cache traits implementing INotifyAttack
2017-06-22 04:13:47 -05:00
reaperrr
779218f381
Cache traits implementing modifiers
2017-06-22 04:13:47 -05:00
reaperrr
243ed3d76a
Cache traits implementing INotifyBurstComplete
2017-06-22 04:13:47 -05:00
reaperrr
da7433a95f
Add plumbing for targeting of target center instead of closest targetable position
...
Note: Projectiles that can track their target need minor additional changes, but for InstantHit (which already implemented support for this) and unguided projectiles (Bullet, GravityBomb) this commit is already sufficient.
2017-06-15 01:32:37 +02:00
reaperrr
7acc6dacbc
Fix armaments/projectiles to aim at closest Target.Positions
...
Instead of CenterPosition.
TargetablePositions were already used for targeting/attack decisions, but not armaments/projectiles.
2017-06-05 14:22:47 +02:00
reaperrr
b8c251cf41
Add StartBurstReport to WeaponInfo
...
The FS Juggernaut firing sound already contains 3 shots, so without this, players would hear a total of 9(!) shots per salvo.
2017-05-14 11:49:38 +01:00
Andre Mohren
d68bc48ba5
Added ReloadSound and ReloadSoundDelay to weapon declarations.
2017-04-30 22:43:32 +02:00
Taryn Hill
43317e0f5d
Update copyright notice year to 2017
2016-12-31 23:46:13 -06:00
Paul Chote
268ed016ab
Rename UpgradableTrait to ConditionalTrait.
2016-12-23 23:28:34 +00:00
Paul Chote
9ddfdc45b3
Introduce SoundType enum.
2016-12-23 11:34:23 +00:00
Paul Chote
3f0b33992c
Rewrite UpgradeManager implementation to suit conditions.
2016-11-20 13:55:47 +00:00
Paul Chote
23f4ae5027
Replace UpgradeMinEnabledLevel checks with an EnabledByDefault shim.
2016-11-19 17:19:25 +00:00
reaperrr
3fca63e9a2
Make Armament implement interfaces explicitly
2016-10-30 19:17:45 +01:00
reaperrr
19c3e7c9e3
Make Armament elements as overridable as possible
...
To allow downstream mods to ship customised Armament-derivatives.
2016-08-20 15:06:18 +02:00
reaperrr
75c49620d1
Introduce INotifyAttack.PreparingAttack
...
And use it to allow triggering attack animations/overlays at a different point
than the actual weapon firing.
2016-07-02 16:02:00 +02:00
reaperrr
4f55b088eb
Check if weapon without self-reloading is out of ammo when deciding validity
...
This should prevent attacking helicopters (or other actors) staying at the range to target of a weapon that is out of ammo and needs manual reloading at a RearmBuilding or via upgrades.
2016-06-23 14:47:41 +02:00
teees
524bc3d45f
Added INotifyBurstComplete trait interface to notify when a full salvo has been fired
2016-06-04 22:33:28 +02:00
teees
3c4d9b4c84
Fix barrel recoil being set immediately, not when actually firing
2016-04-15 14:06:21 +02:00
RoosterDragon
163688fc39
Prevent turrets from firing until they are aligned with the target.
2016-03-12 20:42:10 +00: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
Taryn Hill
4f798ede3c
Add an explicit YamlException to ArmamentInfo
...
Throw a more descriptive exception when the current weapon ruleset
doesn't contain an entry for the referenced weapon.
2016-02-13 09:15:16 -06:00
Paul Chote
fe60f5a77f
Introduce Turreted.WorldOrientation.
2016-01-27 21:32:21 +00:00
reaperrr
2d55bbdedf
Cache trait look-ups and range modifiers directly in Armament
...
Avoid the performance impact of accessing Lazy.Value by caching them
when the actor is created and accessing the references directly when needed.
2015-12-14 04:34:58 +01:00
Paul Chote
03693a06eb
Add CurrentSource parameter to ProjectileArgs.
2015-12-01 07:47:39 +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
74a9dc6793
Added IRangeMultiplier
2015-09-24 16:37:43 -05:00
Paul Chote
ef55d646f7
Unstatic the Sound class.
2015-09-20 14:11:06 +01:00
atlimit8
45112cfa76
Remove redundant IBodyOrientation[Info] & replace with BodyOrientation[Info]
2015-09-15 22:57:08 -05:00
Matthias Mailänder
118782a85e
check palette references
2015-08-17 21:36:45 +02:00
atlimit8
1bcc07ce69
Add property requirements to safe traits
2015-07-12 12:44:30 -05: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
atlimit8
a9908bffb4
UpgradeManager after IUpgradables
2015-06-28 10:24:00 -05:00
RoosterDragon
fb0cab7481
Cache results of TraitsImplementing calls.
...
If a class is caching the TraitsImplementing enumerable, instead cache the results of enumerating it to an array. The avoids having to enumerate the sequence each time it is needed.
2015-04-25 20:42:27 +01:00
reaperrr
38d5163062
Refactors LimitedAmmo to AmmoPool.
...
Removes Reloads trait.
This enables adding multiple AmmoPools via @ differentiators and
Name which adds the possibility to assign each armament to a specific
ammo pool.
Furthermore, this moves all Reloads functionality onto AmmoPool.
Now a combination of all three is possible on a single actor: no limited
ammo, limited ammo that can reload on its own, and limited ammo which
needs to be reloaded at a rearm actor.
Additionally moves RearmSound from Minelayer to AmmoPool.
2015-03-26 23:21:01 +01:00