Beispiel #1
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3

        self.spin_range = 3.0

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']
        if 'SpinCycle' in args:
            self.spincycle = self.spincycleMax = args['SpinCycle']
        else:
            self.spincycle = self.spincycleMax = 0

        self.triggerIterator = iter(self.triggers)

        if 'tactic' in args:
            self.theTactic = args['tactic']
            if self.theTactic == "Charge":
                self.tactics.append(Tactics.Charge(self))
            elif self.theTactic == "Ram":
                self.tactics.append(Tactics.Ram(self))
            elif self.theTactic == "Shove":
                self.tactics.append(Tactics.Shove(self))
            elif self.theTactic == "Engage":
                self.tactics.append(Tactics.Engage(self))
        else:
            self.tactics.append(Tactics.Engage(self))
Beispiel #2
0
 def __init__(self, **args):
     SwitchDirRam.__init__(self, **args)
     tactic = [x for x in self.tactics if x.name == "Ram"]
     if len(tactic) > 0:
         self.tactics.remove(tactic[0])
     self.tactics.append(Tactics.Charge(self))
     self.tactics.append(Tactics.Shove(self))
Beispiel #3
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.trigger2 = ["Srimech"]

        self.tactics.append(Tactics.Charge(self))
        self.tactics.append(Tactics.Shove(self))
Beispiel #4
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.sweapons = []  # used to track our secondary weapons
        self.reloadTime = 0
        self.reloadDelay = 3
        self.contact = 0

        self.spin_range = 3.0

        if 'sweapons' in args: self.sweapons = list(args['sweapons'])

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']

        self.triggerIterator = iter(self.triggers)

        self.tactics.append(Tactics.Charge(self))
        self.tactics.append(Tactics.Shove(self))
Beispiel #5
0
    def __init__(self, **args):
        Omni.__init__(self, **args)

        tactic = [x for x in self.tactics if x.name == "Engage"]
        if len(tactic) > 0:
            self.tactics.remove(tactic[0])
        self.tactics.append(Tactics.Charge(self))
        self.tactics.append(Tactics.Shove(self))
Beispiel #6
0
 def __init__(self, **args):
     AI.SuperAI.__init__(self, **args)
     self.zone = "weapon"
     self.triggers = ["Fire"]
     self.reloadTime = 0
     self.reloadDelay = 3
     self.triggerIterator = iter(self.triggers)
     self.tactics.append(Tactics.Charge(self))
     self.tactics.append(Tactics.Shove(self))
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]

        if 'triggers' in args: self.triggers = args['triggers']

        self.tactics.append(Tactics.Engage(self))
        self.tactics.append(Tactics.Reorient(self))
Beispiel #8
0
    def LostComponent(self, id):
        # if we lose all our weapons, stop using the Engage tactic and switch to Shove
        if id in self.weapons: self.weapons.remove(id)

        if not self.weapons:
            self.RemoveTactic("Engage")

            self.tactics.append(Tactics.Shove(self))
            self.tactics.append(Tactics.Charge(self))

        return AI.SuperAI.LostComponent(self, id)
Beispiel #9
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.tactics.append(Tactics.Charge(self))
        self.tactics.append(Tactics.Shove(self))

        self.spin_range = 3.0

        if 'range' in args:
            self.spin_range = args.get('range')

        self.tactics.append(Tactics.Engage(self))
Beispiel #10
0
    def LostComponent(self, id):
        # if we lose all our weapons, stop using the Engage tactic and switch to Shove
        if id in self.weapons: self.weapons.remove(id)

        if not self.weapons:
            tactic = [x for x in self.tactics if x.name == "Engage"]
            if len(tactic) > 0:
                self.tactics.remove(tactic[0])

                self.tactics.append(Tactics.Shove(self))
                self.tactics.append(Tactics.Charge(self))

        return AI.SuperAI.LostComponent(self, id)
