| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import 'package:get/get.dart';
- import 'package:trackoffical_app/model/game_person_data.dart';
- import 'package:trackoffical_app/model/m_control_point.dart';
- import 'package:trackoffical_app/service/app.dart';
- import 'game_model.dart';
- import 'package:fixnum/fixnum.dart';
- export 'package:trackoffical_app/model/m_control_point.dart';
- /// 比赛规则
- abstract class Rule{
- Rule(this.model);
- final _app = App.to;
- var _lastCheckedPoint= Int64(0);
- var _lastCheckedPointTime = DateTime(0);
- final GamePersonData model;
- recordLastPoint(MControlPoint toCheck){
- _lastCheckedPoint = toCheck.intId;
- _lastCheckedPointTime = _app.now;
- }
- bool _isCheckTooFast(Int64 id){
- return _lastCheckedPoint == id &&
- _app.now.difference(_lastCheckedPointTime) <= 10.seconds;
- }
- bool checkNeedReturn(MControlPoint toCheck){
- if (_isCheckTooFast(toCheck.intId)){
- return true;
- }
- if(model.controlPointWantSequence.isEmpty){
- return true;
- }
- return false;
- }
- void checkHistoryAdd(MControlPoint cp){
- model.checkedPointsHistory.add(cp);
- model.gameSrcState.value.pbGameSave.checkedSortedList.add(cp.toPbSave());
- }
- MControlPoint checkPoint(MControlPoint toCheck);
- }
- class RuleMock extends Rule{
- RuleMock(): super(GamePersonData()) ;
- @override
- MControlPoint checkPoint(MControlPoint toCheck) {
- return MControlPoint();
- }
- }
|