Exemplo n.º 1
0
    public bool TryAttachTo( BackBlock backblock , bool withInitPos = true )
    {
        List<BackBlock> checkBackBlock = CheckBackBlock( backblock );
        if ( checkBackBlock == null )
        {
            return false;
        }
        SetTempBackblock(checkBackBlock);
        float moveTime = stickTime;
        if ( withInitPos )
            moveTime = 0;
        StickToTargetBlock(moveTime , MoveType.Smooth , false ); //  just for position

        return true;
    }
Exemplo n.º 2
0
    List<BackBlock> CheckBackBlock( BackBlock back )
    {
        int i = (int) (back.name[back.name.Length-2]-'0');
        int j = (int) (back.name[back.name.Length-1]-'0');

        //get Check mat list
        List<BackBlock> checkList = new List<BackBlock>();

        checkList.Add(back);

        if ( i + size -1 >= LogicManager.Instance.blockRows )
            i = LogicManager.Instance.blockRows - size ;
        if ( j + size -1 >= LogicManager.Instance.blockCols )
            j = LogicManager.Instance.blockCols - size ;

        for( int ii = i ; ii < i + size ; ++ii )
        {
            for ( int jj = j ; jj < j + size ; ++jj )
            {
                checkList.Add(LogicManager.Instance.backbloctMat[ii][jj]);
            }
        }

        foreach( BackBlock block in checkList)
        {
            if ( block.isOcupied && ( block.occupyToken != null && !block.occupyToken.eat) )
            {
                Debug.Log(block.name+" is ocupied");
                return null;
            }
        }

        return checkList;
    }
Exemplo n.º 3
0
 public bool Init( BackBlock block, TimeLine.TokenInfo tokenInfo )
 {
     maxSize = tokenInfo.maxSize;
     move = tokenInfo.move;
     resize = tokenInfo.resize;
     eat = tokenInfo.eat;
     delete = tokenInfo.delete;
     if ( tokenInfo.size == -1 )
         size = UnityEngine.Random.Range(1 , 4);
     else
         size = tokenInfo.size;
     if ( !TryAttachTo( block ) )
         return false;
     AdjustSize( size );
     SetMovie( tokenInfo.name );
     StartCoroutine(CheckEnd(tokenInfo.duration));
     ifInit = false;
     MessageEventArgs msg = new MessageEventArgs();
     msg.AddMessage("name" , movieName );
     BEventManager.Instance.PostEvent( EventDefine.OnTokenInit , msg );
     return true;
 }