<?php
//-- 役職データベース --//
class RoleData {
  /* 役職名 (役職通知リストはこの順番で表示される) */
  //メイン役職のリスト (コード名 => 表示名)
  static public $main_role_list = array(
    'human'                 => '村人',
    'saint'                 => '聖女',
    'executor'              => '執行者',
    'elder'                 => '長老',
    'scripter'              => '執筆者',
    'eccentricer'           => '傾奇者',
    'tough'                 => '益荒男',
    'suspect'               => '不審者',
    'unconscious'           => '無意識',
    'mage'                  => '占い師',
    'puppet_mage'           => '傀儡師',
    'step_mage'             => '審神者',
    'soul_mage'             => '魂の占い師',
    'psycho_mage'           => '精神鑑定士',
    'sex_mage'              => 'ひよこ鑑定士',
    'stargazer_mage'        => '占星術師',
    'voodoo_killer'         => '陰陽師',
    'cute_mage'             => '萌占い師',
    'dummy_mage'            => '夢見人',
    'necromancer'           => '霊能者',
    'soul_necromancer'      => '雲外鏡',
    'psycho_necromancer'    => '精神感応者',
    'embalm_necromancer'    => '死化粧師',
    'emissary_necromancer'  => '密偵',
    'attempt_necromancer'   => '蟲姫',
    'yama_necromancer'      => '閻魔',
    'dummy_necromancer'     => '夢枕人',
    'medium'                => '巫女',
    'bacchus_medium'        => '神主',
    'seal_medium'           => '封印師',
    'revive_medium'         => '風祝',
    'eclipse_medium'        => '蝕巫女',
    'priest'                => '司祭',
    'bishop_priest'         => '司教',
    'dowser_priest'         => '探知師',
    'weather_priest'        => '祈祷師',
    'high_priest'           => '大司祭',
    'crisis_priest'         => '預言者',
    'widow_priest'          => '未亡人',
    'holy_priest'           => '聖徳道士',
    'revive_priest'         => '天人',
    'border_priest'         => '境界師',
    'dummy_priest'          => '夢司祭',
    'guard'                 => '狩人',
    'hunter_guard'          => '猟師',
    'blind_guard'           => '夜雀',
    'gatekeeper_guard'      => '門番',
    'step_guard'            => '山立',
    'reflect_guard'         => '侍',
    'poison_guard'          => '騎士',
    'fend_guard'            => '忍者',
    'reporter'              => 'ブン屋',
    'anti_voodoo'           => '厄神',
    'elder_guard'           => '老兵',
    'dummy_guard'           => '夢守人',
    'common'                => '共有者',
    'leader_common'         => '指導者',
    'detective_common'      => '探偵',
    'trap_common'           => '策士',
    'sacrifice_common'      => '首領',
    'ghost_common'          => '亡霊嬢',
    'spell_common'          => '葛の葉',
    'critical_common'       => '暴君',
    'hermit_common'         => '隠者',
    'dummy_common'          => '夢共有者',
    'poison'                => '埋毒者',
    'strong_poison'         => '強毒者',
    'incubate_poison'       => '潜毒者',
    'guide_poison'          => '誘毒者',
    'snipe_poison'          => '狙毒者',
    'chain_poison'          => '連毒者',
    'dummy_poison'          => '夢毒者',
    'poison_cat'            => '猫又',
    'revive_cat'            => '仙狸',
    'sacrifice_cat'         => '猫神',
    'missfire_cat'          => '常世神',
    'eclipse_cat'           => '蝕仙狸',
    'pharmacist'            => '薬師',
    'cure_pharmacist'       => '河童',
    'revive_pharmacist'     => '仙人',
    'alchemy_pharmacist'    => '錬金術師',
    'centaurus_pharmacist'  => '人馬',
    'assassin'              => '暗殺者',
    'doom_assassin'         => '死神',
    'select_assassin'       => 'おしら様',
    'sweep_assassin'        => '掃除屋',
    'professional_assassin' => '仕事人',
    'ascetic_assassin'      => '修験者',
    'reverse_assassin'      => '反魂師',
    'soul_assassin'         => '辻斬り',
    'eclipse_assassin'      => '蝕暗殺者',
    'mind_scanner'          => 'さとり',
    'evoke_scanner'         => 'イタコ',
    'presage_scanner'       => '件',
    'clairvoyance_scanner'  => '猩々',
    'whisper_scanner'       => '囁騒霊',
    'howl_scanner'          => '吠騒霊',
    'telepath_scanner'      => '念騒霊',
    'dummy_scanner'         => '幻視者',
    'jealousy'              => '橋姫',
    'divorce_jealousy'      => '縁切地蔵',
    'priest_jealousy'       => '恋司祭',
    'poison_jealousy'       => '毒橋姫',
    'miasma_jealousy'       => '蛇姫',
    'critical_jealousy'     => '人魚',
    'brownie'               => '座敷童子',
    'thunder_brownie'       => '雷公',
    'echo_brownie'          => '山彦',
    'revive_brownie'        => '蛇神',
    'harvest_brownie'       => '豊穣神',
    'maple_brownie'         => '紅葉神',
    'cursed_brownie'        => '祟神',
    'sun_brownie'           => '八咫烏',
    'history_brownie'       => '白澤',
    'wizard'                => '魔法使い',
    'soul_wizard'           => '八卦見',
    'awake_wizard'          => '比丘尼',
    'mimic_wizard'          => '物真似師',
    'spiritism_wizard'      => '交霊術師',
    'philosophy_wizard'     => '賢者',
    'barrier_wizard'        => '結界師',
    'astray_wizard'         => '左道使い',
    'pierrot_wizard'        => '道化師',
    'doll'                  => '上海人形',
    'friend_doll'           => '仏蘭西人形',
    'phantom_doll'          => '倫敦人形',
    'poison_doll'           => '鈴蘭人形',
    'doom_doll'             => '蓬莱人形',
    'revive_doll'           => '西蔵人形',
    'scarlet_doll'          => '和蘭人形',
    'silver_doll'           => '露西亜人形',
    'doll_master'           => '人形遣い',
    'escaper'               => '逃亡者',
    'psycho_escaper'        => '迷い人',
    'incubus_escaper'       => '一角獣',
    'succubus_escaper'      => '水妖姫',
    'doom_escaper'          => '半鳥女',
    'divine_escaper'        => '麒麟',
    'wolf'                  => '人狼',
    'boss_wolf'             => '白狼',
    'mist_wolf'             => '霧狼',
    'gold_wolf'             => '金狼',
    'phantom_wolf'          => '幻狼',
    'cursed_wolf'           => '呪狼',
    'quiet_wolf'            => '静狼',
    'wise_wolf'             => '賢狼',
    'disguise_wolf'         => '朔狼',
    'purple_wolf'           => '紫狼',
    'snow_wolf'             => '雪狼',
    'ascetic_wolf'          => '印狼',
    'poison_wolf'           => '毒狼',
    'resist_wolf'           => '抗毒狼',
    'revive_wolf'           => '仙狼',
    'trap_wolf'             => '狡狼',
    'fire_wolf'             => '火狼',
    'step_wolf'             => '響狼',
    'blue_wolf'             => '蒼狼',
    'emerald_wolf'          => '翠狼',
    'decieve_wolf'          => '欺狼',
    'doom_wolf'             => '冥狼',
    'sex_wolf'              => '雛狼',
    'sharp_wolf'            => '鋭狼',
    'hungry_wolf'           => '餓狼',
    'tongue_wolf'           => '舌禍狼',
    'possessed_wolf'        => '憑狼',
    'sirius_wolf'           => '天狼',
    'elder_wolf'            => '古狼',
    'cute_wolf'             => '萌狼',
    'scarlet_wolf'          => '紅狼',
    'silver_wolf'           => '銀狼',
    'emperor_wolf'          => '帝狼',
    'mad'                   => '狂人',
    'fanatic_mad'           => '狂信者',
    'whisper_mad'           => '囁き狂人',
    'swindle_mad'           => '因幡兎',
    'jammer_mad'            => '月兎',
    'voodoo_mad'            => '呪術師',
    'enchant_mad'           => '狢',
    'step_mad'              => '家鳴',
    'dream_eater_mad'       => '獏',
    'possessed_mad'         => '犬神',
    'trap_mad'              => '罠師',
    'snow_trap_mad'         => '雪女',
    'corpse_courier_mad'    => '火車',
    'amaze_mad'             => '傘化け',
    'agitate_mad'           => '扇動者',
    'miasma_mad'            => '土蜘蛛',
    'critical_mad'          => '釣瓶落とし',
    'fire_mad'              => '煙々羅',
    'follow_mad'            => '舟幽霊',
    'therian_mad'           => '獣人',
    'revive_mad'            => '尸解仙',
    'immolate_mad'          => '殉教者',
    'fox'                   => '妖狐',
    'white_fox'             => '白狐',
    'black_fox'             => '黒狐',
    'mist_fox'              => '霧狐',
    'gold_fox'              => '金狐',
    'phantom_fox'           => '幻狐',
    'purple_fox'            => '紫狐',
    'snow_fox'              => '雪狐',
    'poison_fox'            => '管狐',
    'blue_fox'              => '蒼狐',
    'spell_fox'             => '宙狐',
    'sacrifice_fox'         => '白蔵主',
    'emerald_fox'           => '翠狐',
    'voodoo_fox'            => '九尾',
    'step_fox'              => '響狐',
    'revive_fox'            => '仙狐',
    'possessed_fox'         => '憑狐',
    'doom_fox'              => '冥狐',
    'trap_fox'              => '狡狐',
    'cursed_fox'            => '天狐',
    'elder_fox'             => '古狐',
    'cute_fox'              => '萌狐',
    'scarlet_fox'           => '紅狐',
    'silver_fox'            => '銀狐',
    'immolate_fox'          => '野狐禅',
    'child_fox'             => '子狐',
    'sex_fox'               => '雛狐',
    'stargazer_fox'         => '星狐',
    'jammer_fox'            => '月狐',
    'monk_fox'              => '蛻庵',
    'miasma_fox'            => '蟲狐',
    'howl_fox'              => '化狐',
    'vindictive_fox'        => '昼狐',
    'critical_fox'          => '寿羊狐',
    'cupid'                 => 'キューピッド',
    'self_cupid'            => '求愛者',
    'moon_cupid'            => 'かぐや姫',
    'mind_cupid'            => '女神',
    'sweet_cupid'           => '弁財天',
    'minstrel_cupid'        => '吟遊詩人',
    'triangle_cupid'        => '小悪魔',
    'revive_cupid'          => '邪仙',
    'snow_cupid'            => '寒戸婆',
    'angel'                 => '天使',
    'rose_angel'            => '薔薇天使',
    'lily_angel'            => '百合天使',
    'exchange_angel'        => '魂移使',
    'ark_angel'             => '大天使',
    'sacrifice_angel'       => '守護天使',
    'scarlet_angel'         => '紅天使',
    'cursed_angel'          => '堕天使',
    'quiz'                  => '出題者',
    'vampire'               => '吸血鬼',
    'poison_vampire'        => '百々爺',
    'incubus_vampire'       => '青髭公',
    'succubus_vampire'      => '飛縁魔',
    'passion_vampire'       => '牡丹灯籠',
    'step_vampire'          => '文武王',
    'doom_vampire'          => '冥血鬼',
    'sacrifice_vampire'     => '吸血公',
    'soul_vampire'          => '吸血姫',
    'scarlet_vampire'       => '屍鬼',
    'chiroptera'            => '蝙蝠',
    'poison_chiroptera'     => '毒蝙蝠',
    'cursed_chiroptera'     => '呪蝙蝠',
    'boss_chiroptera'       => '大蝙蝠',
    'elder_chiroptera'      => '古蝙蝠',
    'cute_chiroptera'       => '萌蝙蝠',
    'scarlet_chiroptera'    => '紅蝙蝠',
    'dummy_chiroptera'      => '夢求愛者',
    'fairy'                 => '妖精',
    'spring_fairy'          => '春妖精',
    'summer_fairy'          => '夏妖精',
    'autumn_fairy'          => '秋妖精',
    'winter_fairy'          => '冬妖精',
    'greater_fairy'         => '大妖精',
    'light_fairy'           => '光妖精',
    'dark_fairy'            => '闇妖精',
    'grass_fairy'           => '草妖精',
    'sun_fairy'             => '日妖精',
    'moon_fairy'            => '月妖精',
    'star_fairy'            => '星妖精',
    'flower_fairy'          => '花妖精',
    'shadow_fairy'          => '影妖精',
    'mirror_fairy'          => '鏡妖精',
    'sweet_fairy'           => '恋妖精',
    'ice_fairy'             => '氷妖精',
    'ogre'                  => '鬼',
    'orange_ogre'           => '前鬼',
    'indigo_ogre'           => '後鬼',
    'cow_ogre'              => '牛頭鬼',
    'horse_ogre'            => '馬頭鬼',
    'poison_ogre'           => '榊鬼',
    'west_ogre'             => '金鬼',
    'east_ogre'             => '風鬼',
    'north_ogre'            => '水鬼',
    'south_ogre'            => '隠行鬼',
    'incubus_ogre'          => '般若',
    'wise_ogre'             => '夜行鬼',
    'power_ogre'            => '星熊童子',
    'revive_ogre'           => '茨木童子',
    'sacrifice_ogre'        => '酒呑童子',
    'yaksa'                 => '夜叉',
    'betray_yaksa'          => '夜叉丸',
    'cursed_yaksa'          => '滝夜叉姫',
    'succubus_yaksa'        => '荼枳尼天',
    'hariti_yaksa'          => '鬼子母神',
    'vajra_yaksa'           => '金剛夜叉',
    'power_yaksa'           => '阿修羅',
    'dowser_yaksa'          => '毘沙門天',
    'duelist'               => '決闘者',
    'valkyrja_duelist'      => '戦乙女',
    'critical_duelist'      => '剣闘士',
    'cowboy_duelist'        => '無鉄砲者',
    'triangle_duelist'      => '舞首',
    'doom_duelist'          => '黒幕',
    'sea_duelist'           => '海御前',
    'avenger'               => '復讐者',
    'poison_avenger'        => '山わろ',
    'cursed_avenger'        => 'がしゃどくろ',
    'critical_avenger'      => '狂骨',
    'revive_avenger'        => '夜刀神',
    'cute_avenger'          => '草履大将',
    'patron'                => '後援者',
    'soul_patron'           => '家神',
    'sacrifice_patron'      => '身代わり地蔵',
    'shepherd_patron'       => '羊飼い',
    'plumage_patron'        => '鬼車鳥',
    'critical_patron'       => 'ひんな神',
    'mania'                 => '神話マニア',
    'trick_mania'           => '奇術師',
    'basic_mania'           => '求道者',
    'scarlet_mania'         => '紅天女',
    'soul_mania'            => '覚醒者',
    'dummy_mania'           => '夢語部',
    'unknown_mania'         => '鵺',
    'wirepuller_mania'      => '黒衣',
    'fire_mania'            => '青行灯',
    'sacrifice_mania'       => '影武者',
    'resurrect_mania'       => '僵尸',
    'revive_mania'          => '五徳猫');

