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