fix: fixed error activating bottom letter while bonus word animation

pull/61/head
RuiAlonso 4 years ago
parent 6867187659
commit c271acf8dc

@ -36,31 +36,39 @@ class BonusWord extends Component with BlocComponent<GameBloc, GameState> {
for (var i = 0; i < letters.length; i++) {
final letter = letters[i];
letter.add(
SequenceEffect(
[
ColorEffect(
i.isOdd ? BonusLetter._activeColor : BonusLetter._disableColor,
const Offset(0, 1),
EffectController(duration: 0.25),
),
ColorEffect(
i.isOdd ? BonusLetter._disableColor : BonusLetter._activeColor,
const Offset(0, 1),
EffectController(duration: 0.25),
),
],
repeatCount: 4,
)..onFinishCallback = () {
letter.add(
letter
..isEnabled = false
..add(
SequenceEffect(
[
ColorEffect(
BonusLetter._disableColor,
i.isOdd
? BonusLetter._activeColor
: BonusLetter._disableColor,
const Offset(0, 1),
EffectController(duration: 0.25),
),
);
},
);
ColorEffect(
i.isOdd
? BonusLetter._disableColor
: BonusLetter._activeColor,
const Offset(0, 1),
EffectController(duration: 0.25),
),
],
repeatCount: 4,
)..onFinishCallback = () {
letter
..isEnabled = true
..add(
ColorEffect(
BonusLetter._disableColor,
const Offset(0, 1),
EffectController(duration: 0.25),
),
);
},
);
}
}
}
@ -107,6 +115,10 @@ class BonusLetter extends BodyComponent<PinballGame>
final String _letter;
final int _index;
/// Indicates if [BonusLetter] could be activated on contact with [Ball].
/// Deactivated during animation of [GameBonus.word].
bool isEnabled = true;
@override
Future<void> onLoad() async {
await super.onLoad();
@ -172,6 +184,8 @@ class BonusLetterBallContactCallback
extends ContactCallback<Ball, BonusLetter> {
@override
void begin(Ball ball, BonusLetter bonusLetter, Contact contact) {
bonusLetter.activate();
if (bonusLetter.isEnabled) {
bonusLetter.activate();
}
}
}

Loading…
Cancel
Save