  //サブ役職のリスト (コード名 => 表示名)
  static public $sub_role_list = array(
    'chicken'            => '小心者',
    'rabbit'             => 'ウサギ',
    'perverseness'       => '天邪鬼',
    'flattery'           => 'ゴマすり',
    'celibacy'           => '独身貴族',
    'nervy'              => '自信家',
    'androphobia'        => '男性恐怖症',
    'gynophobia'         => '女性恐怖症',
    'impatience'         => '短気',
    'febris'             => '熱病',
    'frostbite'          => '凍傷',
    'death_warrant'      => '死の宣告',
    'panelist'           => '解答者',
    'liar'               => '狼少年',
    'actor'              => '役者',
    'passion'            => '恋色迷彩',
    'rainbow'            => '虹色迷彩',
    'weekly'             => '七曜迷彩',
    'grassy'             => '草原迷彩',
    'invisible'          => '光学迷彩',
    'side_reverse'       => '鏡面迷彩',
    'line_reverse'       => '天地迷彩',
    'gentleman'          => '紳士',
    'lady'               => '淑女',
    'cute_camouflage'    => '魔が言',
    'confession'         => '告白',
    'decide'             => '決定者',
    'plague'             => '疫病神',
    'counter_decide'     => '燕返し',
    'dropout'            => '脱落者',
    'good_luck'          => '幸運',
    'bad_luck'           => '不運',
    'authority'          => '権力者',
    'reduce_voter'       => '無精者',
    'upper_voter'        => 'わらしべ長者',
    'downer_voter'       => '没落者',
    'critical_voter'     => '会心',
    'rebel'              => '反逆者',
    'random_voter'       => '気分屋',
    'watcher'            => '傍観者',
    'day_voter'          => '一日村長',
    'wirepuller_luck'    => '入道',
    'upper_luck'         => '雑草魂',
    'downer_luck'        => '一発屋',
    'star'               => '人気者',
    'disfavor'           => '不人気',
    'critical_luck'      => '痛恨',
    'random_luck'        => '波乱万丈',
    'occupied_luck'      => 'ひんな持ち',
    'strong_voice'       => '大声',
    'normal_voice'       => '不器用',
    'weak_voice'         => '小声',
    'inside_voice'       => '内弁慶',
    'outside_voice'      => '外弁慶',
    'upper_voice'        => 'メガホン',
    'downer_voice'       => 'マスク',
    'random_voice'       => '臆病者',
    'no_last_words'      => '筆不精',
    'blinder'            => '目隠し',
    'earplug'            => '耳栓',
    'speaker'            => 'スピーカー',
    'whisper_ringing'    => '囁耳鳴',
    'howl_ringing'       => '吠耳鳴',
    'sweet_ringing'      => '恋耳鳴',
    'deep_sleep'         => '爆睡者',
    'silent'             => '無口',
    'mower'              => '草刈り',
    'mind_read'          => 'サトラレ',
    'mind_open'          => '公開者',
    'mind_receiver'      => '受信者',
    'mind_friend'        => '共鳴者',
    'mind_sympathy'      => '共感者',
    'mind_evoke'         => '口寄せ',
    'mind_presage'       => '受託者',
    'mind_lonely'        => 'はぐれ者',
    'mind_sheep'         => '羊',
    'wisp'               => '鬼火',
    'black_wisp'         => '天火',
    'spell_wisp'         => '狐火',
    'foughten_wisp'      => '古戦場火',
    'gold_wisp'          => '松明丸',
    'sheep_wisp'         => '羊皮',
    'lovers'             => '恋人',
    'challenge_lovers'   => '難題',
    'possessed_exchange' => '交換憑依',
    'infected'           => '感染者',
    'psycho_infected'    => '洗脳者',
    'joker'              => 'ジョーカー',
    'rival'              => '宿敵',
    'enemy'              => '仇敵',
    'supported'          => '受援者',
    'bad_status'         => '悪戯',
    'sweet_status'       => '悲恋',
    'death_note'         => 'デスノート',
    'death_selected'     => 'オシラ遊び',
    'possessed_target'   => '憑依者',
    'possessed'          => '憑依',
    'protected'          => '庇護者',
    'aspirator'          => '吸毒者',
    'lost_ability'       => '能力喪失',
    'muster_ability'     => '能力発現',
    'changed_disguise'   => '元朔狼',
    'changed_therian'    => '元獣人',
    'changed_vindictive' => '元昼狐',
    'copied'             => '元神話マニア',
    'copied_trick'       => '元奇術師',
    'copied_basic'       => '元求道者',
    'copied_nymph'       => '元紅天女',
    'copied_soul'        => '元覚醒者',
    'copied_teller'      => '元夢語部');

