Beispiel #1
0
    def func(self):
        "Implementing combat"

        if not self.args:
            caller = self.caller
            caller.msg("You need to pick a target to attack.")
            return

        character1 = self.caller
        character2 = self.caller.search(self.args)

        rules.roll_challenge(character1, character2, "combat")
Beispiel #2
0
 def at_tick(self):
     if self.db.attacking != None:
         print self.attacking.location
         # if character in same roome as self and aggressive
         if self.location == self.db.attacking.location and self.db.count < 10:
             # attack with probability and after cooldown
             if (time() - self.db.last_attack) > randint(1, 3):
                 self.execute_cmd("say Graaah, die %s!" % self.db.attacking)
                 rules.roll_challenge(self, self.db.attacking, "combat")
                 self.db.last_attack = time()
                 self.db.count += 1
         else:
             tickerhandler.remove(self, 1)
     else:
         tickerhandler.remove(self, 1)
Beispiel #3
0
    def func(self):
        "Implementing combat"

        # pass iff argument. assumes one argument passed
        if not self.args:
            caller = self.caller
            caller.msg("You need to pick a single target to attack.")
            return

        character = self.caller
        item = self.args # gets rid of the 1st space

        # search for object referred in argument
        if '#' in item:  # if '#' in argument search by dbref
            enemyname = "#"+item.split('#')[1]

            # object in room with same dbref
            enemy = [obj for obj in character.location.contents_get() if enemyname==obj.dbref]

            # if enemy asked for in room
            if enemy:
                enemy = enemy[0]
            else:
                character.msg("%s doesn't exist in this room" % item)
                return
        else:                 # else search by name
            # object in room with same name
            enemy = character.search(item, location=character.location)
        
        # if object not of type character or mob or npc
        if not (utils.inherits_from(enemy, Character) or utils.inherits_from(enemy, Mob) or utils.inherits_from(enemy, Npc)):
            character.msg("%s can't be attacked" % item)
            return

        # if enemy = self
        if enemy.dbref==character.dbref:
            character.msg("Stop being suicidal! I've set an appointment for you with the shrink")
            return

        # if user has equipped weapon
        weapons = [pobj for pobj in character.contents_get() if utils.inherits_from(pobj, Weapon) and pobj.dbref==character.db.equip]

        if weapons:
            character.msg("You slash at %s" % enemy)
            character.execute_cmd("slash %s" % enemy)
        else:
            character.msg("You punch %s" % enemy)
            rules.roll_challenge(character, enemy, "kickbox")