protected override ComponentActivity[] GetActivities(ShipComponentBehaviour shipComponent) { PlasmaGunComponentBehaviour gun = (PlasmaGunComponentBehaviour)shipComponent; return(new ComponentActivity[] { new ContinuousComponentActivity <PlasmaGunComponentBehaviour>(gun, gun.IsDirecting, Direct), new TimerComponentActivity <PlasmaGunComponentBehaviour>(gun, .2f + .2f * shipClass, gun.IsFiring, Fire) }); }
void Fire(PlasmaGunComponentBehaviour master, float rate) { master.Fire(rate * damage, distance * rate, speed * rate); }
void Direct(PlasmaGunComponentBehaviour master, float rate, float timeSpend) { master.Direct(rate * 45f * timeSpend); }