#!/usr/bin/python
+# This is part of ypp-sc-tools, a set of third-party tools for assisting
+# players of Yohoho Puzzle Pirates.
+#
+# Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
+# are used without permission. This program is not endorsed or
+# sponsored by Three Rings.
+
+copyright_info = '''
+yoweb-scrape is part of ypp-sc-tools Copyright (C) 2009 Ian Jackson
+This program comes with ABSOLUTELY NO WARRANTY; this is free software,
+and you are welcome to redistribute it under certain conditions.
+For details, read the top of the yoweb-scrape file.
+'''
#---------- setup ----------
import random
import curses
import termios
+import random
from optparse import OptionParser
from StringIO import StringIO
core_duty_puzzles +
[ 'Treasure Haul' ])
-standingvals = ('Able/Distinguished/Respected/Master'+
+standingvals = ('Able/Proficient/Distinguished/Respected/Master'+
'/Renowned/Grand-Master/Legendary/Ultimate').split('/')
standing_limit = len(standingvals)
min_age = 1
need_wait = 0
for age in ages:
- if age < min_age and age < 300:
+ if age < min_age and age <= 5:
debug('Fetcher morewait min=%d age=%d' %
(min_age, age))
need_wait = max(need_wait, min_age - age)
min_age += 3
min_age *= 1.25
+ if need_wait > 0:
+ need_wait += random.random() - 0.5
return need_wait
def _rate_limit_cache_clean(self, now):
return pa.pi
debug('PirateAboard refresh %d > %d %s' % (
age, guide, pa.name))
- imaginary = [2,6]
+ imaginary = [2,4]
else:
imaginary = [1]
wait = fetcher.need_wait(now, imaginary)
track.catchup()
if track.changed():
print track
- sleep(1)
+ sleep(0.5 + 0.5 * random.random())
#----- ship management aid -----
tbl_s = StringIO()
tbl = StandingsTable(tbl_s)
- tbl.headings(' %d aboard' % len(aboard),
- ' sorted by '+sort.desc())
+
+ if track.vesselname(): howmany = ' %d aboard' % len(aboard)
+ else: howmany = ''
+
+ tbl.headings(howmany, ' sorted by '+sort.desc())
for pa in aboard:
pi = pa.pirate_info()
display modes (for --display) apply to ship-aid:
--display=dumb just print new information, scrolling the screen
- --display=overwrite use cursor motion, selective clear, etc. to redraw at top
-''')
+ --display=overwrite use cursor motion, selective clear, etc. to redraw at top''')
ao = pa.add_option
ao('-O','--ocean',dest='ocean', metavar='OCEAN', default=None,
help='select ocean OCEAN')
random.seed()
if len(args) < 1:
+ print >>sys.stderr, copyright_info
pa.error('need a mode argument')
if opts.debug_fd is not None: