読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

ポケモンガチャに挑戦する(9) ポケットモンスター プラチナ

Pokémon

全国図鑑をそろえたい!のでポケモンガチャに挑戦するシリーズの第9回目です。前回の記事は「ポケモンガチャに挑戦する(8) ポケットモンスターファイアレッド」でした。

休みですし久しぶりにポケモンガチャに挑戦してみましょう。

全国図鑑をそろえたい!シリーズは、旧作ポケモンを中古で購入してセーブデータを確認する試みです。ポケモンガチャについてはこちらの記事をごらんください。

さて、今回はポケットモンスター プラチナを買ってきました。

ポケットモンスター プラチナ

ひさしぶりにポケモン買ったんですよね、初プラチナです。

ポケットモンスター プラチナは、ダイヤモンド・パールのバージョン違いです。

ポケットモンスター プラチナ(特典無し)

ポケットモンスター プラチナ(特典無し)

トレーナーカード

起動しました。

まずはトレーナーカードを見てみましょう。プレイ時間が132時間で殿堂入り済みのカセットです。久しぶりに期待できそうですね。

項目
ぜんこくずかん 274ひき
おこづかい 51291円
プレイじかん 132:47
ぼうけんをはじめたとき 2009/02/02
はじめてのでんどういり 2009/03/16

てもちのポケモン

次に手持ちのポケモンのチェックをしてみましょう。

132時間遊んでいるのもあってアグノムとパルキアが手持ちに残っていました。

ボックス

ボックス1。ロトムがいました。

ボックス2。今気付きましたが、ディアルガがいました。

たまごたまご。サンムーンと違って温泉がないので孵化させるの大変そう。

ボックス4。今まで見たことないポケモンがいます。アルセウスがいました。

ボックス5。

ボックス6。

ボックス7。ウリムーはいましたが夢特性(あついしぼう)ではありませんでした。

イーブイコーナー。

ボックス18。

一通り伝説のポケモンが揃っていました。

関連記事

この他にもポケモンについて書いています。まとめておりますのでこちらのページをご参照ください。よろしくお願いします。

ポケットモンスター サンをクリアしたよ!

Pokémon

この記事は思いのまま書いて放置してしまって、かれこれ1ヶ月も経ってしまいました。

今日は初めてのプレミアムフライデーということでブログを更新しようと思います。

ポケットモンスター サンをクリアしたよ!

1月3日、ポケットモンスターの最新作にあたる「サン・ムーン」のサンをクリアしました。

去年の12月に延々と書いていた「ゲームボーイアドベントカレンダー」の関係で、途中ダイヤモンドとサファイアとオメガルビーに浮気してたけど、無事サンもクリアすることができました。

ポケットモンスター サン - 3DS

ポケットモンスター サン - 3DS

他のシリーズにも言えることなのですが、僕はあんまりポケモンの主人公に感情移入することができなくて、淡々とシナリオをこなしていくだけで、サンムーンでも似たような感想でした。

ただ、サンムーンでのチャンピオンとの対戦開始時にかかるBGMはドキドキしました。めっちゃよかった。

f:id:ch3cooh393:20170223152711j:plain

つい先週、2ヶ月遅れで妻も「ムーン」をクリアしていました。今はPSPでうたプリやっているみたいです。

アローラ図鑑もコンプリートしました

やりましたワァ。1月30日にアローラ図鑑を100%埋めました。ポケモンで図鑑コンプリートできたのは初めてです。

f:id:ch3cooh393:20170223152325j:plain

賛否両論あるとは思いますが、サンムーンではポケモンシリーズに伝統的にあった全国図鑑が廃止されているので、ポケモン出戻り組としては遊びやすかったです。

全国図鑑を意識せざるを得なかったとしたら途中で投げていたと思います。

クリア後の遊び方

だいたいクリアしたのが90時間くらいでした。現在、プレイ時間が350時間を越えようとしています。

ポケモンはクリア後の遊び方が豊富です。

  • クリア後シナリオを進める
  • 図鑑を完成させる
  • バトルツリーを攻略する
  • バトルロイヤルを攻略する (4人対戦)
  • 通信対戦でレートを極める

