#!/opt/homebrew/bin/bash
total=1530
basepath=$(cd "$(dirname "$0")" && pwd)
steps=$(grep Trophy "${basepath}/../"*/* -R | cut -f1 -d':' | sort -u | wc -l)
size=$((${total} / steps))
statsfile="${basepath}/.trophy_number_mapper"
declare -A counter
declare -A fileorder
touch "${statsfile}"
function getcolors {
  num=${1}
  #red
  if [[ ${num} -le 255 ]]; then
    r=${num}
    g=0
    b=0
  #green goes up
  elif [[ ${num} -le 510 ]]; then
    r=255
    g=$(( ${num} - 255 ))
    b=0
  #red goes down
  elif [[ ${num} -le 765 ]]; then
    r=$(( 255 - (${num} - 510) ))
    g=255
    b=0
  #blue goes up
  elif [[ ${num} -le 1020 ]]; then
    r=0
    g=255
    b=$(( ${num} - 765 ))
  #green goes down
  elif [[ ${num} -le 1275 ]]; then
    r=0
    g=$(( 255 - (${num} - 1020) ))
    b=255
  #red goes up
  elif [[ ${num} -le 1530 ]]; then
    r=$(( ${num} - 1275 ))
    g=0
    b=255
  #blue goes down
  else
    r=255
    g=0
    b=$(( 255 - (${num} - 1530) ))
  fi
  echo "${num} ${r} ${g} ${b}"
}
while read line; do
  if [[ -n "${line}" ]]; then
    counter[${line}]=true
  fi
done <<<$(awk '{print $1}' "${statsfile}")
function getNumber() {
  if ( grep -q "${1}" "${statsfile}" ); then
    grep "${1}" "${statsfile}" | awk '{print $1}'
  else
    for i in {1..1000}; do
      if [[ "${counter[${i}]}" != "true" ]]; then
        echo -e "${i}\t${1}" >> "${statsfile}"
        echo "${i}"
        return
      fi
    done
  fi
}
while read line; do
  number=$(getNumber "${line}")
  counter[${number}]=true
  fileorder[${number}]="${line}"
done <<<$(grep Trophy "${basepath}/../"*/* -R | cut -f1 -d':'|grep -v addTrophyItem|grep -v colorize_trophies | sort -u)
color=255
for number in {1..1000}; do
  if [[ -z "${fileorder[${number}]}" ]]; then
    break
  fi
  red=$(getcolors ${color} | awk '{print $2}')
  green=$(getcolors ${color} | awk '{print $3}')
  blue=$(getcolors ${color} | awk '{print $4}')

  sed -i -E -e 's/TrophyColorRed:[ ]*[0-9-]+/TrophyColorRed: '${red}'/g' -e 's/TrophyColorGreen:[ ]*[0-9-]+/TrophyColorGreen: '${green}'/g' -e 's/TrophyColorBlue:[ ]*[0-9-]+/TrophyColorBlue: '${blue}'/g' -e 's/TrophyName:[ ]*"[ 0-9-]*/TrophyName: "'${number}' - /g' "${fileorder[${number}]}"



#  sed -i -E -e 's/TrophyColorRed:[ ]*[0-9-]+/TrophyColorRed: '${red}'/g' -e 's/TrophyColorGreen:[ ]*[0-9-]+/TrophyColorGreen: '${green}'/g' -e 's/TrophyColorBlue:[ ]*[0-9-]+/TrophyColorBlue: '${blue}'/g' -e 's/TrophyName:[ ]*"[ 0-9-]*/TrophyName: "86 - 85 - '${number}' - /g' "${fileorder[${number}]}"
 

 echo -e "${number}\t${red}\t${green}\t${blue}\t${fileorder[${number}]}"
  color=$((${color} + ${size}))
  "${basepath}/organize" "${fileorder[${number}]}"
done



