/// <summary>
 /// Produces an army with the given composition and a corresponding sprite by the given cellTypeId.
 /// </summary>
 private void InitializeCellById(byte cellTypeId, ArmyComposition armyComposition,
                                 out Army army, out Sprite sprite)
 {
     army   = null;
     sprite = null;
     if (cellTypeId == firstPlayerCellId)
     {
         army   = new UserArmy(PlayerType.FIRST, armyComposition);
         sprite = firstUserSprite;
     }
     else if (cellTypeId == secondPlayerCellId)
     {
         army   = new UserArmy(PlayerType.SECOND, armyComposition);
         sprite = secondUserSprite;
     }
     else if (cellTypeId == neutralFriendlyCellId)
     {
         army   = new NeutralFriendlyArmy(armyComposition);
         sprite = neutralFriendlySprite;
     }
     else if (cellTypeId == neutralAggressiveCellId)
     {
         army   = new NeutralAggressiveArmy(armyComposition);
         sprite = neutralAggressiveSprite;
     }
 }
 /// <summary>
 /// Produces an army and corresponding sprite by the given neutral type.
 ///
 /// </summary>
 private void InitializeNeutralCell(int neutralTypeId, int col, int row, out Army army, out Sprite sprite)
 {
     army   = null;
     sprite = null;
     if (neutralTypeId == neutralFriendlyCellId)
     {
         sprite = neutralFriendlySprite;
         army   = new NeutralFriendlyArmy(GenerateBalancedArmyComposition(ArmyType.NEUTRAL_FRIENDLY,
                                                                          new IntVector2(col, row)));
     }
     else if (neutralTypeId == neutralAggressiveCellId)
     {
         sprite = neutralAggressiveSprite;
         army   = new NeutralAggressiveArmy(GenerateBalancedArmyComposition(ArmyType.NEUTRAL_AGGRESSIVE,
                                                                            new IntVector2(col, row)));
     }
 }