  //役職の省略名 (過去ログ用)
  static public $short_role_list = array(
    'human'                 => '村',
    'saint'                 => '聖',
    'executor'              => '執行',
    'elder'                 => '老',
    'scripter'              => '執筆',
    'eccentricer'           => '傾',
    'tough'                 => '益',
    'suspect'               => '審',
    'unconscious'           => '無',
    'mage'                  => '占',
    'puppet_mage'           => '傀',
    'step_mage'             => '音占',
    'soul_mage'             => '魂',
    'psycho_mage'           => '心',
    'sex_mage'              => '雛',
    'stargazer_mage'        => '星',
    'voodoo_killer'         => '陰',
    'cute_mage'             => '萌占',
    'dummy_mage'            => '夢見',
    'necromancer'           => '霊',
    'soul_necromancer'      => '雲',
    'psycho_necromancer'    => '心霊',
    'embalm_necromancer'    => '粧',
    'emissary_necromancer'  => '密',
    'attempt_necromancer'   => '蟲姫',
    'yama_necromancer'      => '閻',
    'dummy_necromancer'     => '夢枕',
    'medium'                => '巫',
    'bacchus_medium'        => '主',
    'seal_medium'           => '封',
    'revive_medium'         => '風',
    'eclipse_medium'        => '蝕巫',
    'priest'                => '司',
    'bishop_priest'         => '教',
    'dowser_priest'         => '探',
    'weather_priest'        => '祈',
    'high_priest'           => '大司',
    'crisis_priest'         => '預',
    'widow_priest'          => '未',
    'holy_priest'           => '徳',
    'revive_priest'         => '天',
    'border_priest'         => '境',
    'dummy_priest'          => '夢司',
    'guard'                 => '狩',
    'hunter_guard'          => '猟',
    'blind_guard'           => '雀',
    'gatekeeper_guard'      => '門',
    'step_guard'            => '立',
    'reflect_guard'         => '侍',
    'poison_guard'          => '騎',
    'fend_guard'            => '忍',
    'reporter'              => '聞',
    'anti_voodoo'           => '厄',
    'elder_guard'           => '老兵',
    'dummy_guard'           => '夢守',
    'common'                => '共',
    'leader_common'         => '導',
    'detective_common'      => '偵',
    'trap_common'           => '策',
    'sacrifice_common'      => '領',
    'ghost_common'          => '亡',
    'spell_common'          => '葛',
    'critical_common'       => '暴',
    'hermit_common'         => '隠',
    'dummy_common'          => '夢共',
    'poison'                => '毒',
    'strong_poison'         => '強毒',
    'incubate_poison'       => '潜',
    'guide_poison'          => '誘',
    'snipe_poison'          => '狙',
    'chain_poison'          => '連',
    'dummy_poison'          => '夢毒',
    'poison_cat'            => '猫',
    'revive_cat'            => '仙狸',
    'sacrifice_cat'         => '猫神',
    'missfire_cat'          => '常',
    'eclipse_cat'           => '蝕狸',
    'pharmacist'            => '薬',
    'cure_pharmacist'       => '河',
    'revive_pharmacist'     => '仙',
    'alchemy_pharmacist'    => '錬',
    'centaurus_pharmacist'  => '馬',
    'assassin'              => '暗',
    'doom_assassin'         => '死神',
    'select_assassin'       => 'お白',
    'sweep_assassin'        => '掃',
    'professional_assassin' => '仕',
    'ascetic_assassin'      => '修',
    'reverse_assassin'      => '反魂',
    'soul_assassin'         => '辻',
    'eclipse_assassin'      => '蝕暗',
    'mind_scanner'          => '覚',
    'evoke_scanner'         => 'イ',
    'presage_scanner'       => '件',
    'clairvoyance_scanner'  => '猩',
    'whisper_scanner'       => '囁騒',
    'howl_scanner'          => '吠騒',
    'telepath_scanner'      => '念騒',
    'dummy_scanner'         => '幻視',
    'jealousy'              => '橋',
    'divorce_jealousy'      => '縁',
    'priest_jealousy'       => '恋司',
    'poison_jealousy'       => '毒橋',
    'miasma_jealousy'       => '蛇姫',
    'critical_jealousy'     => '魚',
    'brownie'               => '童',
    'thunder_brownie'       => '雷',
    'echo_brownie'          => '彦',
    'revive_brownie'        => '蛇',
    'harvest_brownie'       => '穣',
    'maple_brownie'         => '葉',
    'cursed_brownie'        => '祟',
    'sun_brownie'           => '烏',
    'history_brownie'       => '澤',
    'wizard'                => '魔',
    'soul_wizard'           => '八',
    'awake_wizard'          => '尼',
    'mimic_wizard'          => '物',
    'spiritism_wizard'      => '交',
    'barrier_wizard'        => '結',
    'philosophy_wizard'     => '賢',
    'astray_wizard'         => '左',
    'pierrot_wizard'        => '道',
    'doll'                  => '海',
    'friend_doll'           => '仏',
    'phantom_doll'          => '倫',
    'poison_doll'           => '鈴',
    'doom_doll'             => '蓬',
    'revive_doll'           => '西',
    'scarlet_doll'          => '蘭',
    'silver_doll'           => '露',
    'doll_master'           => '遣',
    'escaper'               => '逃',
    'psycho_escaper'        => '迷',
    'incubus_escaper'       => '角',
    'succubus_escaper'      => '水',
    'doom_escaper'          => '半',
    'divine_escaper'        => '麒',
    'wolf'                  => '狼',
    'boss_wolf'             => '白狼',
    'mist_wolf'             => '霧狼',
    'gold_wolf'             => '金狼',
    'phantom_wolf'          => '幻狼',
    'cursed_wolf'           => '呪狼',
    'quiet_wolf'            => '静狼',
    'wise_wolf'             => '賢狼',
    'disguise_wolf'         => '朔狼',
    'purple_wolf'           => '紫狼',
    'snow_wolf'             => '雪狼',
    'ascetic_wolf'          => '印',
    'poison_wolf'           => '毒狼',
    'resist_wolf'           => '抗',
    'revive_wolf'           => '仙狼',
    'trap_wolf'             => '狡狼',
    'fire_wolf'             => '火狼',
    'step_wolf'             => '響狼',
    'blue_wolf'             => '蒼狼',
    'emerald_wolf'          => '翠狼',
    'decieve_wolf'          => '欺狼',
    'doom_wolf'             => '冥狼',
    'sex_wolf'              => '雛狼',
    'sharp_wolf'            => '鋭',
    'hungry_wolf'           => '餓',
    'tongue_wolf'           => '舌',
    'possessed_wolf'        => '憑狼',
    'sirius_wolf'           => '天狼',
    'elder_wolf'            => '古狼',
    'cute_wolf'             => '萌狼',
    'scarlet_wolf'          => '紅狼',
    'silver_wolf'           => '銀狼',
    'emperor_wolf'          => '帝狼',
    'mad'                   => '狂',
    'fanatic_mad'           => '狂信',
    'whisper_mad'           => '囁',
    'swindle_mad'           => '幡',
    'jammer_mad'            => '兎',
    'voodoo_mad'            => '呪',
    'enchant_mad'           => '狢',
    'step_mad'              => '家鳴',
    'dream_eater_mad'       => '獏',
    'possessed_mad'         => '犬',
    'trap_mad'              => '罠',
    'snow_trap_mad'         => '雪',
    'corpse_courier_mad'    => '火',
    'amaze_mad'             => '傘',
    'agitate_mad'           => '扇',
    'miasma_mad'            => '蜘',
    'critical_mad'          => '釣',
    'fire_mad'              => '煙',
    'follow_mad'            => '舟',
    'therian_mad'           => '獣',
    'revive_mad'            => '尸',
    'immolate_mad'          => '殉',
    'fox'                   => '狐',
    'white_fox'             => '白狐',
    'black_fox'             => '黒狐',
    'mist_fox'              => '霧狐',
    'gold_fox'              => '金狐',
    'phantom_fox'           => '幻狐',
    'purple_fox'            => '紫狐',
    'snow_fox'              => '雪狐',
    'poison_fox'            => '管',
    'blue_fox'              => '蒼狐',
    'spell_fox'             => '宙',
    'sacrifice_fox'         => '蔵',
    'emerald_fox'           => '翠狐',
    'voodoo_fox'            => '九',
    'step_fox'              => '響狐',
    'revive_fox'            => '仙狐',
    'possessed_fox'         => '憑狐',
    'doom_fox'              => '冥狐',
    'trap_fox'              => '狡狐',
    'cursed_fox'            => '天狐',
    'elder_fox'             => '古狐',
    'cute_fox'              => '萌狐',
    'scarlet_fox'           => '紅狐',
    'silver_fox'            => '銀狐',
    'immolate_fox'          => '野',
    'child_fox'             => '子',
    'sex_fox'               => '雛狐',
    'stargazer_fox'         => '星狐',
    'jammer_fox'            => '月狐',
    'monk_fox'              => '蛻',
    'miasma_fox'            => '蟲狐',
    'howl_fox'              => '化',
    'vindictive_fox'        => '昼',
    'critical_fox'          => '寿',
    'cupid'                 => 'QP',
    'self_cupid'            => '求',
    'moon_cupid'            => '姫',
    'mind_cupid'            => '女神',
    'sweet_cupid'           => '弁',
    'minstrel_cupid'        => '吟',
    'triangle_cupid'        => '小悪',
    'revive_cupid'          => '邪仙',
    'snow_cupid'            => '寒',
    'angel'                 => '天使',
    'rose_angel'            => '薔',
    'lily_angel'            => '百',
    'exchange_angel'        => '移',
    'ark_angel'             => '大天',
    'sacrifice_angel'       => '守',
    'scarlet_angel'         => '紅天',
    'cursed_angel'          => '堕',
    'quiz'                  => 'GM',
    'vampire'               => '血',
    'poison_vampire'        => '百々',
    'incubus_vampire'       => '髭',
    'succubus_vampire'      => '飛',
    'passion_vampire'       => '牡',
    'step_vampire'          => '文',
    'doom_vampire'          => '冥血',
    'sacrifice_vampire'     => '公',
    'soul_vampire'          => '血姫',
    'scarlet_vampire'       => '屍',
    'chiroptera'            => '蝙',
    'poison_chiroptera'     => '毒蝙',
    'cursed_chiroptera'     => '呪蝙',
    'boss_chiroptera'       => '大蝙',
    'elder_chiroptera'      => '古蝙',
    'cute_chiroptera'       => '萌蝙',
    'scarlet_chiroptera'    => '紅蝙',
    'dummy_chiroptera'      => '夢愛',
    'fairy'                 => '精',
    'spring_fairy'          => '春',
    'summer_fairy'          => '夏',
    'autumn_fairy'          => '秋',
    'winter_fairy'          => '冬',
    'greater_fairy'         => '大精',
    'light_fairy'           => '光',
    'dark_fairy'            => '闇',
    'grass_fairy'           => '草',
    'sun_fairy'             => '日精',
    'moon_fairy'            => '月精',
    'star_fairy'            => '星精',
    'flower_fairy'          => '花',
    'shadow_fairy'          => '影精',
    'mirror_fairy'          => '鏡',
    'sweet_fairy'           => '恋精',
    'ice_fairy'             => '氷',
    'ogre'                  => '鬼',
    'orange_ogre'           => '前',
    'indigo_ogre'           => '後',
    'cow_ogre'              => '牛頭',
    'horse_ogre'            => '馬頭',
    'poison_ogre'           => '榊',
    'west_ogre'             => '金鬼',
    'east_ogre'             => '風鬼',
    'north_ogre'            => '水鬼',
    'south_ogre'            => '隠鬼',
    'incubus_ogre'          => '般',
    'wise_ogre'             => '夜行',
    'power_ogre'            => '熊',
    'revive_ogre'           => '茨',
    'sacrifice_ogre'        => '酒',
    'yaksa'                 => '夜',
    'betray_yaksa'          => '叉丸',
    'cursed_yaksa'          => '滝',
    'succubus_yaksa'        => '荼',
    'hariti_yaksa'          => '母',
    'vajra_yaksa'           => '剛',
    'power_yaksa'           => '阿',
    'dowser_yaksa'          => '毘',
    'duelist'               => '闘',
    'valkyrja_duelist'      => '戦',
    'critical_duelist'      => '剣',
    'cowboy_duelist'        => '無鉄',
    'triangle_duelist'      => '舞',
    'doom_duelist'          => '幕',
    'sea_duelist'           => '海御',
    'avenger'               => '讐',
    'poison_avenger'        => '山',
    'cursed_avenger'        => '餓紗',
    'critical_avenger'      => '骨',
    'revive_avenger'        => '夜刀',
    'cute_avenger'          => '草履',
    'patron'                => '後援',
    'soul_patron'           => '家',
    'sacrifice_patron'      => '地蔵',
    'shepherd_patron'       => '羊飼',
    'plumage_patron'        => '鬼車',
    'critical_patron'       => '雛神',
    'mania'                 => 'マ',
    'trick_mania'           => '奇',
    'basic_mania'           => '求道',
    'scarlet_mania'         => '天女',
    'soul_mania'            => '覚醒',
    'dummy_mania'           => '夢語',
    'unknown_mania'         => '鵺',
    'wirepuller_mania'      => '衣',
    'fire_mania'            => '青',
    'sacrifice_mania'       => '影',
    'resurrect_mania'       => '僵',
    'revive_mania'          => '五',
    'chicken'               => '酉',
    'rabbit'                => '卯',
    'perverseness'          => '邪',
    'flattery'              => '胡麻',
    'celibacy'              => '独',
    'nervy'                 => '信',
    'androphobia'           => '男恐',
    'gynophobia'            => '女恐',
    'impatience'            => '短',
    'febris'                => '熱',
    'frostbite'             => '凍',
    'death_warrant'         => '宣',
    'panelist'              => '解',
    'liar'                  => '嘘',
    'actor'                 => '役',
    'passion'               => '恋迷',
    'rainbow'               => '虹',
    'weekly'                => '曜',
    'grassy'                => '草迷',
    'invisible'             => '光迷',
    'side_reverse'          => '鏡迷',
    'line_reverse'          => '天迷',
    'gentleman'             => '紳',
    'lady'                  => '淑',
    'cute_camouflage'       => '魔言',
    'confession'            => '告',
    'decide'                => '決',
    'plague'                => '疫',
    'counter_decide'        => '燕',
    'dropout'               => '脱',
    'good_luck'             => '幸',
    'bad_luck'              => '不運',
    'authority'             => '権',
    'reduce_voter'          => '無精',
    'upper_voter'           => '藁',
    'downer_voter'          => '没',
    'critical_voter'        => '会',
    'rebel'                 => '反',
    'random_voter'          => '気',
    'watcher'               => '傍',
    'day_voter'             => '日権',
    'wirepuller_luck'       => '入道',
    'upper_luck'            => '雑',
    'downer_luck'           => '一発',
    'star'                  => '人気',
    'disfavor'              => '不人',
    'critical_luck'         => '痛',
    'random_luck'           => '乱',
    'occupied_luck'         => '雛持',
    'strong_voice'          => '大',
    'normal_voice'          => '不',
    'weak_voice'            => '小',
    'inside_voice'          => '内弁',
    'outside_voice'         => '外弁',
    'upper_voice'           => '拡声',
    'downer_voice'          => '覆',
    'random_voice'          => '臆',
    'no_last_words'         => '筆',
    'blinder'               => '目',
    'earplug'               => '耳',
    'speaker'               => '集音',
    'whisper_ringing'       => '囁鳴',
    'howl_ringing'          => '吠鳴',
    'sweet_ringing'         => '恋鳴',
    'deep_sleep'            => '睡',
    'silent'                => '無口',
    'mower'                 => '刈',
    'mind_read'             => '漏',
    'mind_evoke'            => '寄',
    'mind_presage'          => '託',
    'mind_open'             => '公',
    'mind_receiver'         => '受',
    'mind_friend'           => '鳴',
    'mind_sympathy'         => '感',
    'mind_lonely'           => '逸',
    'mind_sheep'            => '羊',
    'wisp'                  => '鬼火',
    'black_wisp'            => '天火',
    'spell_wisp'            => '狐火',
    'foughten_wisp'         => '古戦',
    'gold_wisp'             => '松明',
    'sheep_wisp'            => '羊皮',
    'lovers'                => '恋',
    'challenge_lovers'      => '難',
    'possessed_exchange'    => '換',
    'infected'              => '染',
    'psycho_infected'       => '洗',
    'joker'                 => '道化',
    'rival'                 => '宿',
    'enemy'                 => '仇',
    'supported'             => '援',
    'bad_status'            => '戯',
    'sweet_status'          => '悲',
    'death_note'            => '死',
    'death_selected'        => '遊',
    'possessed_target'      => '憑',
    'possessed'             => '被憑',
    'protected'             => '庇',
    'aspirator'             => '吸毒',
    'lost_ability'          => '失',
    'muster_ability'        => '発',
    'changed_disguise'      => '元朔',
    'changed_therian'       => '元獣',
    'changed_vindictive'    => '元昼',
    'copied'                => '元マ',
    'copied_trick'          => '元奇',
    'copied_basic'          => '元求',
    'copied_nymph'          => '元紅',
    'copied_soul'           => '元覚',
    'copied_teller'         => '元語');

  /* 役職グループ */
  //メイン役職のグループリスト (役職 => 所属グループ)
  //このリストの並び順に strpos() で判別する (毒系など、順番依存の役職があるので注意)
  static public $main_role_group_list = array(
     //鵺系
    'unknown_mania'   => 'unknown_mania', 'wirepuller_mania' => 'unknown_mania',
    'fire_mania'      => 'unknown_mania', 'sacrifice_mania'  => 'unknown_mania',
    'resurrect_mania' => 'unknown_mania', 'revive_mania'     => 'unknown_mania',
    'mania' => 'mania', //神話マニア系
    'chiroptera' => 'chiroptera', 'fairy' => 'fairy', //蝙蝠陣営
    'ogre' => 'ogre', 'yaksa' => 'yaksa', //鬼陣営
    'duelist' => 'duelist', 'avenger' => 'avenger', 'patron'  => 'patron', //決闘者陣営
    'cupid' => 'cupid', 'angel' => 'angel', //恋人陣営
    'quiz' => 'quiz', //出題者陣営
    'vampire' => 'vampire', //吸血鬼陣営
    //子狐系
    'child_fox' => 'child_fox', 'sex_fox'        => 'child_fox', 'stargazer_fox' => 'child_fox',
    'monk_fox'  => 'child_fox', 'jammer_fox'     => 'child_fox', 'miasma_fox'    => 'child_fox',
    'howl_fox'  => 'child_fox', 'vindictive_fox' => 'child_fox', 'critical_fox'  => 'child_fox',
    'fox' => 'fox', //妖狐系
    'wolf' => 'wolf', 'mad' => 'mad', //人狼陣営
    'necromancer' => 'necromancer', //霊能者系
    'medium'      => 'medium', //巫女系
    'jealousy'    => 'jealousy', //橋姫系
    'priest'      => 'priest', //司祭系
    'guard'       => 'guard', 'anti_voodoo' => 'guard', 'reporter' => 'guard', //狩人系
    'common'      => 'common', //共有者系
    'pharmacist'  => 'pharmacist', //薬師系
    'assassin'    => 'assassin', //暗殺者系
    'scanner'     => 'mind_scanner', //さとり系
    'brownie'     => 'brownie', //座敷童子系
    'wizard'      => 'wizard', //魔法使い系
    'doll'        => 'doll', //上海人形系
    'escaper'     => 'escaper', //逃亡者系
    'mage'        => 'mage', 'voodoo_killer' => 'mage', //占い師系
    'cat'         => 'poison_cat', //猫又系
    'poison'      => 'poison' //埋毒者系
  );