僕が90時間でクリアしたあとに何をやっていたのかというと、ほぼ全ての時間をGTSに使っています。

GTSにハマってしまう

とにかくGTSが楽しいです。

GTSは、Global Trade Systemの略で、「欲しいポケモン」を選択して「不要なポケモン」を預けておけば、誰かが気付いて交換してくれる便利システムです。

初代の頃にGTSがあればひとりででも図鑑をコンプリートすることができたのに……

GTSを使ったのはムーン限定のポケモンが手に入らず図鑑を埋めるために利用したのが最初でした。その後、GTSにハマってしまうのでした。

ついつい伝説ポケモンを集めてしまう……

2月24日現在、GTS通貨と呼ばれているのが準伝説のテッカグヤです。

テッカグヤを量産したので、ソルガレオとルナアーラ(伝説)を含めてその他の伝説に両替する作業をしました。集まったのはこんな感じです。フェローチェが多いのは趣味です

f:id:ch3cooh393:20170224142846g:plain

後述しますが、カセットのボックスだけだと収まらないので、ポケバンクにたくさん預けています。

用語の成り立ちについては知らないのですが、GTSでは「通貨」と呼ばれているポケモンが存在しています。対戦で強かったり、人気だったり有名だったりするポケモンが通貨として扱われるようです。

GTSでのポケモンの価値

諸条件あるのですが、ざっくりとGTSでのポケモンの価値を書くと下表のようになります。個人の感想です!

価値 該当ポケモン
幻のポケモン
色違いポケモン
伝説のポケモン(禁止級) コスモッグ、ソルガレオ、ルナアーラ
伝説のポケモン(準伝説級) UB、タイプ:ヌル、カプ系
出現確率の低い野生ポケモン ポワルン、バニプッチなど
オシャレなボール入りのポケモン、夢特性のポケモン ラブボロコン、ドリボルナトーンなど
その辺で出てくるポケモン ケーシィ、コラッタなど

個人的には、幻と色違いに関してはGTSでの交換を避けるようにしています。

幻のポケモンはプレシャスボールという特殊なボールに入っていて、「特別な出会いをしたリボン」がついているので基本的にはGTSで交換することができません。

色違いポケモンに関しては、出現させるのにかなり苦労するので、ほとんどが改造ポケモンだろうと考えています。

実際に自分で孵化させた色違いを出してくることもあるかもしれませんが、国際孵化+ひかるおまもりで発生確率は0.00125%*1、タイプ:ヌルの色違いの発生確率は0.000147%*2なので、この苦労を負って孵化させた色違いポケモンを普通GTSで出すかな?と考えています。

現在のGTS通貨

サンムーンの世界では「テッカグヤ」が通貨として扱われているようです。図解するとこんな感じでGTSという経済がまわっているようです。あくまでも僕からみたGTSの世界です!!

+----------------+      +--------------+
| テッカグヤ        +----> | 伝説のポケモン |
+---+------------+      +--------------+
    |       ^
    |       |
    v       |
+-----------+----+
| オシャボポケモン   |
+----------------+

まず、オシャレなボール(モンスターボール以外にもピンク色とか緑色のボールが最新版では増えていた)に入ったポケモンを手に入れます。オシャボポケモンを孵化させて、高個体値のポケモンを量産します。

色違い厳選を始めると、あっという間に100体を超えるポケモンの卵でボックスが溢れかえる*3ので、不要になったポケモンをテッカグヤと交換してもらいます。

XY・ORAS時代のGTSの盛り上がり方がどうだったのかはわからないのですが、サンムーンのGTSはかなり高頻度で交換が成立します。

そのテッカグヤを原資にして、別のオシャボポケモンと交換してもらうのがとても楽しいです。僕は今ドリームボールに入ったポケモンを集めています。

ちなみに嫁からは「それはもうポケモンじゃなくて別のゲームだ」と言われました。

伝説のポケモンの集め方

