人狼BBS:G また構成の変更など
13人村の狂人が復活しました。13人村はいろいろ悩ましいのでまた変わるかもです。
10人 | 狼狼占霊村村村村村楽 |
11人 | 狼狼狂占霊狩村村村村楽 |
12人 | 狼狼狂占霊狩村村村村村楽 |
13人 | 狼狼狼狂占霊狩村村村村村楽 |
14人 | 狼狼狼狂占霊狩村村村村村村楽 |
役職希望も復活しました。ただし30%の確率でおまかせにされます。初参加時は村人希望ですが、これもおなじく30%の確率でおまかせになります。以下実装。
size = wolf_live_person.size max = { 'werewolf' => (13 <= size ? 3 : 6 <= size ? 2 : 1), 'seer' => 1, 'medium' => ( 9 <= size ? 1 : 0), 'possessed' => (11 <= size ? 1 : 0), 'bodyguard' => (11 <= size ? 1 : 0), 'freemasons' => (16 <= size ? 0 : 0), } sum = 0 max.values.each{|i| sum += i} max['villagers'] = size - sum wolf_live_person.each do |i| if i['user_id'] != 'master' i['skill'] = '' if !max.keys.index(i['skill']) # 不正な文字列ならおまかせ i['skill'] = '' if rand(100) < 30 # 30%の確率でおまかせ end end max.each do |k, v| # 希望が多すぎる場合はランダムで選ばれた人(ゲルト以外)がおまかせ wolf_skill_rand(k)['skill'] = '' while v < wolf_skill_person(k).size end max.each do |k, v| # 足りない役はおまかせの人からランダムで割り当て wolf_skill_rand('')['skill'] = k while wolf_skill_person(k).size < v end