  //サブ役職のグループリスト (CSS のクラス名 => 所属役職)
  //このリストの表示順に PlayerList の役職が表示される
  static public $sub_role_group_list = array(
    'lovers'       => array('lovers', 'challenge_lovers', 'possessed_exchange'),
    'duelist'      => array('joker', 'rival', 'enemy', 'supported'),
    'mind'         => array('mind_read', 'mind_open', 'mind_receiver', 'mind_friend',
			    'mind_sympathy', 'mind_evoke', 'mind_presage', 'mind_lonely',
			    'mind_sheep'),
    'vampire'      => array('infected', 'psycho_infected'),
    'sudden-death' => array('chicken', 'rabbit', 'perverseness', 'flattery', 'celibacy', 'nervy',
			    'androphobia', 'gynophobia', 'impatience', 'febris', 'frostbite',
			    'death_warrant', 'panelist'),
    'convert'      => array('liar', 'actor', 'passion', 'rainbow', 'weekly', 'grassy', 'invisible',
			    'side_reverse', 'line_reverse', 'gentleman', 'lady', 'cute_camouflage',
			    'confession'),
    'decide'       => array('decide', 'plague', 'counter_decide', 'dropout', 'good_luck',
			    'bad_luck'),
    'authority'    => array('authority', 'reduce_voter', 'upper_voter', 'downer_voter',
			    'critical_voter', 'rebel', 'random_voter', 'watcher', 'day_voter',
			    'wirepuller_luck'),
    'luck'         => array('upper_luck', 'downer_luck', 'star', 'disfavor', 'critical_luck',
			    'random_luck', 'occupied_luck'),
    'voice'        => array('strong_voice', 'normal_voice', 'weak_voice', 'upper_voice',
			    'downer_voice', 'inside_voice', 'outside_voice', 'random_voice'),
    'seal'         => array('no_last_words', 'blinder', 'earplug', 'speaker', 'whisper_ringing',
			    'howl_ringing', 'sweet_ringing', 'deep_sleep', 'silent', 'mower'),
    'wisp'         => array('wisp', 'black_wisp', 'spell_wisp', 'foughten_wisp', 'gold_wisp',
			    'sheep_wisp'),
    'assassin'     => array('death_note', 'death_selected'),
    'chiroptera'   => array('bad_status', 'sweet_status'),
    'guard'        => array('protected'),
    'poison'       => array('aspirator'),
    'human'        => array('lost_ability', 'muster_ability'),
    'wolf'         => array('possessed_target', 'possessed', 'changed_disguise', 'changed_therian'),
    'fox'          => array('changed_vindictive'),
    'mania'        => array('copied', 'copied_trick', 'copied_basic', 'copied_nymph', 'copied_soul',
			    'copied_teller'));