2017年1,2月時点の方法です。次に新作が出てGTSで遊ぶときのためにメモを残しておきますが、ひょっとしたら将来的には通用しない方法かもしれません。

1月27日にポケバンクが解禁されました。年間500円程度なのですが、思ったよりもポケバンクを使っている人は少ないようで過去作の御三家がとても人気でした。

1月下旬でのGTSでの記録

  • ヒトカゲ -> フェローチェ、マッシブーン
  • フェローチェ -> テッカグヤ
  • マッシブーン -> テッカグヤ
  • ヒトカゲ+ぎんのおうかん -> コスモッグ
  • テッカグヤ -> コスモッグ

1週間もすると初代御三家が過供給となってしまい、交換してもらえなくなってしまいました。当日〜3日目あたりまでは、預けるとその瞬間に交換が成立するくらいでした。

2月上旬のGTSでの記録

  • オシャボ -> ウツロイド
  • ウツロイド -> カプ・レフレ、カプ・テテフ

2月中旬のGTSでの記録

  • オシャボ+スターのみ -> テッカグヤ
  • テッカグヤ -> ソルガレオ、ルナアーラ

サンムーンでの伝説・準伝説は一通り揃ったので、過去作の伝説ポケモンの交換ルートを検討しているのですが、なかなか安定した交換経路を確立することができていません。

関連記事

この他にもポケモンについて書いています。まとめておりますのでこちらのページをご参照ください。よろしくお願いします。

*1:800体孵化させて1匹

*2:6,800体に1匹

*3:誇張表現ではない

iOSのAutoLayoutで複数行テキストのボタンが正しく改行されない

iPhone Swift

複数行テキストのボタンをAutoLayoutで配置したら、テキスト量によって改行するボタンを作りたかったんだけど、ハマってしまって改行してくれないボタンになってしまった。

f:id:ch3cooh393:20170202100511p:plain

作りとしては、UITableViewに改行ボタンを配置したカスタムセルを表示しているだけです。

修正した

きちんと改行してくれるように修正しました。

f:id:ch3cooh393:20170202100524p:plain

CustomButton.swift

CustomButton#intrinsicContentSizeを適切なサイズで返すと綺麗に改行させて表示させることができました。

import UIKit

class CustomButton: UIButton {

    override func awakeFromNib() {
        super.awakeFromNib()
        
        titleLabel?.numberOfLines = 0
        titleLabel?.lineBreakMode = .byCharWrapping
        titleLabel?.textAlignment = .left
        
        titleEdgeInsets = UIEdgeInsets(top: 0, left: 24, bottom: 0, right: 20)
    }
    
    override var intrinsicContentSize: CGSize {
        let margin = self.titleEdgeInsets.left + self.titleEdgeInsets.right

        var size = CGSize(width: self.frame.width - margin, height: CGFloat.greatestFiniteMagnitude)
        size = self.titleLabel?.sizeThatFits(size) ?? CGSize.zero
        size = CGSize(width: size.width, height: size.height + 16)
        
        return size
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        titleLabel?.preferredMaxLayoutWidth = titleLabel!.frame.width
        super.layoutSubviews()
    }
    
}

CustomTableViewCell.swift

import UIKit

class CustomTableViewCell: UITableViewCell {

    @IBOutlet weak var button: UIButton!
    @IBOutlet weak var heightLayoutConstraint: NSLayoutConstraint!
    
    var title: String? {
        didSet {
            updateDisplay()
        }
    }
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
        
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

    fileprivate func updateDisplay() {
        guard let title = title else {
            return
        }
        
        button.setTitle(title, for: .normal)
        button.setTitleColor(.black, for: .normal)
    }
    
}

MasterViewController.swift

    var objects = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        objects = [
          //省略
        ]
        
        tableView.register(UINib(nibName: "CustomTableViewCell", bundle: nil), forCellReuseIdentifier: "customCell")
        tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 300
        
    }

    // MARK: - Table View

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return objects.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! CustomTableViewCell
        cell.title = objects[indexPath.row]
        return cell
    }