Пример #1
0
 def __call__(self, target, effecthandler_attr, traithandler_attr):
     traithandler = getattr(target, traithandler_attr)
     trait = traithandler.get(self.affectedTrait)
     if trait:
         # try to affect the trait by the power
         trait += self.power
         if self.duration:
             if self.script:
                 # create script
                 create_script(self.script,
                               name="effect_%s_%s" % (self.name,
                                                      self.eid),
                               interval=self.interval,
                               start_delay=self.delay,
                               repeats=self.duration,
                               persistent=True,
                               obj=target)
                 return
             else:
                 if (self.duration-1) > 1:
                     new_effect = self.tick()
                     effecthandler = getattr(target, effecthandler_attr)
                     effecthandler.add(new_effect)
     else:
         raise EffectException("No such Trait\
                                '{}'".format(self.affectedTrait))
Пример #2
0
 def SubmitJob(self, name, location, subject):
     handlervar = search.scripts('JobHandler')
     failstring = 'A critical failure has occurred while hunting in ' + location + ' staff is advised to run a scene to play out the consequences.'
     try:
         handlervar = handlervar[0]
     except IndexError:
         handlervar = create_script('world.jobs.JobHandler',key='JobHandler',persistent=True)
         self.caller.msg("Jobs system initialized.")
     try:
         jobchan = search.channels('Jobs')[0]
     except IndexError:
         jobchan = create_channel('Jobs',desc='A channel for announcing incoming jobs to staff.',locks='control:perm(Developer);listen:perm(Admin);send:false()')
     date = time.strftime("%a") + " " + time.strftime("%b") + " " + time.strftime("%d")
     gen_deadline = datetime.date.today() + datetime.timedelta(days=7)
     gen_deadline = gen_deadline.strftime("%a %b %d")
     commenttime = date + " at " + time.strftime("%I").strip("0") + ":" + time.strftime("%M") + " " + time.strftime("%p")
     try:
         handlervar.db.joblist[handlervar.db.buckets['HUNT'] - 1].append([name,subject,date,gen_deadline,tuple([subject,failstring,commenttime])])
         jobchan.msg("A critical failure on hunting has occurred, generating a job named: " + name)
         return
     except KeyError:
         handlervar.db.buckets['HUNT'] = len(handlervar.db.buckets) + 1
         handlervar.db.joblist.append([])
         handlervar.db.deadlines.append(['7'])
         handlervar.db.joblist[handlervar.db.buckets['HUNT'] - 1].append([name,subject,date,gen_deadline,tuple([subject,failstring,commenttime])])
         jobchan.msg("A critical failure on hunting has occurred, generating a job named: " + name)
         return
Пример #3
0
def at_server_start():
    """
    This is called every time the server starts up, regardless of
    how it was shut down.
    """
    # Start the main logger
    begin()

    # Affect default encoding (it's a security on frozen versions)
    if getattr(sys, "frozen", False):
        main.info("Running in frozen mode, try to change the default encoding")
        try:
            sys.setdefaultencoding("utf-8")
        except Exception:
            main.exception("An error occured while changing encoding.")
        else:
            main.info("Setting defaultencoding to utf-8")

    # Launch the script if it's not running
    try:
        script = ScriptDB.objects.get(db_key="event_handler")
    except ScriptDB.DoesNotExist:
        script = create_script("typeclasses.scripts.AvEventHandler")
        main.info("Creating the EventHandler")

    # Launch tickers
    ticker_handler.add(3, tickers.vehicles.move)

    # Load the apps
    errors = load_apps()
    for name, error in errors:
        app.warning("Error while loading {}: {}".format(name, error))
Пример #4
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if not self.args:
            caller.msg({"alert":LS("You should select a target.")})
            return

        target = caller.search(self.args)
        if not target:
            caller.msg({"alert":LS("You should select a target.")})
            return

        # set up combat
        if caller.is_in_combat():
            # caller is in battle
            message = {"alert": LS("You are already in a combat.")}
            caller.msg(message)
            return

        if target.is_in_combat():
            # caller is in battle
            message = {"alert": LS("%s is already in a combat." % target.name)}
            caller.msg(message)
            return

        # create a new combat handler
        chandler = create_script("combat_handler.CombatHandler")
        chandler.add_characters([target, self.caller])
        
        self.caller.msg("You attack %s! You are in combat." % target)
        target.msg("%s attacks you! You are in combat." % self.caller)
Пример #5
0
    def func(self):
        """Find a suitable target to attack"""
        caller = self.caller
        participants = [caller]

        # Handle no input
        if not self.args:
            caller.msg("Attack whom?")
            return

        # Obtain suitable target
        target = caller.search(self.args)

        if not target:
            # No target located.
            caller.msg(self.args + " could not be located.")
            return
        if not isinstance(target, Combat_Class):
            # Can only attack our typeclass.
            caller.msg(self.args + " is not able to battle.")
            return
        if target.ndb.combat_handler:
            # Can only battle one person at a time.
            caller.msg(self.args + " is already in battle.")
            return

        participants.append(target)

        # Initialise battle.
        handler = create_script(CombatHandler)
        handler.init_game(participants)
Пример #6
0
def obfuscate_language(text, level=0.0, language="default"):
    """
    Main access method for the language parser.

    Args:
        text (str): Text to obfuscate.
        level (real, optional): A value from 0.0-1.0 determining
            the level of obfuscation where 0 means no jobfuscation
            (string returned unchanged) and 1.0 means the entire
            string is obfuscated.
        language (str, optional): The identifier of a language
            the system understands.

    Returns:
        translated (str): The translated text.

    """
    # initialize the language handler and cache it
    global _LANGUAGE_HANDLER
    if not _LANGUAGE_HANDLER:
        try:
            _LANGUAGE_HANDLER = LanguageHandler.objects.get(db_key="language_handler")
        except LanguageHandler.DoesNotExist:
            if not _LANGUAGE_HANDLER:
                from evennia import create_script
                _LANGUAGE_HANDLER = create_script(LanguageHandler)
    return _LANGUAGE_HANDLER.translate(text, level=level, language=language)
Пример #7
0
def created(request):
    user = request.user
    if user.is_staff:
        if request.method == 'POST':
            form = EditForm(request.POST)
            if form.is_valid():
                name = form.cleaned_data['longname'].replace('\'', '').replace(
                    ' ', '_')
                s = create_script('typeclasses.scripts.PowerStatScript',
                                  key=name)
                s.db.longname = form.cleaned_data['longname']
                s.db.category = form.cleaned_data['category']
                s.db.reference = form.cleaned_data['reference']
                s.db.info = form.cleaned_data['info']
                s.db.restricted = form.cleaned_data['restricted']
                return HttpResponseRedirect('/powers/view/' +
                                            quote(s.db.longname))
            else:
                M = str(form)
                return render(request, 'powers/error.html',
                              {'message': 'Invalid form\n' + M})
        else:
            return render(request, 'powers/error.html',
                          {'message': 'Not POST'})
    else:
        return render(request, 'powers/error.html', {'message': 'Not staff'})
Пример #8
0
def created(request):
    user = request.user
    if user.is_staff:
        if request.method == 'POST':
            form = EditForm(request.POST)
            if form.is_valid():
                name = form.cleaned_data['longname'].replace('\'', '').replace(
                    ' ', '_')
                tribe_gifts = []
                if form.cleaned_data['tribe_gifts'] != '[]':
                    for item in form.cleaned_data['tribe_gifts'][1:-1].split(
                            ','):
                        tribe_gifts.append(item.strip()[1:-1])
                s = create_script('typeclasses.scripts.TribeScript', key=name)
                s.db.longname = form.cleaned_data['longname']
                s.db.renown = form.cleaned_data['renown']
                s.db.tribe_gifts = tribe_gifts
                s.db.info = form.cleaned_data['info']
                s.db.reference = form.cleaned_data['reference']
                s.db.restricted = form.cleaned_data['restricted']
                return HttpResponseRedirect('/tribes/view/' +
                                            quote(s.db.longname))
            else:
                M = str(form)
                return render(request, 'tribes/error.html',
                              {'message': 'Invalid form\n' + M})
        else:
            return render(request, 'tribes/error.html',
                          {'message': 'Not POST'})
    else:
        return render(request, 'tribes/error.html', {'message': 'Not staff'})
Пример #9
0
def obfuscate_language(text, level=0.0, language="default"):
    """
    Main access method for the language parser.

    Args:
        text (str): Text to obfuscate.
        level (real, optional): A value from 0.0-1.0 determining
            the level of obfuscation where 0 means no jobfuscation
            (string returned unchanged) and 1.0 means the entire
            string is obfuscated.
        language (str, optional): The identifier of a language
            the system understands.

    Returns:
        translated (str): The translated text.

    """
    # initialize the language handler and cache it
    global _LANGUAGE_HANDLER
    if not _LANGUAGE_HANDLER:
        try:
            _LANGUAGE_HANDLER = LanguageHandler.objects.get(
                db_key="language_handler")
        except LanguageHandler.DoesNotExist:
            if not _LANGUAGE_HANDLER:
                from evennia import create_script

                _LANGUAGE_HANDLER = create_script(LanguageHandler)
    return _LANGUAGE_HANDLER.translate(text, level=level, language=language)
Пример #10
0
 def func(self):
     """Handle command"""
     caller = self.caller
     if not self.args:
         self.caller.msg("Usage: attack <target>")
         return
     target = caller.search(self.args)
     if not target:
         return
     if target.ndb.party_handler and player.ndb.party_handler == target.ndb.party_handler:
         self.caller.msg("You cannot attack someone in your party!")
         return
     # set up combat
     if target.ndb.combat_handler:
         # target is already in combat - join it
         target.ndb.combat_handler.add_character(self.caller)
         target.ndb.combat_handler.msg_all("%s joins combat!" % self.caller)
     else:
         # create a new combat handler
         chandler = create_script("cardsystem.combat_handler.CombatHandler")
         self.caller.msg("You attack %s! You are in combat." % target)
         target.msg("%s attacks you! You are in combat." % self.caller)
         chandler.add_character(self.caller)
         chandler.add_character(target)
         for member in chandler.db.characters.values():
             if member.ndb.party_handler:
                 party_handler = self.caller.ndb.party_handler
                 for character in party_handler.db.characters.values():
                     if character != member and character.id not in chandler.db.characters.keys(
                     ):
                         chandler.add_character(character)
                         chandler.msg_all("%s joins combat!" % character)
Пример #11
0
    def death_spike(self):
        caller = self.caller
        target = self.target
        ttr = target.traits
        sk = self.caller.skills
        resist = ttr.MDEF.actual - sk.SPC.actual
        damage = d_roll("{}d6".format((sk.NEC.actual // 3) + 1))

        self.item.delete()
        caller.msg(
            '|MWith a wave of your hand, you send the spike of bone into {target}.|n '
        )
        caller.location.msg_contents(
            "|MWith a wave of <> hand,{actor} spends a spike of bone into {target}.|n",
            mapping=dict(actor=caller, target=self.target),
            exclude=caller)
        if resist >= 0:
            ttr.HP.current -= damage - resist
        else:
            ttr.HP.current -= damage
        # if the spell was successfully cast, store the casting time
        caller.db.ds_lc = time.time()
        # set up combat
        if target.ndb.combat_handler:
            # target is already in combat - join it
            target.ndb.combat_handler.add_character(self.caller)
            target.ndb.combat_handler.msg_all("%s joins combat!" % self.caller)
        else:
            # create a new combat handler
            chandler = create_script("combat_handler.CombatHandler")
            chandler.add_character(self.caller)
            chandler.add_character(target)
            self.caller.msg("Battle with %s begins." % target)
            target.msg("Battle with %s begins" % self.caller)
Пример #12
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return
            
        if caller.db.level < settings.MIN_HONOUR_LEVEL:
            caller.msg({"alert":_("You need to reach level %s." % settings.MIN_HONOUR_LEVEL)})
            return
        
        try:
            # getcandidates
            ids = HONOURS_MAPPER.get_characters(caller, settings.HONOUR_OPPONENTS_NUMBER)
            characters = [caller.search_dbref("#%s" % id) for id in ids]
            candidates = [char for char in characters if char and not char.is_in_combat()]
            if candidates:
                match = random.choice(candidates)
                # create a new combat handler
                chandler = create_script(settings.HONOUR_COMBAT_HANDLER)
                # set combat team and desc
                chandler.set_combat({1:[match], 2:[caller]}, _("Fight of Honour"), settings.AUTO_COMBAT_TIMEOUT)
            else:
                caller.msg({"alert":_("Can not make match.")})
        except Exception, e:
            logger.log_err("Find match error: %s" % e)
            caller.msg({"alert":_("Can not make match.")})
Пример #13
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if not self.args:
            caller.msg({"alert":LS("You should select a target.")})
            return

        target = caller.search(self.args)
        if not target:
            caller.msg({"alert":LS("You should select a target.")})
            return

        # set up combat
        if caller.is_in_combat():
            # caller is in battle
            message = {"alert": LS("You are already in a combat.")}
            caller.msg(message)
            return

        if target.is_in_combat():
            # caller is in battle
            message = {"alert": LS("%s is already in a combat." % target.name)}
            caller.msg(message)
            return

        # create a new combat handler
        chandler = create_script("combat_handler.CombatHandler")
        chandler.add_characters([target, self.caller])
        
        self.caller.msg("You attack %s! You are in combat." % target)
        target.msg("%s attacks you! You are in combat." % self.caller)
Пример #14
0
    def func(self):
        "Handle command"
        if not self.args:
            self.caller.msg("Usage: %s <target>" % self.key)
            return
        target = self.caller.search(self.args)
        if not target:
            return

        # Make sure can't be in two different combat handlers at once
        # TODO have a single combat handler for a location
        if self.caller.ndb.combat_handler and target.ndb.combat_handler:
            self.caller.msg("Finish this fight before the next.")
            return

        # set up combat
        if target.ndb.combat_handler: # Join their if they have one
            # target is already in combat - join it
            target.ndb.combat_handler.msg_all("%s joins combat!" % self.caller)
            target.msg("%s attacks you and joins the combat!" % self.caller)
            target.ndb.combat_handler.add_character(self.caller)
        elif self.caller.ndb.combat_handler:
            self.caller.msg("You attack %s and continue combat." % target)
            target.msg("%s attacks you and pulls you into the conflict."
                       % self.caller)
            self.caller.ndb.combat_handler.add_character(target)
        else:
            # create a new combat handler
            self.caller.msg("You attack %s! You are in combat." % target)
            target.msg("%s attacks you! You are in combat." % self.caller)
            ch = create_script("combat_handler.CombatHandler")
            ch.add_character(self.caller)
            ch.add_character(target)
Пример #15
0
    def func(self, event_key, character, obj):
        """
        Triggers an event at interval.

        Args:
            event_key: (string) event's key.
            character: (object) relative character.
            obj: (object) the event object.
        """
        # get action data
        model_obj = apps.get_model(settings.WORLD_DATA_APP, self.model_name)
        records = model_obj.objects.filter(event_key=event_key)

        # Add actions.
        for record in records:
            script = create_script(ScriptRoomInterval,
                                   key=event_key,
                                   interval=record.interval,
                                   autostart=False,
                                   start_delay=True,
                                   persistent=True,
                                   obj=character)
            script.set_action(obj, event_key, record.action, record.offline,
                              record.begin_message, record.end_message)
            script.start()
def at_server_start():
    """
    This is called every time the server starts up, regardless of
    how it was shut down.
    """
    Load_Status("vampire")
    Load_Status("werewolf")
    Load_Status("mage")
    Load_Status("beast")
    Load_Status("changeling")
    Load_Status("geist")
    Load_Status("mummy")
    Load_Status("atariya")
    Load_Status("dreamer")
    Load_Status("infected")
    Load_Status("lostboy")
    Load_Status("plain")
    Load_Status("psyvamp")
    Load_Status("hunter")
    Load_Status('demon')
    Load_Status('promethean')
    try:
        beatsearch = search.scripts('BeatHandler')[0]
    except IndexError:
        beatsearch = create_script('world.beats.BeatAwarder',key='BeatHandler',persistent=True)
    charbase = DefaultCharacter.objects.filter_family()
Пример #17
0
 def func(self):
     if self.caller.ndb.party_handler:
         self.caller.msg('You are already in a party.')
         return
     else:
         phandler = create_script("cardsystem.party_handler.PartyHandler")
         phandler.add_character(self.caller)
         self.caller.msg(
             f'PARTY: You created party: {phandler.db.party_name}')
         phandler.make_leader(self.caller)
     if self.args:
         target = self.caller.search(self.args)
         if not target:
             self.caller.msg('Target not found.')
             return
         if target.ndb.party_handler:
             self.caller.msg(f'{target.key} is already in a party.')
             return
         elif target.ndb.party_invite:
             self.caller.msg(
                 f'{target.key} already has an active party invite.')
             return
         else:
             phandler.invite_character(target)
             target.msg(
                 f'{self.caller.key} has invited you to a party.\nUse "partyaccept" or "partydecline".'
             )
Пример #18
0
 def setUp(self):
     super(ResolversTestCase, self).setUp()
     self.char1.msg = Mock()
     self.char2.msg = Mock()
     self.ch = create_script("combat_handler.CombatHandler")
     self.ch.end_turn = Mock()  # Mock this so it doesn't call resolve_combat_turn on it's own.
     self.ch.add_character(self.char1)
     self.ch.add_character(self.char2)
Пример #19
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if not caller.is_alive():
            caller.msg({"alert":_("You are died.")})
            return

        if not self.args:
            caller.msg({"alert":_("You should select a target.")})
            return

        target = caller.search(self.args)
        if not target:
            caller.msg({"alert":_("You should select a target.")})
            return

        if not caller.location or caller.location.peaceful:
            if target.has_player:
                caller.msg({"alert":_("You can not attack in this place.")})
                return

        if not target.is_alive():
            caller.msg({"alert":_("%s is died." % target.get_name())})
            return

        if caller.location != target.location:
            caller.msg({"alert":_("You can not attack %s." % target.get_name())})
            return

        # Set caller's target.
        caller.set_target(target)

        # set up combat
        if caller.is_in_combat():
            # caller is in battle
            message = {"alert": _("You are in another combat.")}
            caller.msg(message)
            return

        if target.is_in_combat():
            # caller is in battle
            message = {"alert": _("%s is in another combat." % target.name)}
            caller.msg(message)
            return

        # create a new combat handler
        chandler = create_script(settings.COMBAT_HANDLER)
        
        # set combat team and desc
        chandler.set_combat({1: [target], 2:[self.caller]}, "")
        
        self.caller.msg(_("You are attacking {c%s{n! You are in combat.") % target.get_name())
        target.msg(_("{c%s{n is attacking you! You are in combat.") % self.caller.get_name())
Пример #20
0
 def at_object_creation(self):
     script = create_script(EnvScript, "Local messenger", obj=self)
     script.db.messages = (["The fountain burbles softly."]
                           + ["The wind blows through the trees and bushes."]
                           + ["Birds chirp from the tree tops above"]
                           + ["Light passes through the fountain, forming a rainbow."]
                           + ["Water splashes outside the fountain."]
                           + ["You feel calm and peaceful."]
                           + ["The fountain shimmers oddly. Is it glowing?"])
Пример #21
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if not caller.is_alive():
            caller.msg({"alert":_("You are died.")})
            return

        if not self.args:
            caller.msg({"alert":_("You should select a target.")})
            return

        target = caller.search_dbref(self.args)
        if not target:
            caller.msg({"alert":_("You should select a target.")})
            return

        if not caller.location or caller.location.peaceful:
            if target.has_account:
                caller.msg({"alert":_("You can not attack in this place.")})
                return

        if not target.is_alive():
            caller.msg({"alert": _("%s is died." % target.get_name())})
            return

        if caller.location != target.location:
            caller.msg({"alert": _("You can not attack %s." % target.get_name())})
            return

        # Set caller's target.
        caller.set_target(target)

        # set up combat
        if caller.is_in_combat():
            # caller is in battle
            message = {"alert": _("You are in another combat.")}
            caller.msg(message)
            return

        if target.is_in_combat():
            # caller is in battle
            message = {"alert": _("%s is in another combat." % target.name)}
            caller.msg(message)
            return

        # create a new combat handler
        chandler = create_script(settings.NORMAL_COMBAT_HANDLER)
        
        # set combat team and desc
        chandler.set_combat({1: [target], 2:[caller]}, "", 0)
        
        caller.msg(_("You are attacking {c%s{n! You are in combat.") % target.get_name())
        target.msg(_("{c%s{n is attacking you! You are in combat.") % caller.get_name())
Пример #22
0
def start_combat(caller, target, action):
    prefix = "|r[|yCOMBAT|r]|n"
    engagement = create_script(EngagementScript, obj=caller)
    engagement.start_engagement(caller, target, caller.location)
    engagement.attacker_action = action

    engagement.location.msg_contents(
        "{2} {0} pewpews at the poor {1}".format(engagement.attacker.name, engagement.defender.name, prefix))
    engagement.defender.msg(
        "{1} {0} is shooting at you!!\n\t+pass - +dodge - +quickshot".format(engagement.attacker.name, prefix))
Пример #23
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if not caller.is_alive():
            caller.msg({"alert":LS("You are died.")})
            return

        if not self.args:
            caller.msg({"alert":LS("You should select a target.")})
            return

        target = caller.search(self.args)
        if not target:
            caller.msg({"alert":LS("You should select a target.")})
            return

        if not target.is_alive():
            caller.msg({"alert":LS("%s is died." % target.get_name())})
            return

        if caller.location != target.location:
            caller.msg({"alert":LS("You can not attack %s." % target.get_name())})
            return

        # Set caller's target.
        caller.set_target(target)

        # set up combat
        if caller.is_in_combat():
            # caller is in battle
            message = {"alert": LS("You are already in a combat.")}
            caller.msg(message)
            return

        if target.is_in_combat():
            # caller is in battle
            message = {"alert": LS("%s is already in a combat." % target.name)}
            caller.msg(message)
            return

        # create a new combat handler
        chandler = create_script(settings.COMBAT_HANDLER)
        
        # set combat team and desc
        chandler.set_combat({1: [target], 2:[self.caller]}, "")
        
        self.caller.msg(LS("You are attacking {c%s{n! You are in combat.") % target.get_name())
        target.msg(LS("{c%s{n is attacking you! You are in combat.") % self.caller.get_name())
Пример #24
0
    def fight(self, opponents):
        """
        Create a combat.
        """
        confirmed0 = opponents[0] in self.preparing and self.preparing[opponents[0]]["confirmed"]
        confirmed1 = opponents[1] in self.preparing and self.preparing[opponents[1]]["confirmed"]

        if not confirmed0 and not confirmed1:
            self.remove_by_id(opponents[0])
            self.remove_by_id(opponents[1])

            opponent0 = search_object("#%s" % opponents[0])
            opponent0[0].msg({"match_rejected": opponents[0],
                              "left_combat_queue": ""})
            opponent1 = search_object("#%s" % opponents[1])
            opponent1[0].msg({"match_rejected": opponents[1],
                              "left_combat_queue": ""})
        elif not confirmed0:
            # opponents 0 not confirmed
            self.remove_by_id(opponents[0])
            if opponents[1] in self.preparing:
                del self.preparing[opponents[1]]

            opponent0 = search_object("#%s" % opponents[0])
            opponent0[0].msg({"match_rejected": opponents[0],
                              "left_combat_queue": ""})

            opponent1 = search_object("#%s" % opponents[1])
            opponent1[0].msg({"match_rejected": opponents[0]})
        elif not confirmed1:
            # opponents 1 not confirmed
            self.remove_by_id(opponents[1])
            if opponents[0] in self.preparing:
                del self.preparing[opponents[0]]

            opponent1 = search_object("#%s" % opponents[1])
            opponent1[0].msg({"match_rejected": opponents[1],
                              "left_combat_queue": ""})

            opponent0 = search_object("#%s" % opponents[0])
            opponent0[0].msg({"match_rejected": opponents[1]})
        elif confirmed0 and confirmed1:
            # all confirmed
            opponent0 = search_object("#%s" % opponents[0])
            opponent1 = search_object("#%s" % opponents[1])
            # create a new combat handler
            chandler = create_script(settings.HONOUR_COMBAT_HANDLER)
            # set combat team and desc
            chandler.set_combat({1:[opponent0[0]], 2:[opponent1[0]]}, _("Fight of Honour"), settings.AUTO_COMBAT_TIMEOUT)

            self.remove_by_id(opponents[0])
            self.remove_by_id(opponents[1])
Пример #25
0
    def func(self):
        caller = self.caller
        opts = self.opts

        if opts.loc:
            location = caller.search(opts.loc, global_search=True)
            if not location:
                caller.msg("Destination not found.")
                return
        else:
            location = caller.location

        existing = search_script("EnvScript", obj=location)

        if opts.type == "init":
            if len(existing) > 0:
                caller.msg("An EnvScript already exists.")
                return

            script = create_script(EnvScript, obj=location, key="EnvScript")
        elif len(existing) == 1:
            script = existing[0]
        elif len(existing) == 0:
            caller.msg("No script found.")
            return
        else:
            caller.msg("Error: multiple scripts found.")
            return

        if opts.type == "init" or opts.type == "edit":

            def _env_load(caller):
                return "\n".join(script.db.messages)

            def _env_save(caller, buffer):
                script.db.messages = buffer.splitlines()
                caller.msg("Messages saved.")
                return

            caller.msg("Please place one message on each line.")
            EvEditor(caller,
                     loadfunc=_env_load,
                     savefunc=_env_save,
                     key="Save messages: :w")

        if opts.type == "status":
            caller.msg("The script is operational.")

        if opts.type == "rm":
            script.delete()
            caller.msg("Script deleted.")
Пример #26
0
    def func(self):
        args = self.args.strip().lower()

        if not args:
            self.caller.msg("Curse who?")
            return

        target = self.caller.search(args)
        if target and not target.db.cursed:
            script = create_script("world.curse_script.AnimalCurse",
                                   obj=target,
                                   persistent=True,
                                   report_to=target)
            script.start()
Пример #27
0
    def func(self):
        caller = self.caller
        if not self.args:
            caller.msg("Usage: attack <target>")
            return

        target = caller.search(self.args)
        if not target:
            return

        # for combat against yourself
        if target.id == caller.id:
            caller.msg("Combat against yourself is not supported.")
            return

        if not inherits_from(target, 'typeclasses.characters.Character'):
            caller.msg("Combat against {target} is not supported.".format(
                target=target.get_display_name(caller)))
            return

        if target.ndb.no_attack:
            caller.msg("You cannot attack {target} at this time.".format(
                target=target.get_display_name(caller)
            ))
            return

        if caller.location.tags.get('no_attack', None, category='flags'):
            caller.msg("Combat is not allowed in this location.")
            return

        # set up combat
        if target.ndb.combat_handler:
            # target is already in combat - join it
            target.ndb.combat_handler.add_character(caller)
            target.ndb.combat_handler.combat_msg(
                "{actor} joins combat!" ,
                actor=caller
            )
        else:
            # create a new combat handler
            chandler = create_script("typeclasses.combat_handler.CombatHandler")
            chandler.add_character(caller)
            chandler.add_character(target)
            caller.msg("You attack {}!".format(
                target.get_display_name(caller)))
            target.msg("{} attacks you!".format(
                caller.get_display_name(target)))
            for char in chandler.db.characters.values():
                char.execute_cmd("look")
            chandler.msg_all("The turn begins. Declare your actions!")
Пример #28
0
def add_language(**kwargs):
    """
    Access function to creating a new language. See the docstring of
    `LanguageHandler.add` for list of keyword arguments.

    """
    global _LANGUAGE_HANDLER
    if not _LANGUAGE_HANDLER:
        try:
            _LANGUAGE_HANDLER = LanguageHandler.objects.get(db_key="language_handler")
        except LanguageHandler.DoesNotExist:
            if not _LANGUAGE_HANDLER:
                from evennia import create_script
                _LANGUAGE_HANDLER = create_script(LanguageHandler)
    _LANGUAGE_HANDLER.add(**kwargs)
Пример #29
0
    def start_engagement(self, attacker, defender, location):
        self.attacker = attacker
        self.defender = defender
        self.location = location

        if not hasattr(location.db, 'skirmish') or not location.db.skirmish:
            skirmish = create_script(SkirmishScript, obj=location)
            skirmish.location = location
            self.location.db.skirmish = skirmish
            self.skirmish = skirmish
        else:
            self.skirmish = location.db.skirmish

        self._init_character(attacker)
        self._init_character(defender)
Пример #30
0
def freeze(target, duration):
    now = time.time()
    # TODO: do we want to make freeze additive?
    # i.e., see how much exiting (frozen_until - now) is remaining?
    # that would affect both frozen_util and the needed script duration
    # if frozen_until > now:
    #   frozen_until = frozen_until + duration
    #   unfreeze_delay = (frozen_util - now) + duration
    # else:
    #   frozen_until = now + duration
    #   unfreeze_delay = duration
    target.ndb.frozen_until = now + duration
    target.msg("You cannot move!")
    target.location.msg_contents(f"{target.key} is frozen.", exclude=[target])

    # remove any existing unfreeze script
    for script in target.scripts.all():
        if script.key == "unfreeze":
            script.stop()

    # add a new unfreeze
    create_script("typeclasses.scripts.DelayedUnfreeze",
                  obj=target,
                  interval=duration)
Пример #31
0
    def func(self):
        caller = self.caller
        if not self.args:
            caller.msg("Usage: attack <target>")
            return

        target = caller.search(self.args)
        if not target:
            return

        # for combat against yourself
        if target.id == caller.id:
            caller.msg("Combat against yourself is not supported.")
            return

        if not inherits_from(target, 'typeclasses.characters.Character'):
            caller.msg("Combat against {target} is not supported.".format(
                target=target.get_display_name(caller)))
            return

        if target.ndb.no_attack:
            caller.msg("You cannot attack {target} at this time.".format(
                target=target.get_display_name(caller)))
            return

        if caller.location.tags.get('no_attack', None, category='flags'):
            caller.msg("Combat is not allowed in this location.")
            return

        # set up combat
        if target.ndb.combat_handler:
            # target is already in combat - join it
            target.ndb.combat_handler.add_character(caller)
            target.ndb.combat_handler.combat_msg("{actor} joins combat!",
                                                 actor=caller)
        else:
            # create a new combat handler
            chandler = create_script(
                "typeclasses.combat_handler.CombatHandler")
            chandler.add_character(caller)
            chandler.add_character(target)
            caller.msg("You attack {}!".format(
                target.get_display_name(caller)))
            target.msg("{} attacks you!".format(
                caller.get_display_name(target)))
            for char in chandler.db.characters.values():
                char.execute_cmd("look")
            chandler.msg_all("The turn begins. Declare your actions!")
Пример #32
0
def available_languages():
    """
    Returns all available language keys.

    Returns:
        languages (list): List of key strings of all available
        languages.
    """
    global _LANGUAGE_HANDLER
    if not _LANGUAGE_HANDLER:
        try:
            _LANGUAGE_HANDLER = LanguageHandler.objects.get(db_key="language_handler")
        except LanguageHandler.DoesNotExist:
            if not _LANGUAGE_HANDLER:
                from evennia import create_script
                _LANGUAGE_HANDLER = create_script(LanguageHandler)
    return list(_LANGUAGE_HANDLER.attributes.get("language_storage", {}))
Пример #33
0
    def attack_target(self, target, desc=""):
        """
        Attack a target.

        Args:
            target: (object) the target object.
            desc: (string) string to describe this attack

        Returns:
            (boolean) attack begins
        """
        if self.is_in_combat():
            # already in battle
            logger.log_errmsg("%s is already in battle." % self.dbref)
            return False

        # search target
        if not target:
            logger.log_errmsg("Can not find the target.")
            return False

        if not target.is_typeclass(TYPECLASS(
                settings.GENERAL_CHARACTER_TYPECLASS_KEY),
                                   exact=False):
            # Target is not a character.
            logger.log_errmsg("Can not attack the target %s." % target.dbref)
            return False

        if target.is_in_combat():
            # obj is already in battle
            logger.log_errmsg("%s is already in battle." % target.dbref)
            return False

        # create a new combat handler
        chandler = create_script(settings.NORMAL_COMBAT_HANDLER)

        # set combat team and desc
        chandler.set_combat(combat_type=CombatType.NORMAL,
                            teams={
                                1: [target],
                                2: [self]
                            },
                            desc=desc,
                            timeout=0)

        return True
Пример #34
0
    def do_attack(self, data, character):
        """
        """
        rand = random.random()
        for item in data:
            if rand >= item["odds"]:
                rand -= item["odds"]
                continue

            mob = build_object(item["mob"])
            if not mob:
                return

            mob.set_level(item["level"])

            # create a new combat handler
            chandler = create_script("combat_handler.CombatHandler")
            chandler.add_characters([mob, character])
Пример #35
0
    def do_attack(self, data, character):
        """
        """
        rand = random.random()
        for item in data:
            if rand >= item["odds"]:
                rand -= item["odds"]
                continue

            mob = build_object(item["mob"])
            if not mob:
                return

            mob.set_level(item["level"])

            # create a new combat handler
            chandler = create_script("combat_handler.CombatHandler")
            chandler.add_characters([mob, character])
Пример #36
0
 def func(self):
     """Handle command."""
     if not self.args:
         self.caller.msg("Usage: attack <target>")
         return
     target = self.caller.search(self.args)
     if not target:
         return
     # set up combat
     if target.ndb.combat_handler:
         # target is already in combat - join it
         target.ndb.combat_handler.add_character(self.caller)
         target.ndb.combat_handler.msg_all("%s joins combat!" % self.caller)
     else:
         # create a new combat handler
         chandler = create_script("combat_handler.CombatHandler")
         chandler.add_character(self.caller)
         chandler.add_character(target)
         self.caller.msg("You attack %s! You are in combat." % target)
         target.msg("%s attacks you! You are in combat." % self.caller)
Пример #37
0
def create_wilderness(name="default", mapprovider=None):
    """
    Creates a new wilderness map. Does nothing if a wilderness map already
    exists with the same name.

    Args:
        name (str, optional): the name to use for that wilderness map
        mapprovider (WildernessMap instance, optional): an instance of a
            WildernessMap class (or subclass) that will be used to provide the
            layout of this wilderness map. If none is provided, the default
            infinite grid map will be used.

    """
    if WildernessScript.objects.filter(db_key=name).exists():
        # Don't create two wildernesses with the same name
        return

    if not mapprovider:
        mapprovider = WildernessMapProvider()
    script = create_script(WildernessScript, key=name)
    script.db.mapprovider = mapprovider
Пример #38
0
def create_wilderness(name="default", mapprovider=None):
    """
    Creates a new wilderness map. Does nothing if a wilderness map already
    exists with the same name.

    Args:
        name (str, optional): the name to use for that wilderness map
        mapprovider (WildernessMap instance, optional): an instance of a
            WildernessMap class (or subclass) that will be used to provide the
            layout of this wilderness map. If none is provided, the default
            infinite grid map will be used.

    """
    if WildScript.objects.filter(db_key=name).exists():
        # Don't create two wildernesses with the same name
        return

    if not mapprovider:
        mapprovider = WildernessMapProvider()
    script = create_script(WildScript, key=name)
    script.db.mapprovider = mapprovider
Пример #39
0
def created(request):
    user = request.user
    if user.is_staff:
        if request.method == 'POST':
            form = EditForm(request.POST)
            if form.is_valid():
                name = form.cleaned_data['longname'].replace('\'', '').replace(
                    ' ', '_')
                range = []
                for item in form.cleaned_data['range'][1:-1].split(','):
                    range.append(int(item))
                noteRestrictions = []
                if form.cleaned_data['noteRestrictions'] != '[]':
                    for item in form.cleaned_data['noteRestrictions'][
                            1:-1].split(','):
                        noteRestrictions.append(item.strip()[1:-1])
                s = create_script('typeclasses.scripts.MeritScript', key=name)
                s.db.longname = form.cleaned_data['longname']
                s.db.category = form.cleaned_data['category']
                d = search_script_tag('dictionary_data')[0]
                d.insert(s)
                s.db.range = range
                s.db.noteRestrictions = noteRestrictions
                s.db.prereq = form.cleaned_data['prereq']
                s.db.reference = form.cleaned_data['reference']
                s.db.info = form.cleaned_data['info']
                s.db.cg_only = form.cleaned_data['cg_only']
                s.db.restricted = form.cleaned_data['restricted']
                return HttpResponseRedirect('/merits/view/' +
                                            quote(s.db.longname))
            else:
                M = str(form)
                return render(request, 'merits/error.html',
                              {'message': 'Invalid form\n' + M})
        else:
            return render(request, 'merits/error.html',
                          {'message': 'Not POST'})
    else:
        return render(request, 'merits/error.html', {'message': 'Not staff'})
Пример #40
0
    def attack_target(self, target, desc=""):
        """
        Attack a target.

        Args:
            target: (object) the target object.
            desc: (string) string to describe this attack

        Returns:
            (boolean) attack begins
        """
        if self.is_in_combat():
            # already in battle
            logger.log_errmsg("%s is already in battle." % self.dbref)
            return False

        # search target
        if not target:
            logger.log_errmsg("Can not find the target.")
            return False

        if not target.is_typeclass(settings.BASE_GENERAL_CHARACTER_TYPECLASS, exact=False):
            # Target is not a character.
            logger.log_errmsg("Can not attack the target %s." % target.dbref)
            return False

        if target.is_in_combat():
            # obj is already in battle
            logger.log_errmsg("%s is already in battle." % target.dbref)
            return False

        # create a new combat handler
        chandler = create_script(settings.COMBAT_HANDLER)
                        
        # set combat team and desc
        chandler.set_combat({1: [target], 2: [self]}, desc)

        return True
Пример #41
0
    def attack_target(self, target, desc=""):
        """
        Attack a target.

        Args:
            target: (object) the target object.
            desc: (string) string to describe this attack

        Returns:
            None
        """
        if self.is_in_combat():
            # already in battle
            logger.log_errmsg("%s is already in battle." % self.dbref)
            return

        # search target
        if not target:
            logger.log_errmsg("Can not find the target.")
            return

        if not target.is_typeclass(settings.BASE_GENERAL_CHARACTER_TYPECLASS,
                                   exact=False):
            # Target is not a character.
            logger.log_errmsg("Can not attack the target %s." % target.dbref)
            return

        if target.is_in_combat():
            # obj is already in battle
            logger.log_errmsg("%s is already in battle." % target.dbref)
            return

        # create a new combat handler
        chandler = create_script(settings.COMBAT_HANDLER)

        # set combat team and desc
        chandler.set_combat({1: [target], 2: [self]}, desc)
Пример #42
0
    def func(self):
        "Handle command"

        caller = self.caller
        if not caller:
            return

        if caller.db.level < settings.MIN_HONOUR_LEVEL:
            caller.msg({
                "alert":
                _("You need to reach level %s." % settings.MIN_HONOUR_LEVEL)
            })
            return

        try:
            # getcandidates
            ids = HONOURS_MAPPER.get_characters(
                caller, settings.HONOUR_OPPONENTS_NUMBER)
            characters = [caller.search_dbref("#%s" % id) for id in ids]
            candidates = [
                char for char in characters
                if char and not char.is_in_combat()
            ]
            if candidates:
                match = random.choice(candidates)
                # create a new combat handler
                chandler = create_script(settings.HONOUR_COMBAT_HANDLER)
                # set combat team and desc
                chandler.set_combat({
                    1: [match],
                    2: [caller]
                }, _("Fight of Honour"), settings.AUTO_COMBAT_TIMEOUT)
            else:
                caller.msg({"alert": _("Can not make match.")})
        except Exception, e:
            logger.log_err("Find match error: %s" % e)
            caller.msg({"alert": _("Can not make match.")})
Пример #43
0
    def func(self, event_key, character, obj):
        """
        Triggers an event at interval.

        Args:
            event_key: (string) event's key.
            character: (object) relative character.
            obj: (object) the event object.
        """
        # get action data
        model_obj = apps.get_model(settings.WORLD_DATA_APP, self.model_name)
        records = model_obj.objects.filter(event_key=event_key)

        # Add actions.
        for record in records:
            script = create_script(ScriptRoomInterval,
                                   key=event_key,
                                   interval=record.interval,
                                   autostart=False,
                                   start_delay=True,
                                   persistent = True,
                                   obj=character)
            script.set_action(obj, event_key, record.action, record.begin_message, record.end_message)
            script.start()
Пример #44
0
 def func(self):
     switches = self.switches
     args = self.args
     if switches[0].lower() == "create":
         sceneScript = create_script('SceneLogger')
         sceneScript.AddChar(self.caller)
         sceneScript.db.sceneLocation = self.caller.location
         if args:
             sceneScript.key = args
     elif switches[0].lower() == "join":
         if not args:
             self.caller.msg("You have to add a scene ID to join a scene!")
             return
         scriptList = SceneLogger.objects.all()
         for scene in scriptList:
             try:
                 if int(args) == scene.scene_id:
                     scene.AddChar(self.caller)
                     self.caller.msg("Scene number " + str(scene.scene_id) +
                                     " joined")
                     break
             except ValueError:
                 self.caller.msg("Scene IDs are only ever numbers.")
                 return
Пример #45
0
def attack_node(caller):
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 6)):
		caller.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 7)):
		caller.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing >= 6)):
		caller.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X X /")

	if((caller.db.lethal == 7 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X X")

	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 6)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 7)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing >= 6)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X /")
	if((caller.db.target.db.lethal == 7 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X X")




	caller.db.start_time = timer()

	attack_script = create_script("typeclasses.attackwait.AttackTime", obj=caller)
	attack_script.attacker(caller)
	attack_script.target(caller.db.target)
	text = ""

	options = ({"key": "|ypunch",
		"desc": "Punch %s" % caller.db.target,
		"goto": "wait",
		"exec": "punch"},
		{"key": "|ykick",
		"desc": "Kick %s" % caller.db.target,
		"goto": "wait",
		"exec": "kick"},
		{"key": "|ytest",
		"desc": "testing",
		"goto": "wait",
		"exec": "testmenu"},
		{"key": "|yskip",
		"desc": "Do nothing",
		"goto": "skip_attack"},)

	return text, options
Пример #46
0
def defend_node(caller):
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 6)):
		caller.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 7)):
		caller.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing >= 6)):
		caller.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X X /")

	if((caller.db.lethal == 7 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X X")

	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 6)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 7)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing >= 6)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X /")
	if((caller.db.target.db.lethal == 7 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X X")




	caller.db.target.start_time = timer()

	defend_script = create_script("typeclasses.defendwait.DefendTime", obj=caller)
	defend_script.attacker(caller)
	defend_script.target(caller.db.target)

	text = ""
	options = ({"key": "|ydodge",
		"desc": "Avoid the attack.",
		"goto": "wait",
		"exec": "dodge"},
		{"key": "|yblock",
		"desc": "Block the attack.",
		"goto": "wait",
		"exec": "block"},
		{"key": "|yflee",
		"desc": "Run away.",
		"goto": "wait",
		"exec": "flee"},
		{"key": "|yskip",
		"desc": "Do nothing.",
		"goto": "skip_defend"})

	return text, options
Пример #47
0
def attack_node(caller):
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 6)):
		caller.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 7)):
		caller.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing >= 6)):
		caller.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="|X|[wHealth: X X X X X X /")

	if((caller.db.lethal == 7 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="|X|[wHealth: X X X X X X X")

	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: O O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: / O O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: / / O O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / O O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / O O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / O O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 6)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / O")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 7)):
		caller.db.target.msg(prompt="|X|[wHealth: / / / / / / /")

	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X O O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X / O O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / O O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / O O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / O O")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / /")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing >= 6)):
		caller.db.target.msg(prompt="|X|[wHealth: X / / / / / /")


	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X O O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / O O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / O O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / O O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / O")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X O O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / O O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / O O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / O")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X / / / /")

	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X O O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / O O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / O")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X / / /")


	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X O O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / O")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X / /")

	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X O")
	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X /")
	if((caller.db.target.db.lethal == 7 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="|X|[wHealth: X X X X X X X")




	caller.db.start_time = timer()

	attack_script = create_script("typeclasses.attackwait.AttackTime", obj=caller)
	attack_script.attacker(caller)
	attack_script.target(caller.db.target)
	text = ""

	options = ({"key": "|ypunch",
		"desc": "Punch %s" % caller.db.target,
		"goto": "wait",
		"exec": "punch"},
		{"key": "|ykick",
		"desc": "Kick %s" % caller.db.target,
		"goto": "wait",
		"exec": "kick"},
		{"key": "|ywield",
		"desc": "Wield a weapon",
		"goto": "wield",
		"exec": "wield"},
		{"key": "|yskip",
		"desc": "Do nothing",
		"goto": "skip_attack"},)

	for each in caller.contents:
		if each == caller.ndb.selected_weapon:
			options += ({"key": "|y" + caller.ndb.selected_weapon.name,
				"desc": "item",
				"goto": "wait",
				"exec": "punch"},)

	return text, options
Пример #48
0
 def who(self):
     found = WhoManager.objects.filter_family(db_key='Who Manager').first()
     if found:
         return found
     return create_script(WhoManager, persistent=False, obj=None)
Пример #49
0
def at_server_cold_start():
    """
    This is called only when the server starts "cold", i.e. after a
    shutdown or a reset.
    """
    create_script("typeclasses.scripts.Assets", obj=None, persistent=True)
Пример #50
0
def attack_node(caller):
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test-1")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test0")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test1")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="test2")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="test3")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="test4")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 6)):
		caller.msg(prompt="test5")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 7)):
		caller.msg(prompt="test6")

	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test7")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test8")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test9")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="test10")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="test11")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="test12")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing >= 6)):
		caller.msg(prompt="test13")


	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test14")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test15")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test16")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="test17")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="test18")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="test19")

	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test20")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test21")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test22")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="test23")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="test24")

	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test25")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test26")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test27")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="test28")


	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test29")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test30")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="test31")

	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test32")
	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="test33")

	if((caller.db.lethal == 7 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="test34")

	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test35")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test36")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test37")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="test38")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="test39")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="test38")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 6)):
		caller.db.target.msg(prompt="test39")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 7)):
		caller.db.target.msg(prompt="test40")

	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test41")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test42")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test43")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="test44")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="test45")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="test46")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing >= 6)):
		caller.db.target.msg(prompt="test47")


	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test48")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test49")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test50")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="test51")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="test52")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="test53")

	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test54")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test55")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test56")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="test57")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="test58")

	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test59")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test60")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test61")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="test62")


	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test63")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test64")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="test65")

	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="test66")
	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="test67")
	if((caller.db.target.db.lethal == 7 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="")




	caller.db.start_time = timer()

	attack_script = create_script("typeclasses.attackwait.AttackTime", obj=caller)
	attack_script.attacker(caller)
	attack_script.target(caller.db.target)
	text = ""

	options = ({"key": "|ypunch",
		"desc": "Punch %s" % caller.db.target,
		"goto": "wait",
		"exec": "punch"},
		{"key": "|ykick",
		"desc": "Kick %s" % caller.db.target,
		"goto": "wait",
		"exec": "kick"},
		{"key": "|yskip",
		"desc": "Do nothing",
		"goto": "skip_attack"})

	for each in caller.contents:
		if each.db.weapon ==1:
			options += ({"key": "|y" + each.name,
				"desc": "An Axe",
				"goto": "wait",
				"exec": "axe"},) 

	return text, options
Пример #51
0
def at_initial_setup():
    from evennia import create_script
    create_script("typeclasses.scripts.WorldWind", key="WorldWind", obj=None)
    print "Initial Set up was run"
Пример #52
0
def defend_node(caller):
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="68")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="69")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="70")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="71")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="72")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="73")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 6)):
		caller.msg(prompt="74")
	if((caller.db.lethal == 0 ) and ( caller.db.bashing == 7)):
		caller.msg(prompt="75")

	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="76")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="77")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="78")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="79")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="80")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="81")
	if((caller.db.lethal == 1 ) and ( caller.db.bashing >= 6)):
		caller.msg(prompt="82")


	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="83")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="84")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="85")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="86")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="87")
	if((caller.db.lethal == 2 ) and ( caller.db.bashing == 5)):
		caller.msg(prompt="|X|[wHealth: X X / / / / /")

	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="88")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="89")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="90")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="91")
	if((caller.db.lethal == 3 ) and ( caller.db.bashing == 4)):
		caller.msg(prompt="92")

	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="93")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="94")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="95")
	if((caller.db.lethal == 4 ) and ( caller.db.bashing == 3)):
		caller.msg(prompt="96")


	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="97")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="98")
	if((caller.db.lethal == 5 ) and ( caller.db.bashing == 2)):
		caller.msg(prompt="99")

	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="100")
	if((caller.db.lethal == 6 ) and ( caller.db.bashing == 1)):
		caller.msg(prompt="101")

	if((caller.db.lethal == 7 ) and ( caller.db.bashing == 0)):
		caller.msg(prompt="102")

	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="103")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="104")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="105")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="106")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="107")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="108")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 6)):
		caller.db.target.msg(prompt="109")
	if((caller.db.target.db.lethal == 0 ) and ( caller.db.target.db.bashing == 7)):
		caller.db.target.msg(prompt="110")

	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="111")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="112")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="113")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="114")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="115")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="116")
	if((caller.db.target.db.lethal == 1 ) and ( caller.db.target.db.bashing >= 6)):
		caller.db.target.msg(prompt="117")


	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="118")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="119")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="120")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="121")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="122")
	if((caller.db.target.db.lethal == 2 ) and ( caller.db.target.db.bashing == 5)):
		caller.db.target.msg(prompt="123")

	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="124")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="125")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="126")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="127")
	if((caller.db.target.db.lethal == 3 ) and ( caller.db.target.db.bashing == 4)):
		caller.db.target.msg(prompt="128")

	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="129")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="130")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="131")
	if((caller.db.target.db.lethal == 4 ) and ( caller.db.target.db.bashing == 3)):
		caller.db.target.msg(prompt="132")


	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="133")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="134")
	if((caller.db.target.db.lethal == 5 ) and ( caller.db.target.db.bashing == 2)):
		caller.db.target.msg(prompt="135")

	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="136")
	if((caller.db.target.db.lethal == 6 ) and ( caller.db.target.db.bashing == 1)):
		caller.db.target.msg(prompt="137")
	if((caller.db.target.db.lethal == 7 ) and ( caller.db.target.db.bashing == 0)):
		caller.db.target.msg(prompt="138")




	caller.db.target.start_time = timer()

	defend_script = create_script("typeclasses.defendwait.DefendTime", obj=caller)
	defend_script.attacker(caller)
	defend_script.target(caller.db.target)

	text = ""
	options = ({"key": "|ydodge",
		"desc": "Avoid the attack.",
		"goto": "wait",
		"exec": "dodge"},
		{"key": "|yblock",
		"desc": "Block the attack.",
		"goto": "wait",
		"exec": "block"},
		{"key": "|yflee",
		"desc": "Run away.",
		"goto": "wait",
		"exec": "flee"},
		{"key": "|yskip",
		"desc": "Do nothing.",
		"goto": "skip_defend"})

	return text, options