class CharacterListInfo
艦娘一覧
Constants
- EXP_TABLE
累計経験値表
Attributes
改装設計図の枚数 (From API version 7)
図鑑No.
被弾状態を表す文字列(“NORMAL” 以外に何がある?)
経験値の獲得割合(%)
Lv.
ケッコンカッコカリ済みかどうかを表すフラグ(boolean)
最大HP
現在HP
艦娘の改造度合いを表す数値 (未改造の艦娘と、改造済みの艦娘が、別のデータとして返される) 0: 未改造 1: 改
艦型 未取得の場合は、空文字列
艦番号(1〜) 未取得の場合は、-1
艦名
艦種順でソートする際に使うキー
艦種
各スロットに搭載可能な艦載機数の配列(スロット数が4未満でも、要素は4個) 艦載機を搭載できない場合は 0
各スロットの搭載状況を表す文字列の配列(スロット数が4未満でも、要素は4個) “NONE”: “NOT_EQUIPPED_AIRCRAFT”: 艦載機を装備可能なスロットだが、艦載機を装備していない “EQUIPPED_AIRCRAFT”: 艦載機を装備している
各スロットの装備名を表す文字列の配列(スロット数が4未満でも、要素は4個)
各スロットの装備画像のファイル名の配列(スロット数が4未満でも、要素は4個) 何も装備していない場合、および装備可能なスロットでない場合は、空文字列
装備スロット数
星の数(1〜5)
艦娘のステータス画像(横長の画像)のファイル名
詳細画面で表示する画像のファイル名
Public Class Methods
Lv および経験値の獲得割合を、これまでに取得した累計経験値に変換して返します。 獲得割合は整数のパーセントなので、実際の累積経験値とは誤差があります。 また、経験値の獲得割合がサポートされる前のデータ(API version 4 以前)では、lv_to_exp と同じ結果を返します。 この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
# File lib/admiral_stats_parser/model/character_list_info.rb, line 212 def self.convert_lv_and_exp_percent_to_exp(lv, exp_percent) # API version 4 以前のデータには exp_percent が含まれないので、lv_to_exp と同じ結果を返す unless exp_percent return convert_lv_to_exp(lv) end # exp_percent が 0 の場合、lv_to_exp と同じ結果を返す # これは Lv が上限の場合に next_exp が解決できない問題を避けるため if exp_percent == 0 return convert_lv_to_exp(lv) end # 現在のレベルまでの経験値 current_exp = convert_lv_to_exp(lv) # 次のレベルまでの経験値 next_exp = convert_lv_to_exp(lv + 1) if next_exp # 次のレベルに達するまでに必要な経験値を加算して返す current_exp + (next_exp - current_exp) * exp_percent / 100 else # 最大レベルに達した場合は、現在のレベルまでの経験値のみを返す current_exp end end
引数で与えられた Lv を、これまでに取得した累計経験値に変換して返します。 ただし、Lv をもとに計算する都合上、その Lv になってから取得した経験値は含みません。 この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
# File lib/admiral_stats_parser/model/character_list_info.rb, line 111 def self.convert_lv_to_exp(lv) case lv when 1..50 # Lv51までは、必要経験値が100ずつ増えていく lv * (lv - 1) * 100 / 2 when 51..60 # Lv61までは、次レベルまでの必要経験値が200ずつ増えていく a = 5000 d = 200 n = lv - 50 # Lv50 までの累計経験値 = 122500 122500 + n * (2 * a + (n - 1) * d) / 2 when 61..70 # Lv71までは、次レベルまでの必要経験値が300ずつ増えていく a = 7000 d = 300 n = lv - 60 # Lv60 までの累計経験値 = 181500 181500 + n * (2 * a + (n - 1) * d) / 2 when 71..80 # Lv81までは、次レベルまでの必要経験値が400ずつ増えていく a = 10000 d = 400 n = lv - 70 # Lv70 までの累計経験値 = 265000 265000 + n * (2 * a + (n - 1) * d) / 2 when 81..91 # Lv91までは、次レベルまでの必要経験値が500ずつ増えていく a = 14000 d = 500 n = lv - 80 # Lv80 までの累計経験値 = 383000 383000 + n * (2 * a + (n - 1) * d) / 2 when 92..101 # Lv92〜101は規則性がないため、累計経験値表から取得 EXP_TABLE[lv] when 102..111 # Lv111までは、次レベルまでの必要経験値が1000ずつ増えていく a = 1000 d = 1000 n = lv - 101 # Lv101 までの累計経験値 = 1010000 1010000 + n * (2 * a + (n - 1) * d) / 2 when 112..116 # Lv116までは、次レベルまでの必要経験値が2000ずつ増えていく a = 12000 d = 2000 n = lv - 111 # Lv111 までの累計経験値 = 1065000 1065000 + n * (2 * a + (n - 1) * d) / 2 when 117..121 # Lv121までは、次レベルまでの必要経験値が3000ずつ増えていく a = 23000 d = 3000 n = lv - 116 # Lv116 までの累計経験値 = 1145000 1145000 + n * (2 * a + (n - 1) * d) / 2 when 122..131 # Lv131までは、次レベルまでの必要経験値が4000ずつ増えていく a = 39000 d = 4000 n = lv - 121 # Lv121 までの累計経験値 = 1290000 1290000 + n * (2 * a + (n - 1) * d) / 2 when 132..140 # Lv140までは、次レベルまでの必要経験値が5000ずつ増えていく a = 80000 d = 5000 n = lv - 131 # Lv131 までの累計経験値 = 1860000 1860000 + n * (2 * a + (n - 1) * d) / 2 when 141..145 # Lv145までは、次レベルまでの必要経験値が7000ずつ増えていく a = 127000 d = 7000 n = lv - 140 # Lv140 までの累計経験値 = 2760000 2760000 + n * (2 * a + (n - 1) * d) / 2 when 146..150 # Lv150までは、次レベルまでの必要経験値が8000ずつ増えていく a = 163000 d = 8000 n = lv - 145 # Lv145 までの累計経験値 = 3465000 3465000 + n * (2 * a + (n - 1) * d) / 2 when 151..155 # Lv155までは、次レベルまでの必要経験値が9000ずつ増えていく a = 204000 d = 9000 n = lv - 150 # Lv150 までの累計経験値 = 4360000 4360000 + n * (2 * a + (n - 1) * d) / 2 else nil end end
Public Instance Methods
Lv および経験値の獲得割合を、これまでに取得した累計経験値に変換して返します。 獲得割合は整数のパーセントなので、実際の累積経験値とは誤差があります。 また、経験値の獲得割合がサポートされる前のデータ(API version 4 以前)では、lv_to_exp と同じ結果を返します。 この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
# File lib/admiral_stats_parser/model/character_list_info.rb, line 104 def lv_and_exp_percent_to_exp CharacterListInfo.convert_lv_and_exp_percent_to_exp(@lv, @exp_percent) end
Lv を、これまでに取得した累計経験値に変換して返します。 ただし、Lv をもとに計算する都合上、その Lv になってから取得した経験値は含みません。 この累計経験値は、艦娘の経験値テーブルが、艦これの本家と同じと仮定して計算しています。
# File lib/admiral_stats_parser/model/character_list_info.rb, line 96 def lv_to_exp CharacterListInfo.convert_lv_to_exp(@lv) end