Skip to content

Commit

Permalink
Merge branch 'master' into feature/#17/mobprog
Browse files Browse the repository at this point in the history
  • Loading branch information
duysqubix committed Dec 5, 2020
2 parents 61c8a7d + 6d6c8b0 commit b94068b
Show file tree
Hide file tree
Showing 20 changed files with 20,512 additions and 179 deletions.
11 changes: 0 additions & 11 deletions .gitignore

This file was deleted.

1 change: 0 additions & 1 deletion commands/act_movement.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ def func(self):

# double check to make sure destination room actually exists
room = search_object(str(exit), typeclass=Room)
ch.msg("{}{}".format(exit, room))
if not room:
logger.log_errmsg(
"Attempting to move to a valid exit vnum, but room doesn't exist"
Expand Down
3 changes: 2 additions & 1 deletion commands/default_cmdsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ class GodCmdSet(CmdSet):
def at_cmdset_creation(self):
self.add(wiz.CmdDBDump())
self.add(wiz.CmdBookLoad())
self.add(CmdDBLoad())
self.add(wiz.CmdDBLoad())
self.add(wiz.CmdLanguageUpdate())


class AccountCmdSet(default_cmds.AccountCmdSet):
Expand Down
44 changes: 36 additions & 8 deletions commands/informative.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
"""
holds informative type of commands
"""
from time import time
from evennia.contrib.rplanguage import obfuscate_language
from world.calendar import DAYS, DAYS_IN_WEEK, HOLIDAYS, MONTHS, START_ERA, START_YEAR
from world.paginator import BookEvMore
from evennia import EvForm, EvMore
from evennia import EvForm, EvTable
from evennia.contrib import custom_gametime
from evennia.utils import evmore
from evennia.utils.utils import inherits_from
from commands.command import Command
from world.utils.utils import can_see_obj, is_book, is_container, is_equipped, is_invis, is_obj, is_pc_npc, is_wielded, is_worn, match_name, parse_dot_notation
from world.utils.utils import can_see_obj, capitalize_sentence, is_book, is_container, is_equipped, is_invis, is_obj, is_pc_npc, is_wielded, is_worn, match_name, parse_dot_notation, rplanguage_parse_string
from evennia.utils.ansi import raw as raw_ansi


Expand Down Expand Up @@ -138,11 +138,24 @@ def show_book(book):
contents = book.db.contents
date = book.db.date

book_contents = f"\n|gTitle|w: {title}\n|gAuthor|w: {author}\n|gDate|w: {date}\n\n|n{contents}"
book_contents = f"\n|gTitle|w: {title}\n|gAuthor|w: {author}\n|gDate|w: {date}\n\n|n"
# evmore.msg(ch, book_contents)
form = EvForm("resources.forms.book")
form.map(cells={1: book.db.title, 2: book.db.author})
BookEvMore(ch, book_contents)

# translate book into language as specified in book extra settings
book_lang = book.db.language
lang_skill = ch.languages.get(book_lang, None)
if not lang_skill: # language doesn't exist
BookEvMore(ch, book_contents + contents)
else:
ch.debug_msg(book_lang, lang_skill)
contents_translated = obfuscate_language(contents,
level=1.0 -
lang_skill.level,
language=book_lang)
contents_translated = capitalize_sentence(contents_translated)
BookEvMore(ch, book_contents + contents_translated)

if not self.args:
ch.msg("what do you want to read?")
Expand Down Expand Up @@ -317,14 +330,15 @@ def func(self):
# attempt to look for edesc in room itself
edesc = location.db.edesc
if obj_name in edesc.keys():
msg = f"\n\n{edesc[obj_name]}"
msg = f"\n\n{rplanguage_parse_string(ch, edesc[obj_name])}"
evmore.EvMore(ch, msg)
return
# look for obj in room
for obj in ch.location.contents:
if obj.db.name:
if obj_name in obj.db.name:
ch.msg(obj.db.edesc)
edesc = rplanguage_parse_string(ch, obj.db.edesc)
ch.msg(edesc)
return
# try looking for an obj in your inventory, if found send back edesc
for obj in ch.contents:
Expand All @@ -335,6 +349,7 @@ def func(self):
if not edesc:
ch.msg("You see nothing interesting.")
else:
edesc = rplanguage_parse_string(ch, edesc)
ch.msg(edesc)
return
ch.msg("You don't see anything like that.")
Expand Down Expand Up @@ -395,7 +410,6 @@ def green_or_red(num):
else:
return f"{num}"

#TODO change path to EvForm to use
form = EvForm("resources.score_form")
form.map({
1: ch.name.capitalize(),
Expand All @@ -422,4 +436,18 @@ def green_or_red(num):
22: green_or_red(ch.attrs.AR.value),
23: green_or_red(ch.attrs.MAR.value)
})

languages = [
x.capitalize() for x in ch.languages.all()
if (x != 'name') and (ch.languages.get(x).level > 0.0)
]
lan_skill = [
x.name.capitalize() for x in ch.languages.all(return_obj=True)
if x.level > 0.0
]
table = EvTable("Language",
"Rank",
table=[languages, lan_skill],
border='incols')
form.map(tables={"A": table})
ch.msg(form)
29 changes: 27 additions & 2 deletions commands/wiz.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from json import dump
from world.languages import VALID_LANGUAGES
from world.utils.db import search_objdb
from commands.act_item import CmdWear
from commands.act_movement import CmdDown, CmdEast, CmdNorth, CmdSouth, CmdUp, CmdWest
Expand Down Expand Up @@ -26,6 +27,30 @@
]


class CmdLanguageUpdate(Command):
"""
Update language system.
Usage:
language_update [force]
"""

key = 'language_update'
locks = f"attr_ge(level.value, {GOD_LVL})"

def func(self):
ch = self.caller
args = self.args.strip()
force = False
if match_string('force', args):
force = True

for cls in VALID_LANGUAGES.values():
lang = cls()
ch.msg(f"Updating: {lang.__lang_name__}")
lang.add(override=force) # add langauge and overwrite


class CmdDBDump(Command):
"""
Dumps zones/objects/room/mobs into json flat files.
Expand Down Expand Up @@ -275,7 +300,7 @@ def func(self):
border='incols')
objs = search_objdb('all')

for vnum, obj in objs.items():
for vnum, obj in sorted(objs.items()):
data = objdb[vnum]
vnum = raw_ansi(f"[|G{vnum:<4}|n]")
sdesc = crop(raw_ansi(data['sdesc']), width=50) or ''
Expand Down Expand Up @@ -308,7 +333,7 @@ def func(self):
objs = search_objdb(criteria, **{extra_field: extra_criteria})
else:
objs = search_objdb(criteria)
for vnum, obj in objs.items():
for vnum, obj in sorted(objs.items()):
vnum = raw_ansi(f"[|G{vnum:<4}|n]")
sdesc = crop(raw_ansi(obj['sdesc']), width=50) or ''
table.add_row(vnum, sdesc, f"{obj['type']}")
Expand Down
Loading

0 comments on commit b94068b

Please sign in to comment.