368 {
370 {
372 {
373 const float animPhaseOffset = 0.167;
374
375 Magnum_Cylinder cylinder = Magnum_Cylinder.Cast(GetAttachmentByType(Magnum_Cylinder));
376 Magnum_Ejector ejector = Magnum_Ejector.Cast(GetAttachmentByType(Magnum_Ejector));
377
378 if (cylinder)
379 {
380 float animPhase = cylinder.GetAnimationPhase("Rotate_Cylinder");
381 if (animPhase + animPhaseOffset > 1.0)
382 {
383 animPhase -= 1.0;
384 cylinder.ResetAnimationPhase("Rotate_Cylinder", animPhase);
385 ejector.ResetAnimationPhase("Rotate_Ejector", animPhase);
386 }
387
388 cylinder.SetAnimationPhase("Rotate_Cylinder", animPhase);
389 ejector.ResetAnimationPhase("Rotate_Ejector", animPhase);
390 }
391 }
392 }
393
394 return super.OnAction(action_id, player, ctx);
395 }
proto native CGame GetGame()