Beispiel #11
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone1 = "PrimaryWep"
        self.triggers1 = ["PrimaryWep"]
        self.zone2 = "SecondaryWep"
        self.triggers2 = ["SecondaryWep"]
        self.zone3 = "OtherWep"
        self.triggers3 = ["OtherWep"]
        self.zone4 = "OtherWep2"
        self.triggers4 = ["OtherWep2"]
        self.triggers5 = ["Srimech"]
        self.sweapons = []               # used to track our secondary weapons
        self.tweapons = []               # used to track our tertiary weapons

        self.spin_range = 3.0

        if 'sweapons' in args: self.sweapons = list(args['sweapons'])
        if 'tweapons' in args: self.tweapons = list(args['tweapons'])

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'zone' in args: self.zone = args['zone']

        if 'triggers' in args: self.triggers1 = args['triggers']
        if 'triggers' in args: self.triggers2 = args['triggers']
        if 'triggers' in args: self.triggers3 = args['triggers']

        self.tactics.append(Tactics.Engage(self))
Beispiel #12
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.zone2 = "alsoweapon"
        self.sweapons = []  # used to track our secondary weapons
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3
        self.retractTime = 15

        self.botinzone = 0
        self.delaycount = 0
        self.initdelay = 3
        self.stopcheck = 0
        self.stopFunction = self.Stop

        if 'sweapons' in args: self.sweapons = list(args['sweapons'])
        if 'reload' in args: self.reloadDelay = args['reload']
        if 'firedelay' in args: self.initdelay = args['firedelay']
        if 'retract' in args: self.retractTime = args['retract']
        if 'zone' in args: self.zone = args['zone']
        if 'triggers' in args: self.triggers = args['triggers']

        self.tactics.append(Tactics.Engage(self))
Beispiel #13
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3
        self.reloadTime = 0
        self.reloadDelay = 4
        self.mayFire = True
        self.range = 6
        self.delta = 0.5  #tolerance between full Aim

        self.spin_range = 3.0

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']

        self.triggerIterator = iter(self.triggers)

        self.tactics.append(Tactics.Engage(self))
Beispiel #14
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3
        self.stopFunction = self.Stop
        self.spin_range = 3.0
        self.firing = 0
        self.retracting = 0
        self.fireTime = 4
        self.retractTime = 8
        self.didFire = 0

        if 'range' in args:
            self.spin_range = args.get('range')
        if 'FiringTime' in args:
            self.fireTime = args.get('FiringTime')
        if 'RetractingTime' in args:
            self.retractTime = args.get('RetractingTime')

        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']

        self.triggerIterator = iter(self.triggers)

        self.tactics.append(Tactics.Engage(self))
Beispiel #15
0
 def __init__(self, **args):
     AI.SuperAI.__init__(self, **args)
     self.zone = "weapon"
     self.triggers = ["Fire"]
     self.triggers1 = ["ServoFire"]
     self.mayFire = True
     self.servospeed = 100  # speed of servo motor
     self.armlength = 3  # not used,
     self.delta = 0.2  #tolerance between full Aim
     self.Motor = 1
     self.servoNose = 1  # servoNose is a factor from -1 to 1 that take into account the fact that the components attached to the
     # servo motor are not always attached to its straight heading
     self.spin_range = 3.0  # used if you mount a spin motor onn your servo motor
     self.servo_range = 3.5  # use if you want to use the servoFire trigger
     if 'range' in args:
         self.spin_range = args.get('range')
     if 'zone' in args: self.zone = args['zone']
     if 'servospeed' in args: self.servospeed = args['servospeed']
     if 'delta' in args: self.delta = args['delta']
     if 'servorange' in args: self.servo_range = args['servorange']
     if 'mayfire' in args: self.mayFire = args['mayfire']
     if 'servonose' in args: self.servoNose = args['servonose']
     # to display the current angle of the servo motor uncomment thoses lines :
     self.debug = False
     AI.SuperAI.debugging = False
     self.tactics.append(Tactics.Engage(self))
Beispiel #16
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)
               
        self.zone = "Zone1"
        self.triggers = ["Fire1"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3
        
        self.spin_range = 3.0
        
        if 'range' in args:
            self.spin_range = args.get('range')
      
        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']
        
        self.triggerIterator = iter(self.triggers)
 
        self.tactics.append(Tactics.Engage(self)) # Main Tactic here.

        self.Timer_A = 10 # NOTE that this timer is starting at '10'.
        self.Timer_B = 0

        self.An_Enemy = 5
        self.Enemy_1 = 5
        self.Enemy_2 = 5
        self.Enemy_3 = 5
        self.Bot_ID_Locker_A = False
        self.Bot_ID_Locker_B = False
        self.Bot_ID_Locker_C = False
        self.Bot_ID_Locker_D = False

        self.List_Of_Bots = []
        self.ALLY = 5
Beispiel #17
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "whipzone"

        self.tactics.append(Tactics.Engage(self))

        self.whipTimer = 0
        self.whipDir = 1
        self.whipDirCount = 2

        self.ImmobileCounter = 0
        self.ThisAI_bImmobile = 0
        self.BU_ImmobileTimer_A = 0
        self.BU_ImmobileTimer_B = 0
        self.ReMobilizeRoutineTime = 40
        self.ThisAIBot_XFactorA = 0
        self.ThisAIBot_ZFactorA = 0
        self.ThisAIBot_XFactorB = 0
        self.ThisAIBot_ZFactorB = 0

        self.whipFunction = self.WhipAround

        if 'zone' in args: self.zone = args['zone']

        if 'whip' in args:
            if args['whip'] !=  "around": self.whipFunction = self.WhipBackAndForth
Beispiel #18
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "weapon"
        self.triggers = ["Fire"]
        self.trigger2 = ["Srimech"]
        self.reloadTime = 0
        self.reloadDelay = 3
        self.stopFunction = self.Stop
        self.waittime = 0.5

        self.spin_range = 3.0

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'waittime' in args:
            self.waittime = args.get('waittime')

        if 'triggers' in args: self.triggers = args['triggers']
        if 'reload' in args: self.reloadDelay = args['reload']

        self.triggerIterator = iter(self.triggers)

        self.tactics.append(Tactics.Ram(self))
Beispiel #19
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone1 = "PrimaryWep"
        self.triggers1 = ["PrimaryWep"]
        self.zone2 = "SecondaryWep"
        self.triggers2 = ["SecondaryWep"]
        self.zone3 = "OtherWep"
        self.triggers3 = ["OtherWep"]
        self.zone4 = "OtherWep2"
        self.triggers4 = ["OtherWep2"]
        self.triggers5 = ["Srimech"]

        self.spin_range = 3.0

        if 'range' in args:
            self.spin_range = args.get('range')

        if 'zone' in args: self.zone = args['zone']

        if 'triggers' in args: self.triggers1 = args['triggers']
        if 'triggers' in args: self.triggers2 = args['triggers']
        if 'triggers' in args: self.triggers3 = args['triggers']

        self.tactics.append(Tactics.Engage(self))
Beispiel #20
0
 def __init__(self, **args):
     Tank.__init__(self, **args)
     self.secondary = ["Shoot"]
     if 'secondary' in args: self.secondary = args['secondary']
     tactic = [x for x in self.tactics if x.name == "Annoy"]
     self.tactics.remove(tactic[0])
     self.tactics.append(Tactics.Engage(self))
Beispiel #21
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone1 = "PrimaryWep"
        self.triggers1 = ["PrimaryWep"]
        self.zone2 = "SecondaryWep"
        self.triggers2 = ["SecondaryWep"]
        self.triggers5 = ["Srimech"]

        self.sweapons = []               # used to track our secondary weapons

        self.notMoving = 0
        self.botinzone = 0
        self.spin_range = 3.0

        if 'sweapons' in args: self.sweapons = list(args['sweapons'])
        if 'range' in args:
            self.spin_range = args.get('range')

        if 'zone' in args: self.zone = args['zone']

        if 'triggers' in args: self.triggers1 = args['triggers']
        if 'triggers2' in args: self.triggers2 = args['triggers2']

        self.tactics.append(Tactics.Engage(self))
Beispiel #22
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)
        self.zone = "weapon"
        self.triggers1 = ["ServoFire"]
        self.spin_range = 99
        self.reloadTime = 0
        self.reloadDelay = 3

        self.servospeed = 100
        self.servoNose = 1 # servoNose is a factor from -1 to 1 that take into account the fact that the components attached to the
                           # servo motor are not always attached to its straight heading
        self.servoTimer = 15 # rate of shifting, the higher -> the longer between 2 shifts
        self.servoCountDown = self.servoTimer # count down before shifting
        self.servoNumberOfPosition = 2 # number of position
        self.servoAimAngle = 0 # angle the servo try to aim , each shift change this angle of 2*math.pi / (servoNumberOfPosition)
        self.delta = 0.05 #; error angle tolerance
        self.wellPositionned = True #:  if True, aiming angle reached : no more servo move until next shift
        self.Motor = 0
        self.flipflop= True

        if 'range' in args:       self.spin_range = args.get('range')
        if 'zone'  in args:       self.zone = args['zone']
        if 'servodelta' in args:  self.delta=args['servodelta']
        if 'servospeed' in args:  self.servospeed=args['servospeed']
        if 'servonose'  in args:  self.servoNose = args['servonose']
        if 'servoNbPos' in args:  self.servoNumberOfPosition = args['servoNbPos']
        if 'servoTimer' in args:  self.servoTimer = args['servoTimer']
        # to display the current angle of the servo motor uncomment thoses lines :
        self.debug = False
        AI.SuperAI.debugging = False
        self.tactics.append(Tactics.Engage(self))
