import creature class Dragon(creature.Creature): def __init__(self, proc): creature.Creature.__init__(self, proc) self.power = 250 #Overrides def Attack(self, power, direction): if not (creature.Direction.Equals(direction, self.Facing)): #dragons must breathe forward return (0, self.ResultCodes.invalid_attack_direction) if (self.power >= power): self.power -= power self.AddPayload(5) return creature.Creature.Attack(self, power, direction, 7) #call base class now; last parameter = attackrange else: self.AddPayload(1) self.power += 1 return (0, self.ResultCodes.not_enough_power) def SetFacing(self, facing): return creature.Creature.SetFacing(self, facing) def Move(self, spaces): if not (spaces == 1): self.AddPayload(2) return (0, self.ResultCodes.invalid_move) return creature.Creature.Move(self, spaces) #call base class now def Scan(self, boxlength): if (boxlength >= 1 and boxlength <= 7): self.AddPayload(3) return creature.Creature.Scan(self, boxlength) else: self.AddPayload(3) return (0, self.ResultCodes.invalid_scan_range)