  /* 関数 */
  //役職グループ取得
  static function GetGroup($role) {
    foreach (self::$main_role_group_list as $main_role => $group) {
      if (strpos($role, $main_role) !== false) return $group;
    }
    return 'human';
  }

  //所属陣営取得
  static function GetCamp($role, $start = false) {
    switch ($camp = self::GetGroup($role)) {
    case 'wolf':
    case 'mad':
      return 'wolf';

    case 'fox':
    case 'child_fox':
      return 'fox';

    case 'cupid':
    case 'angel':
      return $start ? 'cupid' : 'lovers';

    case 'quiz':
    case 'vampire':
      return $camp;

    case 'chiroptera':
    case 'fairy':
      return 'chiroptera';

    case 'ogre':
    case 'yaksa':
      return 'ogre';

    case 'duelist':
    case 'avenger':
    case 'patron':
      return 'duelist';

    case 'mania':
    case 'unknown_mania':
      return $start ? 'mania' : 'human';

    default:
      return 'human';
    }
  }

  //役職クラス (CSS) 取得
  static function GetCSS($role) {
    switch ($css = self::GetGroup($role)) {
    case 'poison_cat':
      $css = 'cat';
      break;

    case 'mind_scanner':
      $css = 'mind';
      break;

    case 'child_fox':
      $css = 'fox';
      break;

    case 'unknown_mania':
      $css = 'mania';
      break;
    }
    return $css;
  }

