Skip to content

Commit 5d479ee

Browse files
committed
Add "Mine" ship type
1 parent f15be86 commit 5d479ee

11 files changed

Lines changed: 60 additions & 26 deletions

File tree

TurnBase.KaNoBu.Godot/Presentation/GameField.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,19 @@ public void GamePlayerTurn(int playerNumber, KaNoBuMoveNotificationModel notific
195195
break;
196196
case KaNoBuMoveNotificationModel.BattleResult.DefenderWon:
197197
// Defender won
198-
defenderUnit.RotateUnitTo(movedUnit.Position);
199-
defenderUnit.Attack();
200-
movedUnit.UnitHit();
198+
if (notification.battle.Value.isMine)
199+
{
200+
movedUnit.RotateUnitTo(toWorldPos);
201+
movedUnit.Attack();
202+
movedUnit.UnitHit();
203+
defenderUnit.UnitHit();
204+
}
205+
else
206+
{
207+
defenderUnit.RotateUnitTo(movedUnit.Position);
208+
defenderUnit.Attack();
209+
movedUnit.UnitHit();
210+
}
201211
break;
202212
}
203213
}

TurnBase.KaNoBu.Godot/Presentation/Levels/Level1.tscn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ tile_data = PoolIntArray( 65533, 2, 0, 65534, 2, 1, 65535, 2, 1, 0, 2, 1, 1, 2,
1212

1313
[node name="Unit1" parent="Field" index="0" instance=ExtResource( 3 )]
1414
position = Vector2( 159, 185 )
15-
UnitType = 2
15+
UnitType = 6
1616

1717
[node name="Unit2" parent="Field" index="1" instance=ExtResource( 3 )]
1818
position = Vector2( 325, 185 )

TurnBase.KaNoBu.Godot/Presentation/UI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public IGame BuildGame()
8686
this.GetParent().AddChild(field);
8787

8888
var rules = new KaNoBuRules(8);
89-
rules.AllFiguresVisible = true;
89+
rules.AllFiguresVisible = false;
9090
kanobu = new Game<KaNoBuInitModel, KaNoBuInitResponseModel, KaNoBuMoveModel, KaNoBuMoveResponseModel, KaNoBuMoveNotificationModel>(rules, "test");
9191

9292
var playerTypes = new[]{

TurnBase.KaNoBu.Godot/Presentation/Unit.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,22 @@ public KaNoBuFigure.FigureTypes UnitType
4646
case KaNoBuFigure.FigureTypes.ShipStone:
4747
shipTypeTexture.Region = new Rect2(300, 170, 20, 20);
4848
break;
49+
case KaNoBuFigure.FigureTypes.ShipFlag:
50+
shipTypeTexture.Region = new Rect2(320, 170, 20, 20);
51+
break;
52+
4953
case KaNoBuFigure.FigureTypes.ShipScissors:
5054
shipTypeTexture.Region = new Rect2(280, 190, 20, 20);
5155
break;
5256
case KaNoBuFigure.FigureTypes.ShipPaper:
5357
shipTypeTexture.Region = new Rect2(300, 190, 20, 20);
5458
break;
55-
case KaNoBuFigure.FigureTypes.ShipFlag:
56-
shipTypeTexture.Region = new Rect2(320, 170, 20, 20);
57-
break;
5859
case KaNoBuFigure.FigureTypes.ShipUniversal:
5960
shipTypeTexture.Region = new Rect2(320, 190, 20, 20);
6061
break;
62+
case KaNoBuFigure.FigureTypes.ShipMine:
63+
shipTypeTexture.Region = new Rect2(340, 190, 20, 20);
64+
break;
6165
}
6266
}
6367
}
860 Bytes
Loading

TurnBase.KaNoBu/KaNoBuFieldMemorization.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,22 @@ public void UpdateKnownShips(KaNoBuMoveNotificationModel notification)
8888
break;
8989
case KaNoBuMoveNotificationModel.BattleResult.DefenderWon:
9090
// Defender won
91-
if (defenderUnit.FigureType == KaNoBuFigure.FigureTypes.ShipUniversal)
91+
if (notification.battle.Value.isMine)
9292
{
93-
defenderUnit.FigureType = KaNoBuFigure.FigureTypes.Unknown;
93+
defenderUnit.FigureType = KaNoBuFigure.FigureTypes.ShipMine;
9494
}
95+
else
96+
{
97+
if (defenderUnit.FigureType == KaNoBuFigure.FigureTypes.ShipUniversal)
98+
{
99+
defenderUnit.FigureType = KaNoBuFigure.FigureTypes.Unknown;
100+
}
95101

96-
if (movedUnit.FigureType != KaNoBuFigure.FigureTypes.Unknown) defenderUnit.FigureType = KaNoBuRules.Winner[movedUnit.FigureType];
97-
if (defenderUnit.FigureType != KaNoBuFigure.FigureTypes.Unknown) movedUnit.FigureType = KaNoBuRules.Looser[defenderUnit.FigureType];
102+
if (movedUnit.FigureType != KaNoBuFigure.FigureTypes.Unknown) defenderUnit.FigureType = KaNoBuRules.Winner[movedUnit.FigureType];
103+
if (defenderUnit.FigureType != KaNoBuFigure.FigureTypes.Unknown) movedUnit.FigureType = KaNoBuRules.Looser[defenderUnit.FigureType];
98104

99-
this.Field[toMapPos] = defenderUnit;
105+
this.Field[toMapPos] = defenderUnit;
106+
}
100107
break;
101108
}
102109
}

TurnBase.KaNoBu/KaNoBuFigure.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,13 @@ public class KaNoBuFigure : IFigure
3333

3434
public enum FigureTypes
3535
{
36-
Unknown = 0,
37-
ShipFlag = 1,
38-
ShipStone = 2,
39-
ShipPaper = 3,
40-
ShipScissors = 4,
41-
ShipUniversal = 5
36+
Unknown,
37+
ShipFlag,
38+
ShipStone,
39+
ShipPaper,
40+
ShipScissors,
41+
ShipUniversal,
42+
ShipMine,
4243
}
4344

4445
public int PlayerId { get; set; }
@@ -55,7 +56,7 @@ public KaNoBuFigure(int playerId, FigureTypes figureType, bool visibleForAllPlay
5556

5657
public bool IsMoveValid(KaNoBuMoveResponseModel playerMove)
5758
{
58-
if (this.FigureType == FigureTypes.ShipFlag || this.FigureType == FigureTypes.Unknown)
59+
if (this.FigureType == FigureTypes.ShipFlag || this.FigureType == FigureTypes.Unknown || this.FigureType == FigureTypes.ShipMine)
5960
{
6061
return false;
6162
}

TurnBase.KaNoBu/KaNoBuModels.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public struct Battle
6262
{
6363
public BattleResult battleResult;
6464
public bool isDefenderFlag;
65+
public bool isMine;
6566
}
6667

6768
public enum BattleResult

TurnBase.KaNoBu/KaNoBuPlayerEasy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private List<KaNoBuMoveResponseModel> findAllMovement(IField mainField)
105105
continue;
106106
}
107107

108-
if (shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipFlag)
108+
if (shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipFlag || shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipMine)
109109
{
110110
continue;
111111
}

TurnBase.KaNoBu/KaNoBuPlayerMedium.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private IEnumerable<KaNoBuMoveResponseModel> findAllMovement(IField mainField)
141141
continue;
142142
}
143143

144-
if (shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipFlag)
144+
if (shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipFlag || shipFrom.FigureType == KaNoBuFigure.FigureTypes.ShipMine)
145145
{
146146
continue;
147147
}

0 commit comments

Comments
 (0)