public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup)
 {
     pGroup.Attach( this );
     if (pGroup is SelectionGroup) {
         getNode().StopActionByTag(20);
         Sequence sequence = new Sequence() { Tag = 20 };
         sequence.Add( new DelayTime( 3.0f ) );
         sequence.Add( new CallFunc( () => {
             playSound();
         } ) );
         getNode().RunAction(sequence);
     }
     return this;
 }
 // METHODS----------------------------------
 public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup)
 {
     pGroup.Attach( this  );
     return this;
 }
 // OVERRIDES -------------------------------------------------------------
 /// <summary>
 /// Adds the members of this group to the specified GroupCrystallonEntity descendent, 
 /// and schedules this newly emptied group's destruction.
 /// </summary>
 /// <returns>
 /// null -- because this group is scheduled for destruction
 /// </returns>
 /// <param name='pGroup'>
 /// The destination group
 /// </param>
 public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup)
 {
     //			if( AppMain.ORIENTATION_MATTERS == false ) {
     //				if ( pGroup.population == 1 ) {
     //					AbstractCrystallonEntity piece = (AbstractCrystallonEntity)pGroup.Remove(pGroup.members[0]);
     //					(piece as SpriteTileCrystallonEntity).setOrientation(2);
     //					pGroup.Attach( piece );
     //				}
     //			}
     for ( int i=0; i<members.Length; i++) {
         AbstractCrystallonEntity e = members[i];
         if ( e != null ) {
             pGroup.Attach( e );
         }
     }
     pGroup.PostAttach( this );
     // CLEAR MEMBERS LIST & SCHEDULE DELETION OF EMPTIED GROUP
     RemoveAll();
     getNode().Schedule((dt) => { GroupManager.Instance.Remove(this, true); } );
     return null;
 }
 // OVERRIDES ----------------------------------------------------------------------------------------------------------------------------------------------------
 /// <summary>
 /// Object-specific code for being added to any group.
 /// </summary>
 /// <returns>
 /// This object
 /// </returns>
 /// <param name='pGroup'>
 /// The destination group
 /// </param>
 public override AbstractCrystallonEntity BeAddedToGroup(GroupCrystallonEntity pGroup)
 {
     getSprite().Color.W = 1.0f; // make fully opaque if selected while fading in.
     HideGlow();
     pGroup.Attach( this );
     pGroup.PostAttach( this );
     return this;
 }