#!/bin/sh

# test script to produce x/y coordinates for each frame of a ship leaving
# and then orbiting a planet

set -e

LIBDIR=/usr/local/games/netrek-server-vanilla
cd ${LIBDIR}

# reset galaxy
lib/tools/setgalaxy r 2>/dev/null 1>/dev/null

# make all planets visible to all teams
for x in `seq 0 39`; do lib/tools/setplanet $x reveal; done

# move ear to centre and flatten to one army
lib/tools/setplanet ear y 50000 x 50000 armies 1

# move test slot to an orbit position and stop it moving
lib/tools/setship 0 speed 0 wait-for-stop position 49200 50000 sleep 1

# pause 
lib/tools/setgame pause

# orbit earth
lib/tools/setplanet ear be-orbited-by 0

# invent a file name for the text
DATE=`date +%s`
FILE_LOG=/tmp/orbit-entry-${DATE}.log
FILE_PNG=/tmp/orbit-entry-${DATE}.png

# number of orbit entry and departure attempts
ATTEMPTS=10

for a in `seq ${ATTEMPTS}`; do

    for x in `seq 40`; do
	lib/tools/setgame single-step
	lib/tools/setship 0 show-position >> ${FILE_LOG}
    done
    lib/tools/setship 0 speed 4
    for x in `seq 200`; do
	lib/tools/setgame single-step
	lib/tools/setship 0 show-position >> ${FILE_LOG}
    done
    lib/tools/setship 0 lock-planet ear
    for x in `seq 200`; do
	lib/tools/setgame single-step
	lib/tools/setship 0 show-position >> ${FILE_LOG}
    done
done

lib/tools/setgame resume

echo ${FILE_LOG}

gnuplot <<EOF
set output "${FILE_PNG}"
set terminal png size 1024,1024
set size square
set xlabel "simulation frame"
set ylabel "galaxy coordinate"
set y2label "direction"
set y2tics
set title "orbit entry test, number ${DATE}"
set grid
# frame 21205 speed 0 dir 84 position 50341 49276
#   1     2     3   4  5   6    7       8     9
plot \
"${FILE_LOG}" using 2:8 title "x", \
"${FILE_LOG}" using 2:9 title "y", \
"${FILE_LOG}" using 2:6 axis x1y2 title "direction"
exit
EOF

echo ${FILE_PNG}