Skip to content

Commit 0796d49

Browse files
author
RUBIUS\chebanovdd
committed
Changed stateful slot logic.
1 parent 7fb2079 commit 0796d49

File tree

4 files changed

+18
-30
lines changed

4 files changed

+18
-30
lines changed

samples/Unity.Match3/Assets/Scripts/Common/GridTiles/StatefulGridTile.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,33 @@ protected override void Start()
1717
_stateSpriteRenderer.sprite = GetStateSprite(_currentStateIndex);
1818
}
1919

20-
public virtual bool NextState()
20+
public void NextState()
2121
{
2222
_currentStateIndex++;
2323

24-
if (_currentStateIndex >= _stateSpriteNames.Length)
24+
if (_currentStateIndex < _stateSpriteNames.Length)
25+
{
26+
_stateSpriteRenderer.sprite = GetStateSprite(_currentStateIndex);
27+
}
28+
else
2529
{
2630
_stateSpriteRenderer.enabled = false;
27-
return false;
31+
OnComplete();
2832
}
29-
30-
_stateSpriteRenderer.sprite = GetStateSprite(_currentStateIndex);
31-
return true;
3233
}
3334

34-
public virtual void ResetState()
35+
public void ResetState()
3536
{
3637
_currentStateIndex = 0;
3738
_stateSpriteRenderer.enabled = true;
3839
_stateSpriteRenderer.sprite = GetStateSprite(0);
40+
41+
OnReset();
3942
}
4043

44+
protected abstract void OnComplete();
45+
protected abstract void OnReset();
46+
4147
private Sprite GetStateSprite(int index)
4248
{
4349
return GetSprite(_stateSpriteNames[index]);

samples/Unity.Match3/Assets/Scripts/Common/GridTiles/States/IceState.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,13 @@ public class IceState : StatefulGridTile
1010
public override bool CanContainItem => true;
1111
public override TileGroup Group => TileGroup.Ice;
1212

13-
public override bool NextState()
13+
protected override void OnComplete()
1414
{
15-
var hasNextState = base.NextState();
16-
if (hasNextState)
17-
{
18-
return true;
19-
}
20-
2115
_isLocked = false;
22-
return false;
2316
}
2417

25-
public override void ResetState()
18+
protected override void OnReset()
2619
{
27-
base.ResetState();
2820
_isLocked = true;
2921
}
3022
}

samples/Unity.Match3/Assets/Scripts/Common/GridTiles/States/StoneState.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,14 @@ public class StoneState : StatefulGridTile
1111
public override bool CanContainItem => _canContainItem;
1212
public override TileGroup Group => TileGroup.Stone;
1313

14-
public override bool NextState()
14+
protected override void OnComplete()
1515
{
16-
var hasNextState = base.NextState();
17-
if (hasNextState)
18-
{
19-
return true;
20-
}
21-
2216
_isLocked = false;
2317
_canContainItem = true;
24-
25-
return false;
2618
}
2719

28-
public override void ResetState()
20+
protected override void OnReset()
2921
{
30-
base.ResetState();
31-
3222
_isLocked = true;
3323
_canContainItem = false;
3424
}

samples/Unity.Match3/Assets/Scripts/Common/Interfaces/IStatefulSlot.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ namespace Common.Interfaces
22
{
33
public interface IStatefulSlot
44
{
5-
bool NextState();
5+
void NextState();
66
void ResetState();
77
}
88
}

0 commit comments

Comments
 (0)