Skip to content

Commit

Permalink
Added dice and rank features
Browse files Browse the repository at this point in the history
  • Loading branch information
smokelaboratory committed May 18, 2020
1 parent 8a80bd6 commit 063cff6
Show file tree
Hide file tree
Showing 72 changed files with 389 additions and 1,487 deletions.
Binary file added fonts/luckiest_guy.ttf
Binary file not shown.
Binary file removed images/bg.jpg
Binary file not shown.
2 changes: 1 addition & 1 deletion lib/board.dart → lib/board/board.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:fludo/colors.dart';
import 'package:fludo/util/colors.dart';
import 'package:flutter/material.dart';
import 'dart:math';

Expand Down
File renamed without changes.
90 changes: 90 additions & 0 deletions lib/dice/dice.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import 'package:flutter/material.dart';

class DicePaint extends CustomPainter {
int _number;

DicePaint(this._number);

@override
void paint(Canvas canvas, Size size) {
canvas.drawRRect(
RRect.fromRectAndRadius(
Rect.fromLTWH(0, 0, size.width, size.height), Radius.circular(5)),
Paint()
..color = Colors.white
..style = PaintingStyle.stroke
..strokeWidth = 5);

var dotPaint = Paint()
..color = Colors.white
..style = PaintingStyle.fill;

var centerComponent = size.width / 2;
var semiCenterComponent = size.width / 3.5;
var semiComponent = size.width - size.width / 3.5;

switch (_number) {
case 1:
canvas.drawCircle(
Offset(centerComponent, centerComponent), size.width / 8, dotPaint);
break;
case 2:
var radius = size.width / 10;
canvas.drawCircle(
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiComponent), radius, dotPaint);
break;
case 3:
var radius = size.width / 12;
canvas.drawCircle(
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(centerComponent, centerComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiComponent), radius, dotPaint);
break;
case 4:
var radius = size.width / 10;
canvas.drawCircle(
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiCenterComponent, semiComponent), radius, dotPaint);
break;
case 5:
var radius = size.width / 12;
canvas.drawCircle(
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(Offset(semiComponent, semiComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiCenterComponent, semiComponent), radius, dotPaint);
canvas.drawCircle(
Offset(centerComponent, centerComponent), radius, dotPaint);
break;
case 6:
var radius = size.width / 15;
canvas.drawCircle(
Offset(semiComponent, centerComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiCenterComponent, centerComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiCenterComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiComponent, semiCenterComponent), radius, dotPaint);
canvas.drawCircle(Offset(semiComponent, semiComponent), radius, dotPaint);
canvas.drawCircle(
Offset(semiCenterComponent, semiComponent), radius, dotPaint);
break;
default:
}
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
30 changes: 30 additions & 0 deletions lib/dice/dice_base.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter/material.dart';

class DiceBasePainter extends CustomPainter {
final double _radius;

DiceBasePainter(this._radius);

@override
void paint(Canvas canvas, Size size) {
var center = Offset(size.width / 2, size.height / 2);

canvas.drawCircle(
center,
_radius,
Paint()
..color = Colors.orange
..style = PaintingStyle.stroke
..strokeWidth = 10);

canvas.drawCircle(
center,
_radius,
Paint()
..color = Colors.orangeAccent
..style = PaintingStyle.fill);
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
30 changes: 30 additions & 0 deletions lib/dice/dice_notifier.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'dart:math';

import 'package:flutter/material.dart';

class DiceNotifier extends ChangeNotifier {
bool _isRolled = false;
int _output = 1;

get isRolled => _isRolled;
get output => _output;

rollDice() async {
_isRolled = false;
var rollCounter = 0;

do {
_generateOutputAndNotify();
await Future.delayed(Duration(milliseconds: 100));
rollCounter++;
} while (rollCounter != 5);

_isRolled = true;
_generateOutputAndNotify();
}

_generateOutputAndNotify() {
_output = 1 + Random().nextInt(6);
notifyListeners();
}
}

0 comments on commit 063cff6

Please sign in to comment.