| Revision: | 1.1.1.1 (vendor branch) |
| Committed: | Sun Feb 5 00:02:08 2006 UTC (20 years, 7 months ago) by root |
| Content type: | text/x-python |
| Branch: | UPSTREAM, MAIN |
| CVS Tags: | post_fixaltar, last_stable, post_fixaltar2, rel-2_82, rel-2_81, rel-2_80, pre_coinconvert, UPSTREAM_2006_03_15, rel-3_0, rel-2_6, rel-2_7, rel-2_4, rel-2_5, rel-2_2, rel-2_0, rel-2_1, rel-2_72, rel-2_73, rel-2_71, rel-2_76, rel-2_77, rel-2_74, rel-2_75, rel-2_54, rel-2_55, rel-2_56, rel-2_79, UPSTREAM_2006_02_01, rel-2_53, pre_material_cfarch_normalize_run, rel-2_32, pre_fixconverter, post_coinconvert, pre_fixaltar2, pre_map_rename, UPSTREAM_2006_02_22, rel-2_90, rel-2_92, rel-2_93, rel-2_78, post_fixconverter, pre_fixaltar, rel-2_61, rel-2_43, rel-2_42, rel-2_41, HEAD |
| Changes since 1.1: | +0 -0 lines |
| Log Message: | Initial Import |
| # | User | Rev | Content |
|---|---|---|---|
| 1 | root | 1.1 | #CFGamble |
| 2 | # Todd Mitchell | ||
| 3 | #The Python control file for Slot Machines and other such nonsense | ||
| 4 | #Please do not put CFPython functions in this file, | ||
| 5 | #but rather place these in the calling file (don't ask me why - it just feels right) | ||
| 6 | |||
| 7 | import os.path | ||
| 8 | import shelve | ||
| 9 | import random | ||
| 10 | |||
| 11 | import Crossfire | ||
| 12 | |||
| 13 | class SlotMachine: | ||
| 14 | #sets up the file that holds all the slotmachine jackpots | ||
| 15 | #make sure this points to your writable var/crossfire directory | ||
| 16 | #you can delete that file to reset all the slotmachine jackpots | ||
| 17 | slotfile = os.path.join(Crossfire.LocalDirectory(),'SlotMachine_file') | ||
| 18 | slotdb = {} | ||
| 19 | def __init__(self,slotname,slotlist,minpot,maxpot): | ||
| 20 | slotdb = shelve.open(self.slotfile) | ||
| 21 | self.slotname = slotname | ||
| 22 | self.slotlist = slotlist | ||
| 23 | self.minpot = minpot | ||
| 24 | self.maxpot = maxpot | ||
| 25 | |||
| 26 | def placebet(self,amount): | ||
| 27 | if not self.slotdb.has_key(self.slotname): | ||
| 28 | self.slotdb[self.slotname] = self.minpot+amount | ||
| 29 | else: | ||
| 30 | temp=self.slotdb[self.slotname] | ||
| 31 | self.slotdb[self.slotname]=temp+amount | ||
| 32 | |||
| 33 | def payoff(self,amount): | ||
| 34 | temp=self.slotdb[self.slotname] | ||
| 35 | self.slotdb[self.slotname] = temp-amount | ||
| 36 | |||
| 37 | def spin(self,slotnum): | ||
| 38 | result=[] | ||
| 39 | while slotnum >=1: | ||
| 40 | r = self.slotlist[random.randint(0,len(self.slotlist)-1)] | ||
| 41 | result.append(r) | ||
| 42 | slotnum=slotnum-1 | ||
| 43 | return result | ||
| 44 | |||
| 45 | def checkslot(self): | ||
| 46 | limit = self.slotdb[self.slotname] | ||
| 47 | if limit >= self.maxpot: | ||
| 48 | self.slotdb[self.slotname] = self.maxpot | ||
| 49 | elif limit < self.minpot: | ||
| 50 | self.slotdb[self.slotname] = self.minpot | ||
| 51 | return self.slotdb[self.slotname] | ||
| 52 |