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")
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)
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")