private void WaterTick()
        {
            var wDelta      = config.MaxWaterRate - config.MinWaterRate;
            var waterAmount = rndSource.NextDouble() * wDelta + config.MinWaterRate;

            TreeState.WaterLevel -= waterAmount;

            if (TreeState.WaterLevel < 0)
            {
                TreeState.WaterLevel = 0;
            }
        }
Example #2
0
        private void DrawGrass(int y, int amount)
        {
            var grassScale = 0.2 * ScaleFactor;

            ctx.StrokeStyle = GrassColor;
            ctx.LineWidth   = grassScale * 0.025;

            ctx.BeginPath();

            for (var i = 0; i < amount; i++)
            {
                var x = grassRandom.NextDouble() * CanvasWidth;

                var offsetx = grassRandom.NextDouble() - 0.5;
                var offsetY = grassRandom.NextDouble() - 0.5;
                var height  = grassRandom.NextDouble() * 0.7 + 0.3;

                ctx.MoveTo(x, y + offsetY * grassScale);
                ctx.LineTo(x + offsetx * grassScale, y + offsetY * grassScale + height * grassScale);
            }

            ctx.ClosePath();
            ctx.Stroke();
        }