Example #1
0
 internal bool moveOrKill(Tile tile)
 {
     if (tile.getEntityType() == EntityTypesEnum.Tile)
     {
         moveTo(tile);
         return(true);
     }
     else if (tile.getEntityType() == EntityTypesEnum.Rockford)
     {
         Rockford rf = tile.Entity as Rockford;
         rf.kill();
         return(true);
     }
     else if (tile.getEntityType() == EntityTypesEnum.Firefly)
     {
         moveTo(tile);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #2
0
        internal override void react(int updateFrame)
        {
            if (lastFrameUpdated == updateFrame)
            {
                return;
            }
            else
            {
                lastFrameUpdated = updateFrame;
            }

            if (lastInterval == interval)
            {
                if (status == EntityStatesEnum.Idle)
                {
                    if (tile.Down != null && tile.Down.getEntityType() == EntityTypesEnum.Tile)
                    {
                        moveTo(tile.Down);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                    else if (
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Tile ||
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Tile)
                    {
                        moveTo(tile.Down.Left);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                    else if (
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Tile ||
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Tile
                        )
                    {
                        moveTo(tile.Down.Right);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                }
                else if (status == EntityStatesEnum.Falling)
                {
                    if (tile.Down != null && tile.Down.getEntityType() == EntityTypesEnum.Tile)
                    {
                        moveTo(tile.Down);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                    else if (tile.Down != null && tile.Down.getEntityType() == EntityTypesEnum.Rockford)
                    {
                        Rockford rf = tile.Down.Entity as Rockford;
                        rf.kill();
                    }
                    else if (
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Tile ||
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Tile)
                    {
                        moveTo(tile.Down.Left);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                    else if (
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Rockford ||
                        tile.Down != null && tile.Left != null && tile.Down.Left != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Left.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Left.getEntityType() == EntityTypesEnum.Rockford)
                    {
                        Rockford rf = tile.Down.Entity as Rockford;
                        rf.kill();
                    }
                    else if (
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Tile ||
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Tile
                        )
                    {
                        moveTo(tile.Down.Right);
                        status       = EntityStatesEnum.Falling;
                        lastInterval = 0;
                    }
                    else if (
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Boulder &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Rockford ||
                        tile.Down != null && tile.Right != null && tile.Down.Right != null &&
                        tile.Down.getEntityType() == EntityTypesEnum.Diamond &&
                        tile.Right.getEntityType() == EntityTypesEnum.Tile &&
                        tile.Down.Right.getEntityType() == EntityTypesEnum.Rockford
                        )
                    {
                        Rockford rf = tile.Down.Entity as Rockford;
                        rf.kill();
                    }
                    else
                    {
                        status = EntityStatesEnum.Idle;
                    }
                }
            }
            else
            {
                lastInterval++;
            }
        }