  //役職名取得
  static function GetName($role, $sub_role = false) {
    return $sub_role ? @self::$sub_role_list[$role] : @self::$main_role_list[$role];
  }

  //役職省略名取得
  static function GetShortName($role) { return @self::$short_role_list[$role]; }

  //役職のコード名リスト取得
  static function GetList($sub_role = false) {
    return array_keys($sub_role ? self::$sub_role_list : self::$main_role_list);
  }

  //役職グループリスト取得
  static function GetGroupList() {
    $stack = array_merge(array('human'), self::$main_role_group_list); //村人は含まれていない
    return array_intersect(self::GetList(), $stack);
  }

  //役職の差分取得
  static function GetDiff(array $list, $sub_role = false) {
    return array_intersect_key($sub_role ? self::$sub_role_list : self::$main_role_list, $list);
  }

  //役職の差分取得 (省略名用)
  static function GetShortDiff(array $list) {
    array_shift($list); //先頭はメイン役職
    return array_intersect_key(self::$short_role_list, array_flip($list));
  }

  //表示対象役職取得
  static function GetDisplayList(array $list) {
    array_shift($list); //先頭はメイン役職

    $stack = array();
    foreach (array('real', 'virtual', 'none') as $name) {
      $stack = array_merge($stack, RoleFilterData::${'display_' . $name});
    }
    //Text::p($stack);

    $display_list = array_diff(array_keys(self::$sub_role_list), $stack);
    return array_intersect($display_list, $list);
  }

  //メイン役職判定
  static function IsMain($role) { return array_key_exists($role, self::$main_role_list); }

  //サブ役職判定
  static function IsSub($role) { return array_key_exists($role, self::$sub_role_list); }

  //役職グループ判定
  static function IsGroup($role, $group) { return self::GetGroup($role) == $group; }

  //役職名のソート
  static function Sort(array $list) { return array_intersect(self::GetList(), $list); }
}