Beispiel #23
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.tactics.append(Tactics.Engage(self))

        self.spin_range = 50
        self.turn_range = 3

        self.PreSpinEntrance = 0
        if 'PreSpinEntrance' in args:
            self.PreSpinEntrance = args.get('PreSpinEntrance')
        self.PreSpinEntranceTimer = 0

        self.TimeSinceHit = 0
        self.ChaseTime = 60
        if 'chase_time' in args:
            self.ChaseTime = args.get('chase_time')

        if 'range' in args:
            self.spin_range = args.get('range')
        if 'fbs_range' in args:
            self.turn_range = args.get('fbs_range')

        self.thwackFunction = self.ThwackLeft

        if 'right' in args:
            if args['right'] == "1": self.thwackFunction = self.ThwackRight
            else: self.thwackFunction = self.ThwackLeft
Beispiel #24
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "whipzone"
        self.zone2 = "AxeF"
        self.triggers2 = ["FireF"]
        self.zone3 = "AxeB"
        self.triggers3 = ["FireB"]
        self.zone4 = "AxeL"
        self.triggers4 = ["FireL"]
        self.zone5 = "AxeR"
        self.triggers5 = ["FireR"]
        self.zone6 = "under"

        self.tactics.append(Tactics.Engage(self))

        self.whipTimer = 0
        self.whipDir = 1
        self.whipDirCount = 2

        self.whipFunction = self.WhipBackAndForth

        if 'zone' in args: self.zone = args['zone']

        if 'whip' in args:
            if args['whip'] == "around": self.whipFunction = self.WhipAround
            else: self.whipFunction = self.WhipBackAndForth

        if 'triggers' in args: self.triggers2 = args['triggers']
        if 'triggers' in args: self.triggers3 = args['triggers']
        if 'triggers' in args: self.triggers4 = args['triggers']
        if 'triggers' in args: self.triggers5 = args['triggers']
Beispiel #25
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone1 = "weapon"
        self.triggers1 = ["Fire"]
        self.triggers2 = ["Srimech"]
        self.botinzone = 0
        self.compinzone = 0
        self.comptimer = 0
        self.NoChassisTime = 8
        self.motor = 8
        self.startangle = math.pi
        self.retract = 0
        self.retracttime = 5
        self.hittime = 0

        if 'zone' in args: self.zone = args['zone']

        if 'triggers' in args: self.triggers1 = args['triggers']
        if 'srimech' in args: self.triggers2 = args['srimech']
        if 'NoChassisTime' in args:
            self.NoChassisTime = args.get('NoChassisTime') * 4
        if 'MotorID' in args: self.motor = args.get('MotorID')
        if 'StartAngle' in args: self.startangle = args.get('StartAngle')
        if 'SwingTime' in args: self.retracttime = args.get('SwingTime')

        self.retracttimer = self.retracttime

        self.tactics.append(Tactics.Engage(self))
Beispiel #26
0
    def __init__(self, **args):
        Omni.__init__(self, **args)

        self.tickFactor = 3.75
        self.motorID = 2
        self.motorID2 = -1
        self.RPM = 0
        self.RPM2 = 0
        self.revolution = 0
        self.revolution2 = 0
        self.measuring = 0
        self.measuring2 = 0
        self.max_RPM = 0
        self.RPMhist = []
        self.avg_RPM = 0
        self.display = 0
        self.targetRPM = 100
        self.spin_reverse = 0
        self.jamTimer = 0
        self.raspberry = 1.5

        if 'ticks' in args: self.tickFactor = args['ticks']
        if 'MotorID' in args: self.motorID = args['MotorID']
        if 'Motor2ID' in args: self.motorID2 = args['Motor2ID']
        if 'DisplayRPM' in args: self.display = args['DisplayRPM']
        if 'TargetRPM' in args: self.targetRPM = args['TargetRPM']
        if 'JamTime' in args: self.raspberry = args['JamTime']

        self.triggerIterator = iter(self.triggers)

        self.tactics.append(Tactics.Engage(self))
