def FlagTouch(me, a, p, fid): n, f = flagcore.GetFlags(a, fid) assert n == 1 oldfreq = f.freq f.state = asss.FI_ONMAP newfreq = f.freq = p.freq flagcore.SetFlags(a, fid, f) asss.call_callback(asss.CB_TURFTAG, (a, p, fid, oldfreq, newfreq), a)
def check_win(a): current = a.fg_wz_current ownedflags = 0 winfreq = -1 for i in range(current): n, f = flagcore.GetFlags(a, i) assert n == 1 if f.state == asss.FI_ONMAP: if f.freq == winfreq: ownedflags += 1 else: winfreq = f.freq ownedflags = 1 # just to check for i in range(current, a.fg_wz_sets.max): n, f = flagcore.GetFlags(a, current) assert n == 0 or f.state == asss.FI_NONE if ownedflags == current and winfreq != -1: # we have a winner! points = asss.call_callback(asss.CB_WARZONEWIN, (a, winfreq, 0), a) # hardcoded default if points == 0: points = 1000 flagcore.FlagReset(a, winfreq, points) a.fg_wz_current = 0 if a.fg_wz_sets.warpplayersonwin: for i in range(0, a.fg_wz_sets.maxfreqtowarp + 1): game.GivePrize((a, i), asss.PRIZE_WARP, 1) if a.fg_wz_last_freq_to_win != winfreq: a.fg_wz_last_freq_to_win = winfreq a.fg_wz_consecutive_wins = 0 a.fg_wz_consecutive_wins += 1 if winfreq <= a.fg_wz_sets.maxfreqtoshuffle and \ winfreq >= a.fg_wz_sets.minfreqtoshuffle: playerlist = [] if a.fg_wz_sets.consecutivewinstoshuffle > 0 and \ a.fg_wz_consecutive_wins >= a.fg_wz_sets.consecutivewinstoshuffle: a.fg_wz_last_freq_to_win = -1 a.fg_wz_consecutive_wins = 0 chat.SendArenaMessage(a, "---SPECCING EVERYONE TO EVEN TEAMS---") def playerstolist(p): if p.freq <= a.fg_wz_sets.maxfreqtoshuffle and \ p.freq >= a.fg_wz_sets.minfreqtoshuffle and \ p.arena == a and p.type != asss.T_FAKE: playerlist.append((p, p.ship)) game.SetShipAndFreq(p, asss.SHIP_SPEC, a.specfreq) asss.for_each_player(playerstolist) random.shuffle(playerlist) for (p, ship) in playerlist: (actualship, actualfreq) = a.fg_wz_freqman.ShipChange(p, ship, 0) game.SetShipAndFreq(p, actualship, actualfreq)
def check_win(a): current = a.fg_wz_current ownedflags = 0 winfreq = -1 for i in xrange(current): n, f = flagcore.GetFlags(a, i) assert n == 1 if f.state == asss.FI_ONMAP: if f.freq == winfreq: ownedflags += 1 else: winfreq = f.freq ownedflags = 1 # just to check for i in xrange(current, a.fg_wz_sets.max): n, f = flagcore.GetFlags(a, current) assert n == 0 or f.state == asss.FI_NONE if ownedflags == current and winfreq != -1: # we have a winner! points = asss.call_callback(asss.CB_WARZONEWIN, (a, winfreq, 0), a) # hardcoded default if points == 0: points = 1000 flagcore.FlagReset(a, winfreq, points) a.fg_wz_current = 0
def check_win(a): current = a.fg_wz_current ownedflags = 0 winfreq = -1 for i in range(current): n, f = flagcore.GetFlags(a, i) assert n == 1 if f.state == asss.FI_ONMAP: if f.freq == winfreq: ownedflags += 1 else: winfreq = f.freq ownedflags = 1 # just to check for i in range(current, a.fg_wz_sets.max): n, f = flagcore.GetFlags(a, current) assert n == 0 or f.state == asss.FI_NONE if ownedflags == current and winfreq != -1: # we have a winner! points = asss.call_callback(asss.CB_WARZONEWIN, (a, winfreq, 0), a) # hardcoded default if points == 0: points = 1000 flagcore.FlagReset(a, winfreq, points) a.fg_wz_current = 0 if a.fg_wz_sets.warpplayersonwin: for i in range(0, a.fg_wz_sets.maxfreqtowarp+1): game.GivePrize((a, i), asss.PRIZE_WARP, 1) if a.fg_wz_last_freq_to_win != winfreq: a.fg_wz_last_freq_to_win = winfreq a.fg_wz_consecutive_wins = 0 a.fg_wz_consecutive_wins += 1 if winfreq <= a.fg_wz_sets.maxfreqtoshuffle and \ winfreq >= a.fg_wz_sets.minfreqtoshuffle: playerlist = [] if a.fg_wz_sets.consecutivewinstoshuffle > 0 and \ a.fg_wz_consecutive_wins >= a.fg_wz_sets.consecutivewinstoshuffle: a.fg_wz_last_freq_to_win = -1 a.fg_wz_consecutive_wins = 0 chat.SendArenaMessage(a, "---SPECCING EVERYONE TO EVEN TEAMS---") def playerstolist(p): if p.freq <= a.fg_wz_sets.maxfreqtoshuffle and \ p.freq >= a.fg_wz_sets.minfreqtoshuffle and \ p.arena == a and p.type != asss.T_FAKE: playerlist.append((p, p.ship)) game.SetShipAndFreq(p, asss.SHIP_SPEC, a.specfreq) asss.for_each_player(playerstolist) random.shuffle(playerlist) for (p, ship) in playerlist: (actualship, actualfreq) = a.fg_wz_freqman.ShipChange(p, ship, 0) game.SetShipAndFreq(p, actualship, actualfreq)