void TickUpdate() { ComSat.Trace(this, "TickUpdate"); if (fireCycle != FireCycle.READY) { fireDelayTime -= ComSat.tickRate; if (fireDelayTime <= 0) { if (fireCycle == FireCycle.FIREDLEFT) { // Fire right. fireCycle = FireCycle.FIREDRIGHT; FireOneBarrel(-1); // This is enough time for the left barrel to recycle. fireDelayTime = barrelRecycleTime - barrelDelay; } else if (fireCycle == FireCycle.FIREDRIGHT) { // cycle complete. fireCycle = FireCycle.READY; } } } }
void Fire() { if (fireCycle != FireCycle.READY) { return; } // Fire left. fireCycle = FireCycle.FIREDLEFT; fireDelayTime = barrelDelay; FireOneBarrel(+1); }