Beispiel #27
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone = "whipzone"

        self.tactics.append(Tactics.Engage(self))

        self.whipTimer = 0
        self.whipDir = 1
        self.whipDirCount = 4
        self.botinzone = 0
        self.compinzone = 0
        self.comptimer = 0
        self.NoChassisTime = 8
        self.canFire = 0
        self.ImmobileCounter = 0
        self.ThisAI_bImmobile = 0
        self.BU_ImmobileTimer_A = 0
        self.BU_ImmobileTimer_B = 0
        self.ReMobilizeRoutineTime = 40
        self.ThisAIBot_XFactorA = 0
        self.ThisAIBot_ZFactorA = 0
        self.ThisAIBot_XFactorB = 0
        self.ThisAIBot_ZFactorB = 0

        self.whipFunction = self.WhipBackAndForth

        if 'zone' in args: self.zone = args['zone']

        if 'whip' in args:
            if args['whip'] !=  "around": self.whipFunction = self.WhipBackAndForth
        if 'NoChassisTime' in args: self.NoChassisTime = args.get('NoChassisTime') * 4
Beispiel #28
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.tactics.append(Tactics.Engage(self))

        self.spin_range = 50
        self.turn_range = 3
        self.PreSpinEntrance = 0
        self.turnreset = 0
        if 'PreSpinEntrance' in args:
            self.PreSpinEntrance = args.get('PreSpinEntrance')
        self.PreSpinEntranceTimer = 0
        self.timeOfLastBadHit = 0
        self.TimeSinceHit = 0
        self.ChaseTime = 60
        self.cycle = 0
        self.cycletime = 16
        if 'chase_time' in args:
            self.ChaseTime = args.get('chase_time')
        if 'range' in args:
            self.spin_range = args.get('range')
        if 'fbs_range' in args:
            self.turn_range = args.get('fbs_range')
        if 'SRcycle' in args:
            self.cycletime = args.get('SRcycle')

        self.thwackFunction = self.ThwackLeft

        if 'clockwise' in args: self.thwackFunction = self.ThwackRight

        self.pulsetime = 0
        if 'Pulse' in args: self.pulsetime = args.get('Pulse')
        self.pulse = self.pulsetime
        if 'Coast' in args: self.pulsetime2 = args.get('Coast')
Beispiel #29
0
    def __init__(self, **args):
        AI.SuperAI.__init__(self, **args)

        self.zone1 = "weapon"
        self.zone2 = "underweapon"
        self.sweapons = []  # used to track our secondary weapons
        self.tweapons = []  # used to track our tertiary weapons
        self.qweapons = []  # used to track our quaternary weapons
        self.triggers1 = ["PrimaryWep"]
        self.triggers2 = ["SecondaryWep"]
        self.triggers3 = ["Srimech"]
        self.triggers4 = ["HitUnder"]
        self.botinzone = 0
        self.botinzone2 = 0
        self.compinzone = 0
        self.comptimer = 0
        self.NoChassisTime = 8

        if 'sweapons' in args: self.sweapons = list(args['sweapons'])
        if 'tweapons' in args: self.tweapons = list(args['tweapons'])
        if 'qweapons' in args: self.qweapons = list(args['qweapons'])

        if 'NoChassisTime' in args:
            self.NoChassisTime = args.get('NoChassisTime') * 8

        self.tactics.append(Tactics.Engage(self))
Beispiel #30
0
    def LostComponent(self, id):
        # if we lose all our weapons, stop using the Engage tactic and switch to Shove
        if id in self.weapons: self.weapons.remove(id)

        if len(self.weapons) < 3:
            self.SpinTrigger = "Servo"
            self.ServoTrigger = "NOP"
            self.SpinSpeed = 35  #become 35  when switch trigger for servo (all component lost)
            self.GoServo = False
            tactic = [x for x in self.tactics if x.name == "Engage"]
            if len(tactic) > 0:
                self.tactics.remove(tactic[0])

                self.tactics.append(Tactics.Shove(self))
                self.tactics.append(Tactics.Charge(self))

        return AI.SuperAI.LostComponent(self, id)