//map id
def parentMap = MAP_MAINSTAGE

def {
    MEV_COMMON = 1
    MEV_ON_FRAME

    MEV_BONUSSTAGE

    MEV_LEFT_DROP
    MEV_RIGHT_RAMP

    MEV_SUPPLYBALL
    MEV_PLUNGER
    MEV_SKILLSHOT
    MEV_EJECTER
    MEV_TOP_STOPPER

    MEV_FREEZE
    MEV_CENTER_POST
    MEV_LEFT_KICKBACK
    MEV_RIGHT_KICKBACK
    MEV_ENRYU

    MEV_LEFT_SLINGSHOT
    MEV_RIGHT_SLINGSHOT
    MEV_UNDER_TARGET

    MEV_UNDER_LANE_1
    MEV_UNDER_LANE_2
    MEV_UNDER_LANE_3
    MEV_UNDER_LANE_4

    MEV_UNDER_REEL_LEFT
    MEV_UNDER_REEL_RIGHT
    MEV_SLOT
    MEV_COFFIN
    MEV_BOARD

    MEV_TOP_LANE_1
    MEV_TOP_LANE_2
    MEV_TOP_LANE_3
    
    MEV_TOP_BUMPER_1
    MEV_TOP_BUMPER_2
    MEV_TOP_BUMPER_3
    MEV_TOP_BUMPER_LEVEL
    MEV_BUMPER_SWITCH

    MEV_MIDDLE_CURVE_1
    MEV_MIDDLE_CURVE_2

    MEV_MIDDLE_OUTLANE
    MEV_MIDDLE_ROLLOVER
    MEV_RIGHT_LANE
    MEV_BRIAN
    MEV_WORLD
    MEV_LEFT_LANE
    MEV_FALCON
    MEV_ROOFTOP_KEEPER
    MEV_JUMP_SWITCH
    MEV_SPINNER
    MEV_SUBFLIPPER_EVENT
    MEV_CENTER_HOLE
    MEV_HELEN

    MEV_DAERO
    MEV_GOSEI
    MEV_MUSYA
    MEV_NASU
    MEV_GATE_KEEPER

    MEV_ENEMY_CHECKER
    MEV_ENEMY_1
    MEV_ENEMY_2
    MEV_ENEMY_3
    MEV_ENEMY_4
    MEV_ENEMY_5
    MEV_ENEMY_6
    MEV_ENEMY_7
    MEV_ENEMY_8
}