//-- 天候データベース --//
class WeatherData {
  /* 天候リスト */
  static public $list = array(
     0 => array('name'    => 'スコール',
		'event'   => 'grassy',
		'caption' => '全員 草原迷彩'),
     1 => array('name'    => '酸性雨',
		'event'   => 'mower',
		'caption' => '全員 草刈り'),
     2 => array('name'    => '晴嵐',
		'event'   => 'blind_vote',
		'caption' => '処刑投票結果隠蔽'),
     3 => array('name'    => '天気雨',
		'event'   => 'no_fox_dead',
		'caption' => '呪殺無し'),
     4 => array('name'    => '烈日',
		'event'   => 'critical',
		'caption' => '会心・痛恨 発動率 100%'),
     5 => array('name'    => '強風',
		'event'   => 'blind_talk_day',
		'caption' => '昼会話妨害'),
     6 => array('name'    => '風雨',
		'event'   => 'blind_talk_night',
		'caption' => '夜会話妨害'),
     7 => array('name'    => '満月',
		'event'   => 'full_moon',
		'caption' => '占い妨害・呪術・狩人系 封印'),
     8 => array('name'    => '新月',
		'event'   => 'new_moon',
		'caption' => '占い・魔法・人狼・吸血・悪戯 封印'),
     9 => array('name'    => '花曇',
		'event'   => 'no_contact',
		'caption' => '接触系封印'),
    10 => array('name'    => '黄砂',
		'event'   => 'invisible',
		'caption' => '全員 光学迷彩'),
    11 => array('name'    => '虹',
		'event'   => 'rainbow',
		'caption' => '全員 虹色迷彩'),
    12 => array('name'    => 'ダイヤモンドダスト',
		'event'   => 'side_reverse',
		'caption' => '全員 鏡面迷彩'),
    13 => array('name'    => 'バナナの皮',
		'event'   => 'line_reverse',
		'caption' => '全員 天地迷彩'),
    14 => array('name'    => 'スポットライト',
		'event'   => 'actor',
		'caption' => '全員 役者'),
    15 => array('name'    => 'タライ',
		'event'   => 'critical_luck',
		'caption' => '全員 痛恨'),
    16 => array('name'    => '凪',
		'event'   => 'no_sudden_death',
		'caption' => 'ショック死サブ無効'),
    17 => array('name'    => '青天の霹靂',
		'event'   => 'thunderbolt',
		'caption' => 'ショック死発生'),
    18 => array('name'    => '涙雨',
		'event'   => 'no_last_words',
		'caption' => '全員 筆不精'),
    19 => array('name'    => '熱帯夜',
		'event'   => 'no_dream',
		'caption' => '夢能力封印'),
    20 => array('name'    => '朧月',
		'event'   => 'full_ogre',
		'caption' => '鬼強化'),
    21 => array('name'    => '叢雲',
		'event'   => 'seal_ogre',
		'caption' => '鬼封印'),
    22 => array('name'    => '雷雨',
		'event'   => 'full_revive',
		'caption' => '蘇生強化'),
    23 => array('name'    => '快晴',
		'event'   => 'no_revive',
		'caption' => '蘇生封印'),
    24 => array('name'    => '慈雨',
		'event'   => 'brownie',
		'caption' => '村人 投票数 +1'),
    25 => array('name'    => '波風',
		'event'   => 'whisper_ringing',
		'caption' => '全員 囁耳鳴'),
    26 => array('name'    => '小夜嵐',
		'event'   => 'howl_ringing',
		'caption' => '全員 吠耳鳴'),
    27 => array('name'    => '流星群',
		'event'   => 'sweet_ringing',
		'caption' => '全員 恋耳鳴'),
    28 => array('name'    => '春時雨',
		'event'   => 'deep_sleep',
		'caption' => '全員 爆睡者'),
    29 => array('name'    => '木漏れ日',
		'event'   => 'silent',
		'caption' => '全員 無口'),
    30 => array('name'    => '疎雨',
		'event'   => 'missfire_revive',
		'caption' => '蘇生誤爆率上昇'),
    31 => array('name'    => '川霧',
		'event'   => 'no_hunt',
		'caption' => '護衛狩り無し'),
    32 => array('name'    => '蒼天',
		'event'   => 'full_guard',
		'caption' => '護衛制限無し'),
    33 => array('name'    => '雪',
		'event'   => 'frostbite',
		'caption' => '凍傷付加'),
    34 => array('name'    => '梅雨',
		'event'   => 'alchemy_pharmacist',
		'caption' => '毒強化'),
    35 => array('name'    => '雹',
		'event'   => 'hyper_random_voter',
		'caption' => '投票数ランダム増加'),
    36 => array('name'    => '半月',
		'event'   => 'half_moon',
		'caption' => '占い妨害'),
    37 => array('name'    => '曇天',
		'event'   => 'half_guard',
		'caption' => '護衛成功率低下'),
    38 => array('name'    => '箒星',
		'event'   => 'passion',
		'caption' => '全員 恋色迷彩'),
    39 => array('name'    => '旱魃',
		'event'   => 'no_poison',
		'caption' => '毒無し'),
    40 => array('name'    => '濃霧',
		'event'   => 'psycho_infected',
		'caption' => '洗脳者付加'),
    41 => array('name'    => '台風',
		'event'   => 'hyper_critical',
		'caption' => '全員 会心・痛恨'),
    42 => array('name'    => '萌動',
		'event'   => 'boost_cute',
		'caption' => '萌え発動率上昇'),
    43 => array('name'    => '蜃気楼',
		'event'   => 'no_authority',
		'caption' => '投票/得票数補正サブ無効'),
    44 => array('name'    => '紅月',
		'event'   => 'force_assassin_do',
		'caption' => '暗殺キャンセル投票不可'),
    45 => array('name'    => '砂塵嵐',
		'event'   => 'corpse_courier_mad',
		'caption' => '霊能妨害'),
    46 => array('name'    => '霧雨',
		'event'   => 'full_wizard',
		'caption' => '魔法強化'),
    47 => array('name'    => '木枯らし',
		'event'   => 'debilitate_wizard',
		'caption' => '魔法弱体化'),
    48 => array('name'    => '雪明り',
		'event'   => 'no_trap',
		'caption' => '罠封印'),
    49 => array('name'    => '蛍火',
		'event'   => 'no_sacrifice',
		'caption' => '身代わり封印'),
    50 => array('name'    => '日蝕',
		'event'   => 'no_reflect_assassin',
		'caption' => '暗殺反射封印'),
    51 => array('name'    => '月蝕',
		'event'   => 'no_cursed',
		'caption' => '呪返し封印'),
    52 => array('name'    => '宵闇',
		'event'   => 'blinder',
		'caption' => '全員 目隠し'),
    53 => array('name'    => '白夜',
		'event'   => 'mind_open',
		'caption' => '全員 公開者'),
    54 => array('name'    => '極光',
		'event'   => 'aurora',
		'caption' => '全員 目隠し・公開者'),
    55 => array('name'    => '霜柱',
		'event'   => 'random_step',
		'caption' => 'ランダム足音発生'),
    56 => array('name'    => '地吹雪',
		'event'   => 'no_step',
		'caption' => '足音能力封印'),
    57 => array('name'    => '月虹',
		'event'   => 'confession',
		'caption' => '全員 告白'),
    58 => array('name'    => '春一番',
		'event'   => 'gentleman',
		'caption' => '全員 紳士'),
    59 => array('name'    => '桜吹雪',
		'event'   => 'lady',
		'caption' => '全員 淑女'),
  );

  /* 関数 */
  //天候データ取得
  static function Get($id = null) { return self::$list[$id]; }

  //イベント取得
  static function GetEvent($id) { return self::$list[$id]['event']; }

  //存在判定
  static function Exists($id) { return isset(self::$list[$id]); }

  //天候名出力
  static function OutputName($id) { echo self::$list[$id]['name']; }

  //説明出力
  static function OutputCaption($id) { echo self::$list[$id]['caption']; }
}

//-- HTML 生成クラス (RoleData 拡張) --//
class RoleDataHTML {
  const TAG  = '<%s class="%s">%s</%s>';
  const SPAN = '<span class="%s">[%s]</span>';
  const LINK = '<a href="new_role/%s.php#%s">%s</a>';

  //タグ生成
  static function Generate($role, $css = null, $sub_role = false) {
    $str = $sub_role ? Text::BR : '';
    if (is_null($css)) $css = RoleData::GetCSS($role);
    return $str . sprintf(self::SPAN, $css, RoleData::GetName($role, $sub_role));
  }

  //タグ生成 (メイン役職専用)
  static function GenerateMain($role, $tag = 'span') {
    return sprintf(self::TAG, $tag, RoleData::GetCSS($role), RoleData::GetName($role), $tag);
  }

  //タグ生成 (サブ役職専用)
  static function GenerateSub($role, $tag = 'span') {
    foreach (RoleData::$sub_role_group_list as $css => $list) {
      if (in_array($role, $list)) {
	return sprintf(self::TAG, $tag, $css, RoleData::GetName($role, true), $tag);
      }
    }
  }

  //役職説明ページへのリンク生成
  static function GenerateLink($role) {
    if (RoleData::IsSub($role)) {
      $url  = 'sub_role';
      $name = RoleData::GetName($role, true);
    }
    elseif (RoleData::GetCamp($role, true) == 'mania') {
      $url  = 'mania';
      $name = RoleData::GetName($role);
    }
    else {
      $url  = RoleData::GetCamp($role);
      $name = RoleData::GetName($role);
    }
    return sprintf(self::LINK, $url, $role, $name);
  }
}
