#!/usr/bin/env bash # Set up the pk3 and wad files gameOption=( "${gamePath}/TobyAccMod_V${tobyVersion}.pk3" "$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"* "$(find /usr/share/games/ -name 'Project_Brutality-master.pk3')" "$(find ~/.local/games/doom -name 'Project_Brutality-master.pk3')" "${gamePath}/TobyDeathArena_V1-0.wad" ) # Death match setup ipAddress="$(dialog --backtitle "Deathmatch Options" \ --clear \ --no-tags \ --ok-label "Join" \ --cancel-label "Exit" \ --extra-button \ --extra-label "Host" \ --inputbox "Enter ip or URL, required for join." -1 -1 --stdout)" buttonCode=$? [[ $buttonCode -eq 1 ]] && exit 0 if [[ $buttonCode -eq 0 ]]; then if [[ "${#ipAddress}" -lt 3 ]]; then dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout exit 1 fi flags=('-join' "${ipAddress}") else # List of maps included: maps=( "1" "Com Station (2-4 players)" "2" "Warehouse (2-4 players)" "3" "Sector 3 (2-4 players)" "4" "Dungeon of Doom (2-4 players)" "5" "Ocean Fortress (2-4 players)" "6" "Water Treatment Facility (2-4 players)" "7" "Phobos Base Site 4 (2-4 players)" "8" "Hangar Bay 18 (2-4 players)") # Array of how many players a given map supports in dialog rangebox syntax declare -a mapPlayers=( [1]="2 4" [2]="2 4" [3]="2 4" [4]="2 4" [5]="2 4" [6]="2 4" [7]="2 4" [8]="2 4") map="$(dialog --backtitle "Select Map" \ --clear \ --no-tags \ --cancel-label "Exit" \ --ok-label "Next" \ --menu "Please select one" 0 0 0 "${maps[@]}" --stdout)" fraglimit="$(dialog --backtitle "Fraglimit" \ --clear \ --ok-label "Next" \ --cancel-label "Exit" \ --rangebox "Select Fraglimit" -1 -1 1 500 20 --stdout)" [[ $? -eq 1 ]] && exit 0 # Get ip address yourIpAddress="$(curl -4s https://icanhazip.com)" players="$(dialog --backtitle "Host Deathmatch Game" \ --clear \ --ok-label "Next" \ --cancel-label "Exit" \ --rangebox "Select number of players. Remember to give them your IP address: ${yourIpAddress}" -1 -1 ${mapPlayers[$map]} --stdout)" [[ $? -eq 1 ]] && exit 0 skillLevel="$(dialog --backtitle "Host Deathmatch Game" \ --clear \ --ok-label "Start" \ --cancel-label "Exit" \ --extra-button \ --extra-label "Bots Only" \ --rangebox "Select difficulty. 1 easiest, 5 hardest." -1 -1 1 5 3 --stdout)" code=$? [[ $code -eq 1 ]] && exit 0 if [[ $code -eq 3 ]]; then players=1 dialog --backtitle "Preparing to Launch" \ --msgbox "When the game starts, press \` to open the console. Type addbot, press enter. Repeat addbot for as many bots as you would like. Press \` again to close the console." -1 -1 --stdout fi flags=( '-host' "${players}" '-skill' "${skillLevel}" '-deathmatch' '+set' 'sv_cheats' '1' '+fraglimit' "$fraglimit" '+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096' '+dmflags2' '512' '+dmflags2' '1024' '-extratic' '-dup' '3' '-warp' "$map" ) fi # Check for and include if present a wad. Some people may not have it. if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then gameOption+=" DoomMetalVol7.wad" elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then gameOption+=" DoomMetalVol6.wad" fi