def {
    //操作説明
    CTRL_DESC_A = "\c[7][Ａ]\c[0]  左フリッパー:\c[2]Ｚ\c[0]  左ナッジ:\c[2]Ｘ\c[0]  右ナッジ:\c[2]$u\c[0]  右フリッパー:\c[2]$t\c[0]  プランジャー:\c[2]$v\c[0]  強制終了:\c[2]１を長押し\c[0]"
    CTRL_DESC_B = "\c[7][Ｂ]\c[0]  左フリッパー:\c[2]Shift\c[0]  左ナッジ:\c[2]Ｚ\c[0]  右ナッジ:\c[2]$s\c[0]  右フリッパー:\c[2]$t\c[0]  プランジャー:\c[2]$u\c[0]  強制終了:\c[2]１を長押し\c[0]"
    CTRL_DESC_C = "\c[7][Ｃ]\c[0]  左フリッパー:\c[2]$v\c[0]  左ナッジ:\c[2]$s+$v\c[0]  右ナッジ:\c[2]$s+$t\c[0]  右フリッパー:\c[2]$t\c[0]  プランジャー:\c[2]$u\c[0]  強制終了:\c[2]１を長押し\c[0]"

    //条件
    COND_FEMINIZATION = (iconFlag & ICON_BIT_NIN)

    //仕掛け
    MAX_FREEZE_TIME = 30 * UNIT_POS
    MAX_CENTER_POST_TIME = 30 * UNIT_FPS

    //サブフリッパー
    SUBFLIPPER_BIT_LEFT  = 1 << 0
    SUBFLIPPER_BIT_RIGHT = 1 << 1

    //BGM
    MAX_BGM = 10
    MAX_POWERUP_BGM = 4
    BGM_TIMER = 60 * UNIT_FPS

    //スコア
    //バンパー10を基準とする
    BONUS_SKILLSHOT_1           = 300
    BONUS_SKILLSHOT_2           = 600
    BONUS_SKILLSHOT_3           = 1200
    BONUS_TOP_STOPPER           = 10
    BONUS_UNDER_REEL_MATCH      = 30
    BONUS_UNDER_REEL_DOWN       = 100
    BONUS_SLOT_FIRE             = 2000
    BONUS_SLOT_ICE              = 800
    BONUS_SLOT_STONE            = 200
    // BONUS_COFFIN                = 400
    BONUS_SLINGSHOT             = 5
    BONUS_UNDER_TARGET          = 250
    BONUS_UNDER_LANE            = 50
    BONUS_RAIL_TERM             = 120
    BONUS_JUMP_SWITCH           = 140
    BONUS_TOP_BUMPER            = 10
    BONUS_TOP_LANE              = 50
    BONUS_BUMPER_SWITCH         = 120
    BONUS_BOARD                 = 10
    BONUS_BOARD_MATCH           = 160
    BONUS_MIDDLE_OUTLANE        = 150
    BONUS_MIDDLE_ROLLOVER       = 60
    BONUS_MIDDLE_CURVE          = 50
    BONUS_LEFT_LANE             = 70
    BONUS_RIGHT_LANE            = 20
    BONUS_FALCON                = 280
    BONUS_BRIAN                 = 20
    BONUS_BRIAN_DEFEAT          = 231
    BONUS_ROOFTOP_KEEPER_DEFEAT = 560
    BONUS_SPINNER               = 3
    BONUS_GATE_KEEPER           = 20
    BONUS_SIDE_ENEMY_DAMAGE     = 20
    BONUS_SIDE_ENEMY_DEFEAT     = 150
    BONUS_MUSYA_DAMAGE          = 64
    BONUS_MUSYA_REFLECT         = 5
    BONUS_NASU_DAMAGE           = 73
    BONUS_ENEMY_DAMAGE          = 5
    BONUS_ENEMY_DEFEAT          = 25

    MULTI_SLOT_THUNDER      = 2
    MULTI_LEADER            = 1
    MULTI_FALCON            = 1
    MULTI_TOP_BUMPER        = 1
    MULTI_TOP_BUMPER_SWITCH = 1
    MULTI_EXTEND            = 1
}

//スキルショットイベントを初期化する
__fn _initSkillShot bl {
    @ev.setPos [MEV_SKILLSHOT] .pos(SKILLSHOT_X, SKILLSHOT_Y)
    skillShotState = GIM_ST_ACTIVATED
    skillShotLevel = 0
}

//フリーズを起動する
__fn _activateFreeze $sec {
    freezeState = GIM_ST_ACTIVATED
    freezeTimer = min(freezeTimer + ($sec) * UNIT_FPS, MAX_FREEZE_TIME)
}

//センターポストを起動する
__fn _activateCenterPost $sec {
    centerPostState = GIM_ST_ACTIVATED
    centerPostTimer = min(centerPostTimer + ($sec) * UNIT_FPS, MAX_CENTER_POST_TIME)
}

//キックバックを起動する
__fn _activateLeftKickBack bl {
    leftKickBackState = GIM_ST_ACTIVATED
}

__fn _activateRightKickBack bl {
    rightKickBackState = GIM_ST_ACTIVATED
}

//玉の位置を大雑把に判定する
//high:0-16  middle:14-22  low:17-30
def {
    ROUGHLY_CHECK_BALL_HIGH = (ballAreaMinY <= 16)
    ROUGHLY_CHECK_BALL_MIDDLE = (ballAreaMaxY >= 14 && ballAreaMinY <= 22)
    ROUGHLY_CHECK_BALL_LOW = (ballAreaMaxY >= 17)
    ROUGHLY_CHECK_BALL_PLUNGER = (ballAreaMaxX >= 16)
}