예제 #1
0
        public override void ApplyTheme(Nomino Group, IGameCustomizationHandler GameHandler, TetrisField Field, ThemeApplicationReason Reason)
        {
            char DesiredNomino = 'I';
            Dictionary <Type, char> NominoLookup = new Dictionary <Type, char>()
            {
                { typeof(Tetromino_T), 'T' },
                { typeof(Tetromino_S), 'S' },
                { typeof(Tetromino_Z), 'Z' },
                { typeof(Tetromino_L), 'L' },
                { typeof(Tetromino_J), 'J' },
                { typeof(Tetromino_O), 'O' },
                { typeof(Tetromino_I), 'I' },
                { typeof(Tetromino_Y), 'Y' }
            };

            if (NominoLookup.ContainsKey(Group.GetType()))
            {
                DesiredNomino = NominoLookup[Group.GetType()];
            }
            else
            {
                DesiredNomino = TetrisGame.Choose(TetOrder);
            }
            foreach (var iterate in Group)
            {
                if (iterate.Block is StandardColouredBlock)
                {
                    StandardColouredBlock sbc = iterate.Block as StandardColouredBlock;
                    sbc.DisplayStyle = StandardColouredBlock.BlockStyle.Style_Custom;
                    sbc.BlockColor   = Color.Black;
                    if (Field.GetActiveBlockGroups().Contains(Group))
                    {
                        sbc._RotationImagesSK = new SKImage[] { SKImage.FromBitmap(GetUnsetImage(ColourData[Field.Level > 12 ? 12 : Field.Level].GetColor(DesiredNomino))) }
                    }
                    ;
                    else
                    {
                        sbc._RotationImagesSK = new SKImage[] { SKImage.FromBitmap(GetSetImage(ColourData[Field.Level > 12 ? 12 : Field.Level].GetColor(DesiredNomino))) };
                    }
                }
            }
        }
예제 #2
0
        private void ApplyColorSet(Nomino bg, int Level)
        {
            if (bg == null)
            {
                return;
            }

            if (UseStyles == null)
            {
                UseStyles = GetBlockStyleLookup(new Type[] { typeof(Tetromino_I), typeof(Tetromino_J), typeof(Tetromino_L), typeof(Tetromino_O), typeof(Tetromino_S), typeof(Tetromino_T), typeof(Tetromino_Z), typeof(Tetromino_Y) });
            }
            StandardColouredBlock.BlockStyle applystyle = _Style;
            if (UseStyles.ContainsKey(bg.GetType()))
            {
                applystyle = UseStyles[bg.GetType()];
            }

            foreach (var iterate in bg)
            {
                if (iterate.Block is StandardColouredBlock)
                {
                    StandardColouredBlock bl = iterate.Block as StandardColouredBlock;


                    bl.DisplayStyle = applystyle; //TetrisGame.Choose(new StandardColouredBlock.BlockStyle[] { StandardColouredBlock.BlockStyle.Style_HardBevel, StandardColouredBlock.BlockStyle.Style_CloudBevel, StandardColouredBlock.BlockStyle.Style_Shine });
                    Color useColor = GetStandardColor(bg, Level);
                    bl.BlockColor = bl.InnerColor = useColor;

                    /*QColorMatrix qc = new QColorMatrix();
                     * qc.RotateHue(Level * 50);
                     *
                     * useColor = HSLColor.RotateHue(useColor, Level * 50);
                     * bl.BlockColor = bl.InnerColor = useColor;
                     */
                }
            }
        }
예제 #3
0
 public virtual String GetNominoKey(Nomino Group, IGameCustomizationHandler GameHandler, TetrisField Field)
 {
     return(GetNominoTypeKey(Group.GetType(), GameHandler, Field));
 }