from Blindflug.FlightMission import MissionEvent

# Shared default mission script. Every mission (built-in, user-authored or mod-supplied) that has no
# dedicated "<mission_id>.py" module runs on these handlers - see MissionScriptProxy in C#.


@event_handler(MissionEvent.GET_MISSION_ID)
def get_mission_id(mission_entity_id):
    return missions_api.GetMissionId(mission_entity_id)


@event_handler(MissionEvent.SEND_MISSION_EVENT)
def send_mission_Event(mission_entity_id):
    events_sent = missions_api.GetNumberOfEventsSent(mission_entity_id)

    if events_sent == 1:
        goingAsPlanned = missions_api.MakeAsPlannedRoll(mission_entity_id)
        if goingAsPlanned:
             event_log.Create("missions/{}/ap_transmission".format(get_mission_id(mission_entity_id)))
        else:
             event_log.Create("missions/{}/gw_transmission".format(get_mission_id(mission_entity_id)))
    elif events_sent == 2:
        goingAsPlanned = missions_api.GetAsPlannedRoll(mission_entity_id)
        skillRoll = missions_api.MakeSkillRoll(mission_entity_id)

        if goingAsPlanned:
            if skillRoll:
                 event_log.Create("missions/{}/ap_success_transmission".format(get_mission_id(mission_entity_id)))
            else:
                event_log.Create("missions/{}/ap_failure_transmission".format(get_mission_id(mission_entity_id)))

        else:
            if skillRoll:
                 event_log.Create("missions/{}/gw_success_transmission".format(get_mission_id(mission_entity_id)))
            else:
                event_log.Create("missions/{}/gw_failure_transmission".format(get_mission_id(mission_entity_id)))


@event_handler(MissionEvent.GET_MISSION_RESULT_TEXT)
def get_mission_result_text(mission_entity_id):
    goingAsPlanned = missions_api.GetAsPlannedRoll(mission_entity_id)
    skillRoll = missions_api.GetSkillRoll(mission_entity_id)

    if goingAsPlanned:
        if skillRoll:
             return "missions/{}/ap_success_transmission".format(get_mission_id(mission_entity_id))
        else:
            return "missions/{}/ap_failure_transmission".format(get_mission_id(mission_entity_id))

    else:
        if skillRoll:
             return "missions/{}/gw_success_transmission".format(get_mission_id(mission_entity_id))
        else:
            return "missions/{}/gw_failure_transmission".format(get_mission_id(mission_entity_id))
