Last active
February 18, 2020 00:49
-
-
Save shizeeg/5489e5fdd0ae38f2fcbfe0e198b91c82 to your computer and use it in GitHub Desktop.
MK11 Brutalities list command-line tool
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env zsh | |
TDB='/tmp/mk11_brutalities.txt' | |
if [[ ! -r "${TDB}" ]];then | |
echo "downloading \"${TDB}\"..." | |
curl -so "${TDB}" 'https://pastebin.com/raw/WkaZ6PeU' | |
[[ "$?" -eq 0 ]] && echo "done" | |
fi | |
KHR=$(tr '[a-z]' '[A-Z]' <<< $1) | |
NUM=$(($2-1)) | |
#[[ ${NUM} -le 0 ]] && NUM=1 | |
typeset -A khar | |
khar[BAR]="Baraka" | |
khar[CAS]="Cassie Cage" | |
khar[CET]="Cetrion" | |
khar[DVO]="D'Vorah" | |
khar[ERR]="Erron Black" | |
khar[FRO]="Frost" | |
khar[JAC]="Jacqui Briggs" | |
khar[JAD]="Jade" | |
khar[JAX]="Jax Briggs" | |
khar[JOH]="Johnny Cage" | |
khar[JOK]="Joker" | |
khar[KAB]="Kabal" | |
khar[KAN]="Kano" | |
khar[KIT]="Kitana" | |
khar[KOL]="Kollector" | |
khar[KOT]="Kotal Khan" | |
khar[KUN]="Kung Lao" | |
khar[LIU]="Liu Kang" | |
khar[NIT]="Nightwolf" | |
khar[NOO]="Noob Saibot" | |
khar[RAI]="Raiden" | |
khar[SCO]="Scorpion" | |
khar[SHA]="Shao Khan" | |
khar[SHT]="Shang Tsung" | |
khar[SIN]="Sindel" | |
khar[SKA]="Skarlet" | |
khar[SON]="Sonya Blade" | |
khar[SUB]="Sub Zero" | |
khar[TER]="Geras?" | |
khar[TRM]="The Terminator" | |
LEFT='๐ก' | |
RIGHT='๐ก' | |
UP='๐ก ' | |
DOWN='๐ก' | |
LAY=4 | |
#LAY 1 2 3 4 5 6 | |
FP=('โ' 'โ' 'โ' '๐ ง' '๐' '๐') | |
BP=('โ' 'โ' 'โ' '๐ จ' '๐' '๐') | |
FK=('โ' 'โ' 'โถ' '๐ ' 'โฎพ' '๐ ง') | |
BK=('โ' 'โ' 'โท' '๐ ' 'โฆพ' '๐ ') | |
[[ ! -r "${TDB}" ]] && { echo "ERR: \"$TDB\" is not readable!" >&2; exit -2 } | |
# Returns brutalities count | |
# params: KHR | |
function count() { | |
grep "${1}_" ${TDB} | grep 'Brutality' | grep '\[' | cut -d '_' -f2 | sort | uniq | wc -l | |
} | |
# Outputs: Kharacter Kodes e.g. KHRs | |
# params: none | |
function kharacters() { | |
KHRS=("${(@f)$(cut -d '_' -f1 "${TDB}" | sort | uniq)}") | |
for k in $KHRS; do | |
echo "${k}: $khar[$k] ($(count ${k}))" | |
done | |
} | |
# get all brutalities by tripple kharacter code | |
# params: KHR | |
function bykhar() { | |
grep "${1:u}_" "${TDB}" | cut -c5- | |
} | |
# makes inputs readable | |
# params: input codes | |
function decr() { | |
sed -e "s|\[Towards\]| ${RIGHT}|g" -e "s|\[Away\]| ${LEFT}|g" \ | |
-e "s|\[Down\]| ${DOWN}|g" -e "s|\[Up\]| ${UP}|g" \ | |
-e 's|\[L1\]| Throw|g' \ | |
-e 's|\[R1\]| AMP|g' \ | |
-e "s|\[FP\]| ${FP[$LAY]}|g" \ | |
-e "s|\[BP\]| ${BP[$LAY]}|g" \ | |
-e "s|\[FK\]| ${FK[$LAY]}|g" \ | |
-e "s|\[BK\]| ${BK[$LAY]}|g" \ | |
-e 's|\[+\]| + |g' \ | |
-e 's|\[,\]|, |g' \ | |
<<< "${1}" | sed -r 's|\s+| |g' | sed -r 's|^ ||' | |
} | |
# fetch brutality description | |
# params: KHR NUM from 0 to 10 | |
function desc() { | |
DESC=$(bykhar "${KHR}" | grep "Brutality${NUM}_" | grep "Level1_" | grep "Description=" | cut -d '=' -f2 | cut -d '[' -f1) | |
echo "$DESC" | |
} | |
function name() { | |
bykhar "${1:-KHR}" | grep "Brutality${2:-NUM}_" | grep "Level1=" | cut -d '=' -f2 | |
} | |
function flav() { | |
bykhar "${1:-KHR}" | grep "Brutality${2:-NUM}_" | grep "Level1_" | grep "Flavor1=" | cut -d '=' -f2 | |
} | |
function inpt() { | |
decr "$(bykhar "${1:-KHR}" | grep "Brutality${2:-NUM}_" | grep "Level1_" | grep "Description=" | cut -d '=' -f2 | egrep -o '\[.+')" | |
} | |
[[ -z "${KHR}" ]] && { kharacters; exit -1; } | |
echo "Kharacter: $khar[${KHR}] ($(count ${KHR}))" | |
if [[ -z "${NUM}" || "${NUM}" -lt 0 ]]; then | |
for i in seq {0..$(count $KHR)}; do | |
NAME="$(name $KHR $i)" | |
INPT="$(inpt $KHR $i)" | |
[[ -z "${INPT}" ]] && continue | |
if [[ ! -z $NAME ]] then | |
printf "%2d: %s\n" $(($i+1)) ${NAME} | |
echo " ${INPT} " | |
fi | |
done | |
exit -3 | |
fi | |
echo "Name: $(name $KHR $NUM)" | |
flav $KHR $NUM | |
desc $KHR $NUM | |
INPTS="$(inpt $KHR $NUM)" | |
[[ ! -z $INPTS ]] && echo "Inputs: $INPTS" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment