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))
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
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))
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)
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)
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)
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'})
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'})
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)
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)
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)
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.")})
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)
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()
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".' )
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)
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())
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?"])
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())
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))
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())
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])
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.")
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()
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!")
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)
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)
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)
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!")
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", {}))
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
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])
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)
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
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
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'})
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
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)
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.")})
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()
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
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
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
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
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)
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)
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
def at_initial_setup(): from evennia import create_script create_script("typeclasses.scripts.WorldWind", key="WorldWind", obj=None) print "Initial Set up was run"
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