King Mode: Fix king placement phase not working correctly with multiple teams in a clan
New king placement phase rules:
* Before the game begins, each team can walk with their king and teleport for free, everything else is disabled
* This special round does not count towards the round counter, like in gfPlaceHog
* TotalRounds is set to -1 during this round, like in gfPlaceHog
Under the old rules, this was much more hacky. The delay of all delay-less weapons was just set to 1
The problem with the old rules was that if any clan had more than 1 team, eventually the weapon delay will time out before all kings have been placed.
#!/bin/sh
#HW_HG=
if [ -z "$1" ]; then
echo 'You have to supply at least one hedgewars git revision as parameter!' >&2
exit
fi
if [ -z "$HW_HG" ]; then
HW_HG="$PWD"
fi
if [ ! -d "$HW_HG/.hg" ]; then
echo 'You have to set HW_HG (inside script or env) to a repo clone OR call this script from inside the repository!' >&2
exit
fi
while [ ! -z "$1" ]; do
echo
echo
echo '---------------------------------------------------------------'
echo "$1"
echo '---------------------------------------------------------------'
url="https://github.com/hedgewars/hw/commit/$1"
echo "Checking $url ..."
echo
page=$(wget -q -O- "$url")
author=$(echo "$page" | sed -rn '1,/"user-mention"/{s/^.*"user-mention"( *[^>]*)?> *([^ <]*).*$/\2/ p}')
if [ -z "$author" ]; then
echo 'Couldn'\''t find author! Skipping '"$1"' ...' >&2
shift
continue
fi
echo 'Found author: '"$author"
date=$(echo "$page" | sed -rn 's/^.*<time datetime="([^T]+)T([^Z]+).*/\1 \2 +0000/ p')
if [ -z "$date" ]; then
echo 'Couldn'\''t find date! Skipping '"$1"' ...' >&2
shift
continue
fi
echo 'Found date: '"$date"
echo
echo 'Checking mercurial log for matches ...'
echo
result=$(hg log -R "$HW_HG" -u "$author" -d "$date" -v -l1)
if [ -z "$result" ]; then
echo 'No match with this author'\''s name. It might differ, so let'\''s try using date only ...'
echo
result=$(hg log -R "$HW_HG" -d "$date" -v)
fi
if [ -z "$result" ]; then
echo 'No match :('
shift
continue
fi
rev=$(echo "$result" | sed 's/^.*://;q')
echo 'Found match: r'"$rev"
echo 'Link: http://hg.hedgewars.org/hedgewars/rev/'"$rev"
echo
echo "$result"
# proceed to next parameter
shift
done
echo