Time  Nick          Message
00:25 Volund        progress ! https://github.com/volundmush/evennia/blob/contrib_zone/evennia/contrib/factions/scripts.py
00:27 Volund        still needed:
00:27 Volund        FactionManagerScript (global script), lockfuncs, commands/interface
00:27 Volund        none of which should be difficult
00:30 Volund        finishing zones will be easy
00:30 Volund        I decided to do Factions and Zones in the same contrib.
01:45 chasonchaffin hello! I just started messing around with Evennia at the request of a friend who wants some help coding their game. I've been messing around with the custom gametime and I had a question: is it possible to fast forward, rewind, or pause the game time?
02:08 Volund        uhhhhhh
02:08 Volund        I've never actually looked at that module. I would assume so but...
02:08 Volund        lessee
02:10 Volund        it looks like it is technicaly possible but there is currently no interface for doing so
02:10 Volund        check out evennia/utils/gametime.py
02:11 Volund        though there's also a contrib/custom_gametime I see
02:11 Volund        hrm
02:11 Volund        they look eerily similar
02:11 Volund        I wonder what the story is there
02:12 Volund        well
02:12 Volund        it's not like a game time system is that difficult to code wholesale either.
02:55 Volund        huzzahluia
03:19 Volund        mwahahaa
03:19 Volund        I simply stuck the OptionHandler on the Factions
03:19 Volund        and it's working amazingly
03:19 Volund        now Factions can have a configurable color among other things
03:50 evdemo        [Public] bobbob just connected to the Evennia demo for the first time!
03:50 evdemo        [Public] bobbob disconnected from the Evennia demo.
03:53 DiscordBot    <Trayes> Anyone around that can answer questions?
03:53 DiscordBot    <Reilena> depends on the question!
03:54 Volund        yo
03:54 Volund        I'm around for a little bit more
03:54 DiscordBot    <Trayes> So I am building a mech game and I have people enter mechs to pilot them. The problem is that if I try to target someone or look around, I cant find them. The reason why is that I am INSIDE the mech. Is there a way to make it so that the commands while inside the mech work as if they were outside the mech?
03:55 DiscordBot    <Reilena> You'll probably want them puppeting a mech object rather than moving inside of one.
03:55 DiscordBot    <Trayes> things do work while they puppet, but is that the best way to go about that?
03:55 Volund        there are certainly ways to do this but
03:57 Volund        you're basically going to have to reconsider how your commands are structured. perhaps different commands control the mech from in person. maybe instead of 'look' it's 'scan' or 'view' which makes the MECH look and report the results to you
03:57 Volund        OR you could just have them puppet the mech but that causes a lot of weirdness
03:57 DiscordBot    <Trayes> Ohh I like that for thematic reasons.
03:57 DiscordBot    <Trayes> So I need to make all new commands while inside the mech
03:58 Volund        if people will -always- be in mechs, then maybe you could just program it so characters ARE mechs
03:58 DiscordBot    <Trayes> Nope. Players move in and out of mechs.
03:58 Volund        fair 'nuff
03:58 DiscordBot    <Trayes> Thank you for your help
03:58 DiscordBot    <Reilena> Sounds like a really cool concept btw
03:59 DiscordBot    <Trayes> I would go into it more here but I dont want to spam.
03:59 DiscordBot    <Reilena> 'vehicles' are fun.
04:00 DiscordBot    <Trayes> Mechs need to go through a startup sequence . This grants them skills that turn on targeting and weapons and whatnot. It looks like this "bug" will lead to a pretty cool feature
04:23 Volund        huzzah
04:23 Volund        I have Factions displaying properly
04:24 Volund        https://i.imgur.com/FsF1ckk.png
04:24 Volund        well more or less 'properly'
04:43 Volund        https://i.imgur.com/1ygIRAY.png
06:14 evdemo        [Public] Awdasea just connected to the Evennia demo for the first time!
06:15 evdemo        [Public] Awdasea disconnected from the Evennia demo.
06:20 chasonchaffin Volund: Thanks for replying earlier, I was away from my computer so I couldn't respond.
06:24 chasonchaffin I had another question. as a working python developer I found the installation instructions a little strange (grabbing evennia via github and installing from a local copy). Is there a reason it is recommended to install that way?
08:05 Griatch       chasonchaffin: The main reason is that Evennia's source itself is meant to be read and understood (with a very number of comments), so having the code easily available is useful and recommended. That said, we'll eventually make a pip package as well.
08:37 chasonchaffin ok! That's a very good reason. I guess not everyone using Evennia is going to be reading the source code on GitHub and a local copy is useful. If it helps to note, I installed it from the GitHub repo via pip directly and it works perfectly. :)
08:37 chasonchaffin thanks Griatch
08:42 Griatch       :)
08:43 chasonchaffin btw loving that this exists -- some of my first coding was MUSHcode back when I was a kid
08:44 Griatch       Cool :) I recently had a talk at a PyCon and talked about Evennia; I was surprised at how positive the reception was; a LOT of people have very fond memories of MU*s even though most don't know they still exist.
08:45 Griatch       I even met a random other person who was indedependently working on a mud client.
08:46 Griatch       chasonchaffin: You were helping a friend code a game you said? What style of game are you making?
08:46 chasonchaffin MU*s are probably the only MMO games I've been able to get into
08:46 * Griatch     is not big on other MMO games either
08:49 chasonchaffin so I started helping him and it has given me the itch to make my own as well. Their game is looking very MUD like, whereas the one I'm making is much more MUSH-ish but I'm planning on using the in-game menus as a way to interact with NPCs
08:53 Griatch       I see. Well, if you are a Python dev you should hopefully be able to find your way around relatively easily. Just ask (here or in the forum) if you have any questions or if stuff appears weird.
08:54 chasonchaffin yeah, I've been going through the contrib directory to make sure I don't reinvent the wheel and I'll be taking a closer look at the main codebase soon. Everything is VERY well commented so far, so good job :)
08:58 Griatch       Thanks, spent a lot of effort on docs. There'll always be places that could be better, but it's an ongoing effort.
09:01 chasonchaffin I wonder if there was ever a spec for MUSHcode, it might be fun to reimplement it in Evennia
09:03 Griatch       Ah, the age-long question. https://github.com/evennia/evennia/wiki/Soft-Code is Evennia's official policy on this.
09:05 chasonchaffin oh yeah there's definitely good reasons for not including it, especially by default. I've been on many MUSH/MUXes that were brought down by the softcode computations
09:05 chasonchaffin I was just thinking it might be fun :)
09:06 Griatch       Fair enough! To each their own. :)
09:55 evdemo        [Public] hungi just connected to the Evennia demo for the first time!
09:58 evdemo        [Public] hungi disconnected from the Evennia demo.
11:50 evdemo        [Public] idius disconnected from the Evennia demo.
12:40 Volund        I awaken
12:40 Volund        seems I missed chasonchaffin
12:40 Volund        fellow MUSHcoder huh? Don't see that every day
12:40 Volund        hey Griatch :D I'm still at it!
13:07 Griatch       Volund: Great!
13:07 * Griatch     is getting sick :(
13:07 Volund        threw in some more pull requests. But yeah progress with Factions and Zones is coming along nicely - ewwww. :(
13:07 Volund        don't get sick!
13:08 DiscordBot    <Chason> I'm here but on Discord now!
13:08 Griatch       I'll try to look at them but I feel a 'heavy head' coming on :/
13:08 Griatch       So need to spend my efforts at work stuff right now
13:08 Griatch       Hi Chason
13:08 Volund        so, the Faction Script (data storage and API) is about 80% complete and looking spiffy. I'm working on the commands right now so I can properly test said API.
13:08 Volund        The Faction system works like this:
13:11 Volund        Factions are collections of Characters. it doesn't matter if they're Mobiles or PCs. Factions have two forms of membership - basic, and main. Main members have ranks and titles. Ranks 1-4 are system provided and can only be changed in limited ways, but the leader (rank 1) is able to create new ranks and even permissions and assign them as they please.
13:11 Volund        Factions can 'own' other Factions, aka: Sub-Factions
13:11 Volund        all members of sub-factions no matter how deep are considered 'basic' members of parent factions up the chain.
13:12 Volund        at the same time, anyone who is rank 1-2 (I may change this to some specific permission) is considered Rank 0 of a subfaction - they supersede the sub-faction leader.
13:12 Volund        Permissions are things like 'who can add new members' or 'who can moderate'
13:13 Volund        though the latter doesn't mean anything right now since I didn't code group channels like I did in Penn
13:13 Volund        Factions also have locks. at the moment only the 'see' lock is meaningful
13:13 Volund        this means that Factions can be invisible to non-members/staff, for special/private ones
13:15 Griatch       Do you have to be based off the Character base typeclass or could any Object be used in principle ?
13:20 Volund        well
13:20 Volund        any Object could be in a faction sure
13:20 Volund        I'm not sure how much point a ROOM being in a faction has
13:20 Volund        no actual checks are made at the moment on the API side but I was going to make sure that the commands to put things in them can only target characters.
13:21 Volund        it would make more sense for a Zone to be assigned to a Faction
13:21 Volund        as their 'territory'
13:21 DiscordBot    <Chason> exits would be useful to allow/disallow people in factions for transiting
13:21 Volund        I don't currently have any idea what that would mean; it depends on what the game devs want it to mean
13:21 Volund        Chason: sure, but you can accomplish that with locks
13:22 Volund        which is why the faction contrib will also provide relevant lock-funcs
13:22 Volund        also
13:22 Volund        everything about Factions is configurable in settings.py
13:23 Volund        default rank names, permissions, what permissions are given to basic members or main members regardless of rank, what permissions are given to each rank. also what typeclasses are used for both the factionmanager script and factions - it will change the latter on the fly without data loss, presuming you didn't change anything about the basic data storage and just added new things
13:24 Volund        Factions also use the new Option system so you can do things like assign a color to a faction
13:24 Volund        so it shows up in color all over the place
13:25 Volund        see why I was big on that, Griatch? :D
13:25 Volund        faction.options.color = 'r'
13:25 Volund        boom :D
13:26 Volund        I stripped the Faction system down slightly from the MUSHcode version, but on the other hand the MUSHcode version doesn't have the tree structure subfactions thing going on.
13:27 Volund        which replaces the MUSHcode system's 'divisions' code which before was purely for display purposes and cosmetics, but now with Sub-Factions it's ten times more awesome
13:28 Volund        this allows for some fairly complex social arrangements of player or NPC organizations
13:29 Volund        so what are Factions good for? Well on their own not much. but with the lockfuncs, they're great for restricting access to areas, making faction-only channels, etc. combined with the Zones system it might be possible to have some kind of 'faction territory management'. With a reputation system built into things like Mobiles you might have Aggro-against-enemy-faction or give-discounts-at-stores to members of X faction...
13:30 Griatch       Sounds promising
13:31 Volund        :D and it's almost done
13:31 Volund        I expect to have it done in the next day or two
13:31 Volund        Zones will require far less effort since it's mostly a skeleton of a system people are meant to expand on. I'll be providing some of my MUShcode-style tools for it though - +roomlist and +port. might call it @zlist and @zport though
13:32 Volund        One of my ideas for Zones though is...
13:32 Volund        a builder can @zone/select <zone>, and then any rooms and exits they create using @dig and similar tools will be automatically added to the selected zone.
13:32 Volund        This requires some new Signals to work. which are in some of those pull requests
13:34 Volund        Infrastructure, Griatch. infrastructure. :D
13:34 Volund        Chason: So MUShcode background huh?
13:41 Kardon        Volund: I'm anxiously awaiting your contrib. :)
13:42 DiscordBot    <Chason> Volund: Yeah, though its been probably 15-20 years since I did any MUSHcode stuff
13:45 Volund        Oh, the community's gone into some pretty weird territory lemme tell ya Chason
13:45 Volund        https://github.com/volundmush/mushcode I spearheaded some of it. :D
13:45 DiscordBot    <Chason> haha yeah I've looked up some of it and it is almost unrecognizable
13:45 Volund        my MUSHcode style is pretty ridiculously idiosyncratic though. that's the price to pay for making it powerful and easy to build new features quickly
13:46 Volund        .. relatively speaking
13:46 Volund        Python blows it out of the water
13:48 DiscordBot    <Chason> I do think that my experience with soft code back in the day made reasoning about OOP much easier once I started learning real programming
13:48 Volund        Kardon: well hopefully Griatch won't get too sick on us. :(
13:49 Volund        because a lot of my things keep depending on slipping new infrastructure into Evennia. :o
13:49 Volund        Though Factions don't. and technically I can turn off that feature for Zones at the moment
13:50 Volund        I'm pondering what else to add as a Contrib. I know I'm going to make an FCList/Theme system. Also need some kind of 'character approval' tracker.
13:51 DiscordBot    <Chason> hmm what do you mean by character approval tracker? that sounds interesting
13:52 Volund        a lot of MUSH games allow you to create characters and then 'walk through chargen' after which an admin will review the character and give it their seal of approval for play. unapproved characters frequently cannot enter the game grid or use most of a game's channels; they're little better than Guests.
13:53 Volund        it's usually good to track logs of who approved who and when too
13:53 DiscordBot    <Chason> ahh yeah
13:55 Volund        FCList/Theme system meanwhile is used for indexing characters and whatever source they're from, usually for superhero or other theme games. in those games, the same character might change hands frequently between different players, or need to be flagged as 'open for application' or 'currently played'
13:56 Volund        or possibly 'dead'
13:56 Volund        That's not hard to code at all.
13:58 Volund        I'm trying to dump everything I possibly can that doesn't absolutely require Models in as Contribs
14:00 DiscordBot    <Chason> is it generally preferable for extensions to be written to go into the contribs directory or installable as pip packages?
14:01 Volund        Chason: You can certainly go with the pip packages approach if you want to. the point of the contribs directory is to have an always-available supply of stuff that one would HOPE is up to date and immediately usable, either for demonstration purposes of how to use Evennia or just as stuff that Simply Works
14:01 Volund        Griatch is very big on wanting people to make contribs. but the pip approach does work if you know what you're doing.
14:02 Volund        I originally went with the pip approach with my project 'athanor' as a framework that fits atop of Evennia, but I realize now that it's an overengineered pile of problems waiting to happen that nobody's going to use as-is
14:02 DiscordBot    <Chason> I'm rewriting the custom_gametime library for myself right now, I'll submit it as a patch when I'm done
14:02 Volund        custom gametime could probably use a massive overhaul. I know it would never work for my Exalted game for instance
14:02 Volund        Exalted's calendar is... weird
14:02 Volund        so like
14:03 Volund        it has 5 seasons - one for each of the elements, Wood, Earth, Air, Fire, and Water.
14:03 Volund        each season is split into three months, Ascending, Resplendent, and Descending.
14:03 DiscordBot    <Chason> haha I'm implementing the International Fixed Calendar in my game because I am a weirdo
14:03 Volund        each month has 28 days in it.
14:03 Volund        EACH DAY has 25 hours in it, for 2nd edition. 24 in 3rd edition.
14:03 Volund        AND THEN
14:03 Volund        AT THE END OF THE YEAR...
14:04 Volund        ... there's a tiny little period called Calibration, a 5 day long period where the night sky has no moon or stars, that does not belong to any specific month and is not technically 'part of the year' at all. it is the time in-between years.
14:04 Volund        :|
14:05 DiscordBot    <Chason> Yeah the int'l fixed calendar has a similar thing, its 13 months of 28 days each. That covers 364 days a year but then the last day of the year is "Year Day"
14:06 Volund        (I actually did code a calendar for Exalted. in MUSHcode. and it works great.)
14:07 Volund        I did it through division math largely. the number of seconds, divided up, can tell you which day it is, and the days always progress in the same order.
14:07 DiscordBot    <Chason> I actually think that would mostly work with the custom_gametime library
14:08 Volund        mostly
14:08 Volund        only Calibration throws it off
14:08 Volund        NOBODY EXPECTS CALIBRATION. I've yet to see a single programmed fictional calendar that is ready to deal with Calibration.
14:09 DiscordBot    <Chason> How I've got Year Day worked out is that the extra day is the "14th" month so the code checks if the month is 13 (since it is 0 indexed) and declares that year day
14:09 Volund        ah
14:10 Volund        okay so lesseee
14:13 DiscordBot    <Chason> the current custom_gametime library works by division like you said. So if you setup months to be.... 60 * 60 * 24 * 28 and then years to be (60 * 60 * 24 * 28 * 15) + (60 * 60 * 24 * 5) you should have a 5 day week at the end of the year. It'll technically still think its the same year but you can just make that part of the logic
14:14 Volund        :D
14:14 Volund        I didn't think about that...
14:16 DiscordBot    <Chason> The change I want to make is to make it more configurable where you can set days of the week, month names in settings.py instead of having to edit the code. Also I want to be able to set the start date
14:18 Volund        i agree wholeheartedly with that kind of adjustment
14:20 Volund        also woooooooo. getting these commands working.
14:24 Griatch       Chason: actually, what is in the custom_gametime library used to be in core Evennia. It was even configured in settings. We moved it into a contrib because this is such a game-custom thing and you are never going to account for every possible weird calendar out there.
14:25 Griatch       So today core evennia has the base game time (which is just the normal calendar) and the weird fantasy/sci-fi calendars are to be handled by the contrib on demand.
14:26 DiscordBot    <Chason> makes sense
14:27 Griatch       (this is also why the custom game time module looks so similar to the core gametime module)
14:28 Volund        aha
14:31 Volund        currently working on the group commands. I need to decide on how permissions will work...
14:31 Volund        like
14:31 Volund        should faction leaders be allowed to create their own sub-factions or should they need an admin to do this for them?
14:32 Griatch       Does it have to be hard-coded?
14:32 Griatch       Is it not just a permission you can tweak?
14:32 Volund        I'm pondering ways to do it.
14:33 Griatch       I'd say, allow for specifying permissions to go with each level
14:33 Griatch       Then define what those permissions allow you to do
14:33 Volund        yeah it currently does basically that
14:33 Volund        hrm.
14:34 Griatch       So you are concerned by sane defaults then?
14:34 Volund        only admin can create root factions, but I suppose it would make sense for faction leaders to be able to create sub-factions
14:34 Volund        yeah
14:35 Volund        maybe a Permission can handle who can administrate faction
14:35 Volund        s
14:35 Volund        like perm(Faction_Admin)
14:36 Volund        I could also create a custom lockfunc that responds to 'if you have this permission in ANY faction' but I'm not sure how well that would work efficiency-wise, not sure I'd want that running every single time someone types 'help'
14:38 Volund        there's really only one problem with Evennia permissions and it's that they are just arbitrary strings. there's no global register of what permissions are available, and what permissions are required to grant other permissions. :P but
14:38 Volund        hrm.
14:38 Volund        that wouldn't be hard to code though
14:39 Volund        the ability to create Permissions in some kind of database, and give each locks for who can grant/revoke them
14:39 Volund        leave the @perm command for superuser only then
14:40 Volund        well the raw granting thing anyways
14:40 Volund        actually that touches on a thing I am adding to evennia.utils.utils in the faction system
14:40 Volund        a utility can do something like this
14:40 Volund        @perm blah=!remove_this add_that !remove_other_thing
14:41 Volund        which supports PARTIAL MATCHING for each thing to add or remove
14:41 Volund        very handy for permissions
14:41 Griatch       As long as it carefully fails on multi-matches I guess that's fine.
14:42 Volund        it currently doesn't. wouldn't be hard to make it so though. my partial matcher works on the logic of 'organize all candidates by string length least to greatest, pick first match, preferring exact over partial, case-insensitive'
14:43 Volund        on the other hand, it supports matching against a list of OBJECTS instead of just strings.
14:43 Volund        though it CAN be a list of strings, sure
14:43 Griatch       By the way - don't embed too much stuff in one PR. Things like the @perm change could be its own PR; it has nothing to do with factions per se.
14:43 Volund        yeah
14:43 Volund        I was just using that as an example
14:43 Volund        PennMUSH lets you do things like set multiple powers/flags/permissions whatever on players at once, and simultaneously remove them
14:44 Volund        @set me=KEEPALIVE !DEBUG
14:44 Volund        would add the keepalive flag, and remove the debug flag
14:44 Griatch       The evennia utils has a partial matcher too
14:44 Volund        it does, but it works weirdly. I need to figure it out
14:45 Volund        and it only returns strings or indexes. It'd be nice if it could do string partial matching against a list of say, scripts
14:45 Volund        :D
14:45 Volund        based on what their __str__ returns
14:45 Griatch       Anyway, never just pick the first match, that's a dangerous move, particularly when you are dealing with permissions.
14:45 Griatch       So suggest an improvement to the utils matcher then
14:46 Griatch       No point in making a parallel one that does pretty much the same thing.
14:46 Volund        first I have to figure out how it works and how to change it without breaking whatever depends on it...
14:46 Volund        but point
14:47 Griatch       Evennia as a whole also never just picks-first in a multimatch but always warns. I think that's a sane default.
14:47 Volund        true
14:47 DiscordBot    <Chason> oh one question I had about gametime, is that I'm not quite sure what theabsolute flag does
14:49 Volund        I think I'm going to restrict it so that only admin can create Factions for the moment. for my simple implementation. it's just a command though - the API allows anything to happen as long as you can touch it.
14:49 Volund        cmd:perm(admin) or perm(Faction_Admin)
14:50 Volund        well the basic part of the API. the deeper stuff does require group permissions (which Admin all pass)
14:53 Griatch       Chason: The absolute time is the 'actual' time. Relative gametime is the time since the game started and absolute is the epoch + time passed since game started.
14:53 Griatch       The epoch in principle being settable by you (but defaults to the first time the server started)
14:54 Volund        the great thing about having a lot of the logic in the APi is that I can do this:
14:54 Volund        https://hastebin.com/amusayiniz.rb
14:54 Volund        check out switch_create
14:54 Volund        it's so TINY
14:54 Griatch       But you could say that the day you open your game is "day 0" and set your epoch to that.
14:54 Volund        err results.path_name
14:55 Volund        it works because
14:55 Volund        https://hastebin.com/tofadolure.py
14:55 Volund        _CmdBase :D
14:56 Griatch       So CmdBase will be used for all faction-related commands I take it?
14:56 DiscordBot    <Chason> oh ok so now I think I understand why my custom gametime was ignoring the epoch, because I was setting absolute to False
14:56 Volund        yeah
14:56 Volund        this is my usual pattern for commands where each switch confers utterly different functionality
14:56 Griatch       So CmdFactionBase may be a relevant name
14:58 Volund        and then I use Exceptions for all of my error messages so the command aborts right then and there. once ALL checks have passed it does what it needs to do.
14:58 evdemo        [Public] flip just connected to the Evennia demo for the first time!
14:58 Volund        this also means that the API can abort
14:58 Volund        because my API looks like this:
14:59 Volund        https://github.com/volundmush/evennia/blob/contrib_zone/evennia/contrib/factions/scripts.py
14:59 evenniacode   [fork] chason forked evennia https://github.com/chason/evennia
15:02 evdemo        [Public] toast just connected to the Evennia demo for the first time!
15:04 Volund        I should probably start getting ready to head to school but
15:05 Volund        wanna keep coding~
15:11 Volund        Griatch: I ponder the value or sanity of creating a contrib version of BBS that doesn't use models. It would be slightly simplified from what I run in MUSHcode due to not using SQL, and I question how well it would handle running for years straight... but it's actually doable.
15:12 Volund        It would be Myrddin's BBS, more traditional approach
15:12 Griatch       Or explore how to add optional models at unit-test time.
15:13 Volund        yeah :|
15:13 Volund        that would be the saner option
15:13 Griatch       (btw, all contribs must have unit tests, this is policy since about two years now)
15:14 Volund        Iiiii have no idea how to do those...
15:14 Griatch       Plenty of example in contrib/tests.py
15:14 Griatch       And a whole wiki page too
15:14 Volund        this is a problem, what if your system depends on having global scripts running or alterations to settings.py ?
15:15 Griatch       Yep, one needs to handle that in the test.
15:15 Volund        howwwwww does one handle 'adding a Global Script' to settings.py after settings.py has already been calculated...
15:15 Volund        uh
15:15 Griatch       One can mock things.
15:15 Volund        oh
15:16 Volund        you mean just inject it directly after the fact
15:16 Griatch       That is, instead of you actually setting things up, you use the mock library to inject a dummy thing at the point your code wants it.
15:16 Griatch       We use mocks extensively in the test suite.
15:17 Volund        hrn. not sure how well this would work. I decided that a lot of things work out of settings.py... argh
15:17 Griatch       You can mock settings too of course
15:17 Griatch       django even has its own decorator for it.
15:17 Volund        ah
15:17 Griatch       It's either @override_settings of @settings_override, don't recall which
15:19 Griatch       At any rate, I spent most of last month writing unit tests to increase coverage on py3; this is important stuff.
15:19 Volund        yeah I agree. I just shudder at the overhead and added complexity when I wanna get something out the door like, now. :P
15:19 Griatch       I should really start demanding unit tests on all contribs, but so far it's only required for contribs since they are particularly vulnerable to regressions when the server code changes.
15:19 Volund        but
15:20 Volund        learning to do tests is important
15:21 Griatch       Volund: Making unit tests is not particularly fun, no. It's tempting to just put something together and go with it. But it does help a lot with stability.
15:23 Griatch       I found that for some things it was also very useful to make unit tests just to have as quick testers/debuggers while developing. For example, when developing the new prototype extensions, I made a test suite that I just ran until I found no more errors. Much faster than to log into the game, reload and enter a command.
15:23 Volund        hahaha
15:24 Griatch       And then you just let those unit tests stay so that you know functionality remains unchanged later.
15:25 Griatch       (this is called 'test-driven-development' although I was never so extreme as to make the test before writing the code)
15:26 Volund        Griatch: so what's your view on Contribs that depend on other contribs? like for Factions and Zones, I created what's effectively an abstract class 'Tree Script.' It supports all of the hierarchy/children/parents stuff, name sanitization, creating and relocating Tree Scripts within their manager, and so on. Factions and Zones both use it as a parent (though Faction builds on it CONSIDERABLY more than Zones do).
15:27 Griatch       If they are multiple files depending on each other, it may be best to group them together in one folder. Not sure there is a common theme for factions and zones though.
15:28 Griatch       But generally, contribs are either a single file or a package
15:28 Volund        there isn't, apart from them both using Scripts for a Faction or a Zone and them being organized in a tree structure with the same rules applied to them. (you cannot have two Factions of the same name with the same Parent. or two root factions with the same name. case-insensitive.)
15:29 Volund        and both using the simple_name rules (only alphanumeric characters, spaces, periods, hyphens, and underscores allowed.)
15:29 Griatch       They do depend on the same parent though, which means a third file that is not itself a contrib.
15:30 Volund        why wouldn't it be a contrib? if other people want to use TreeScripts, why not? :D
15:30 Volund        I dunno what else they're good for though
15:30 DiscordBot    <Chason> when I am being a good person I write the simple tests first
15:30 Griatch       Still sounds like they belong in one package
15:30 DiscordBot    <Chason> then you know when your code is actually working
15:30 DiscordBot    <Chason> oh yes you basically already said that
15:32 Volund        hrngh.
15:32 evdemo        [Public] flip disconnected from the Evennia demo.
15:34 evdemo        [Public] toast disconnected from the Evennia demo.
15:35 Volund        I'm pondering the best way to proceed. I don't mind contributing to Evennia seriously but I don't wanna slow down my own project too much either, I'm having way too much fun coding and felt that I could have something seriously usable and presentable within a month. And (meaning no offense Griatch, as I totally understand why Evennia requires more stringent standards) I'm an impatient bastard who hates having to wait on other
15:35 Volund        people to get things done.
15:35 DiscordBot    <Trayes> Hey everyone. I have a question about being inside an object. Lets say I am inside my mech. Someone outside the mech says HEY. Can I hare them  in the mech? If not, how do I make it so that I can hear things intise the mech?
15:36 Volund        I might be better off accelerating effort on Athanor and taking a more systematic approach with Evennia itself
15:36 Volund        Trayes: by default no you cannot hear them. you'll have to add some kind of ability for the mech to 'listen to events that happen in the room and relay them to the cockpit'
15:36 Volund        this could be done any number of ways
15:37 Volund        you could modify how the say command works, sure. but it would probably be better to change how mech.msg() works so that it relays everything it sees to self.msg_contents()
15:37 DiscordBot    <Trayes> Thank you for your continued advice
15:38 Volund        look at how say currently works. I believe it relies on Object.msg_contents() where Object in this case is the room
15:38 Griatch       Volund: Well, you have worked on various incarnations of Athanor for four(?) years, mostly starting from scratch every six months. Is it too bad to make proper unit tests and actually lock in things you can use?
15:39 Volund        Griatch: It is certainly not bad to do so no. Though this time I actually have the skills to make something that WORKS. :D
15:39 Volund        ... after trying everything that doesn't a hundred times.
15:39 Volund        Though what was that saying? genius is ninety-nine percent perspiration and one percent inspiration?
15:40 Griatch       I think the global scripts and option system works well. But it does take a few rounds of revisions and polishing, that's just the nature of things.
15:40 Volund        what I've learned from coding is that you don't learn anything until you break everything a thousand times and come to understand 'why did it break'
15:40 Volund        only then will you know how to build something that will work right.
15:42 rnmissionrun_ What's up with the ugly hardcoded ANSI in the @options command?? https://imgur.com/a/u6AVdmm
15:42 Volund        check out @style - we're stil working on that one
15:42 Volund        @style border=r
15:42 Volund        THEn try out @options
15:43 Volund        this can all be changed around in settings.py
15:43 Volund        I personally picked the dark magenta and dark green color scheme because it has decent contrast but isn't so bright that it causes eye strain like c would do
15:44 Volund        I'm not sure how to merge the two commands properly. :|
15:44 Griatch       The
15:45 Griatch       The @option command could now in principle be made to use the new Option classes (since Options can be stored on whatever you specify).
15:45 Volund        what is that CURENTLY stored as? a lot of those options are... well
15:45 Volund        they look like low-level telnet things
15:45 Volund        a lot of them, automatically set
15:46 Griatch       It's only low-level client settings. If you save them they are stored in an Attribute as a dict
15:46 Volund        oh
15:46 Griatch       It allows you to override what your client tells you it supports for cases when clients don't TTYPE correctly.
15:47 Volund        which is frequently, I've noticed...
15:47 Griatch       Or you could lock-in the screenreader mode
15:47 Griatch       Many old clients don't TTYPE at all
15:47 Volund        and there's nobody around to maintain them.
15:48 rnmissionrun_ Is there not going to be a 'clean' branch Evennia without all this added stuff?
15:48 Griatch       So we try to guess based on the little info we can get. There is a hard-coded mapping in the Portal
15:48 Volund        rnmissionrun_: errr, what do you mean 'clean'?
15:49 Griatch       rnmissionrun_: What added stuff? The only things in core at this point is a handler for global scripts and a way to store Options in a generalized way.
15:49 Volund        you mean where there are no colors or options set? I guess that'd make sense
15:49 Volund        well I also changed every single command to use the style_table wrapper and gave it example default colors in settings_default which were never changed
15:50 Volund        so now every evennia command that returns a table does so in color. which is a good thing! in theory.
15:50 Volund        I noticed a few mistakes I need to fix though
15:50 Volund        which somehow the tests didn't catch
15:51 Griatch       May have to add new unit tests for them then
15:53 Griatch       You could just set empty strings to these base style options to get no colors at all.
15:53 Volund        or 'n'
15:53 Volund        'n' is better because at present the table styler does expect a color
15:54 Volund        if it has nothing to replace into that string it'll barf
15:54 Griatch       Hm, that's not so good actually
15:54 Griatch       It should probably default to not having any color at all
15:55 Griatch       even if the style is not set or included for example
15:57 Volund        did you maybe not even connect to the game or look at how style_table works? :( here
15:58 Griatch       Who?
15:58 Volund        https://github.com/evennia/evennia/blob/develop/evennia/commands/command.py#L478
15:58 Volund        I dunno, this is how it currently works.
16:00 Griatch       Yes? It does not set a default no-color if you don't specify something in your settings?
16:01 Volund        https://github.com/evennia/evennia/blob/develop/evennia/settings_default.py#L504
16:01 Volund        but a 'color' option does have to contain SOMETHING. it can't be 0 characters long. so 'n' is the best default for 'no color'
16:02 Volund        if it were 0 characters long, then the replace operation would end up with |<color><thing> being just |<thing> so it would treat characters from <thing> as part of the color code.
16:02 Volund        that's probably not what anyone wants
16:03 Griatch       Well, logic needs to handle it, sure. But if you wipe your color options from the settings (because you don't want them), the style_table will get None I think
16:04 Griatch       Or maybe it's a traceback on a missing option
16:04 Volund        if you entirely vemove everything from OPTIONS_ACCOUNT_DEFAULT, it'll traceback
16:04 Volund        because style_table wants border_color
16:04 Volund        well
16:04 Volund        maybe it won't traceback for this one because None CAN be coerced into a string
16:04 Volund        but it'll still not do what you want it to do
16:05 Griatch       Right. The styler should catch this case.
16:05 DiscordBot    <Kaleara> if there's a contrib that i think doesn't work anymore, should i bug it?
16:05 Griatch       Kaleara: Yes
16:06 Volund        I figured it would be good to spruce up the default commands with colors and more functionality because honestly, they're actually really good commands that are only missing a few things here and there
16:07 Volund        the only other thing that they're missing is a way to restrict them without having to recode them wholesale
16:07 Volund        though I can think of a way to do that
16:07 Griatch       Sure, but it's also true that some people despise color
16:07 Griatch       restrict them?
16:09 Volund        if I want @charcreate to be admin-only I currently have to either override it with a new @charcreate that has different locks or remove it from a cmdset outright. And there are a lot of commands that one might want to keep around but change their permission levels.
16:09 rnmissionrun  Grr. I need a new ISP :(
16:09 Griatch       I suppose we could change the style back to the more muted default colors of Evennia (basically just bold white for headers)
16:10 Volund        n and w yes
16:10 Volund        border_color n, header_text_color w
16:11 Volund        I'm still pondering the best way to go about stuff.
16:11 Griatch       Volund: Just making a child class of a command with a different locks: line seems a trival way to handle it
16:12 Volund        then you have to import it and add it and... yeah it's trivial I just always am wondering if there isn't some better way but I don't think there is.
16:12 rnmissionrun  I was under the impression that all the stuff Volund was working on, was going to be in the form of contribs that we could use or not, as we saw fit.
16:12 Volund        since there's no way to target the commands USING a command to alter their locks, and even if you did so it wouldn't stick
16:13 Volund        rnmissionrun: yes and no. I am trying to add things to Evennia for more infrastructure which will NOT get in your way, such as Signals. I am also working on contribs. you fell afoul of a WIP in the develop branch that's still being refined.
16:14 Volund        styling table probably does need some more refinment as does setting the default colors back to something boring
16:14 Volund        thankfully it's easy to override per-game because it's a dictionary
16:15 Volund        I just do OPTIONS_ACCOUNT_DEFAULT['border_color'] and boom I only replace the one option. :D
16:15 Volund        (thats WHY it was made a dictionary)
16:20 Volund        I think I'm going to do my rapid development in Athanor to figure things out, design stuff that works and then when I have something to show off we can figure out what can be turned into contribs. now that Evennia has the new features it does, I can drastically simplify what Athanor is
16:20 Volund        mostly just need those doggone signals
16:20 Volund        time to dash to class though
16:27 rnmissionrun  I dunno why you didn't just fork it and do your own thing so that plain Evennia could still be an option for those of us that prefer it.
16:31 Griatch       rnmissionrun: There will always be new things in core from time to time; this is no different from me adding prototypes; you can remove and ignore this like other things.
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Incomplete docstring. Need to describe `alternate_value` too[...] (https://github.com/evennia/evennia/pull/1812#discussion_r275884632)
16:44 evenniacode   [PR review] Griatch reviewed PR #1812 (Added flexible hooks functionality to @examine!): Better! But still too many new hooks (see comments). https://github.com/evennia/evennia/pull/1812#pullrequestreview-227306491
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Docstring needed. (https://github.com/evennia/evennia/pull/1812#discussion_r275885054)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Docstring needed. (https://github.com/evennia/evennia/pull/1812#discussion_r275884823)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: An incomplete docstring. (https://github.com/evennia/evennia/pull/1812#discussion_r275886786)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Need to specify the purpose of `*args` and `**kwargs`, not j[66 more] (https://github.com/evennia/evennia/pull/1812#discussion_r275886272)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Docstring needed. (https://github.com/evennia/evennia/pull/1812#discussion_r275884895)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: There is no reason to break this out into a separate hook li[163 more] (https://github.com/evennia/evennia/pull/1812#discussion_r275889260)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Missing docstring. (https://github.com/evennia/evennia/pull/1812#discussion_r275890038)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: This should also not be a new hook. Either embed it in `retu[51 more] (https://github.com/evennia/evennia/pull/1812#discussion_r275892565)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: The common name for this kind of entity in used in the API w[151 more] (https://github.com/evennia/evennia/pull/1812#discussion_r275891052)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Incomplete docstring. (https://github.com/evennia/evennia/pull/1812#discussion_r275890233)
16:44 evenniacode   [PR review] Griatch created review comment on PR #1812 (Added flexible hooks functionality to @examine!) for evennia: Similar for Objects; this should not be a new hook. (https://github.com/evennia/evennia/pull/1812#discussion_r275891703)
16:46 evenniacode   [pull request] Griatch merged PR #1813 (Added at_object_creation_copy hook to DefaultObject.) to evennia/copy_hook https://github.com/evennia/evennia/pull/1813
16:46 evenniacode   [push] Griatch pushed 3 commits to evennia/develop (https://github.com/evennia/evennia/compare/b961f282c247...6807d3c65841):
16:46 evenniacode   [Andrew Bastien]: Added at_object_creation_copy hook to DefaultObject.
16:46 evenniacode   [Andrew Bastien]: Refactored the copy hook and added Kwargs.
16:46 evenniacode   [Griatch]: Merge pull request #1813 from volundmush/copy_hook\\Added at[44 more]
16:46 evenniacode   [issue comment] Griatch commented on issue #1813 (Added at_object_creation_copy hook to DefaultObject.) in evennia: Looking good now, thanks! (https://github.com/evennia/evennia/pull/1813#issuecomment-483746765)
16:58 evenniacode   [issue comment] Griatch commented on issue #1828 (Added Base Typeclass loading to Evennia API.) in evennia: It's not been done mainly because it used to be a circular i[206 more] (https://github.com/evennia/evennia/pull/1828#issuecomment-483758370)
17:13 evenniacode   [PR review] Griatch reviewed PR #1827 (On-Creation + Creator Signals): I think this makes sense; it feels a little wasteful to add[531 more] https://github.com/evennia/evennia/pull/1827#pullrequestreview-227326004
17:13 evenniacode   [PR review] Griatch created review comment on PR #1827 (On-Creation + Creator Signals) for evennia: This is the wrong place to put this signal - because this me[154 more] (https://github.com/evennia/evennia/pull/1827#discussion_r275900121)
17:18 Volund        so put everything in Class.create() the
17:19 Volund        then
17:19 Volund        makes sense
17:19 Griatch       Well, creation signals belong in utils.create
17:20 Volund        they do need to know who made them to really have meaning though.
17:20 Griatch       Yes?
17:21 Griatch       Class.create calls utils.create
17:21 Volund        I need a bit to look over that critique and what I did because that was yesterday. :D
17:23 Griatch       Volund: I found one drawback of the option system btw
17:23 Griatch       There is currently no way to wipe your customization to go back to the default. Just setting your option to the default won't do - then changing settings still won't affect you.
17:25 DiscordBot    <Trayes> Having a problem. Can someone look at this. I am doing the  basic MUSH tutorial and this this problem. https://pastebin.com/pxEN7DEN
17:26 rnmissionrun  Needs more context, what is 'power'?
17:26 DiscordBot    <Trayes> The tutorial has you make 2 stats.
17:27 DiscordBot    <Trayes> self.db.power self.db.combat_score
17:28 rnmissionrun  Where does the variable 'power' get defined?
17:28 Volund        Griatch: it's easy enough to just delete all of the Option attributes or add a /clear <option> feature
17:29 Volund        in the original setup, if you change a setting to its default, it will just wipe the setting and use the default
17:29 Volund        did that not make it to the final product? I forget. gotta check
17:29 DiscordBot    <Trayes> rnmissionrun: Thats the part I dont know myself. I dont know what it means to be defined. This is the tutorial. Should be a quick look to see if they did define it.
17:29 DiscordBot    <Trayes> https://github.com/evennia/evennia/wiki/Tutorial-for-basic-MUSH-like-game
17:30 Griatch       Volund: Maybe it did actually
17:30 Griatch       But probably not; you'd need a delfunc as well to know how to delete
17:30 rnmissionrun  Ah, it's just a number
17:30 rnmissionrun  power = int(self.args)
17:31 rnmissionrun  Maybe you left out that line?
17:31 DiscordBot    <Trayes> I will keep looking.
17:33 DiscordBot    <Trayes> Found it!. Thank you
17:33 rnmissionrun  De rien!
17:33 DiscordBot    <Trayes> I am still new to all of this. So dumb mistakes happen a lot
17:33 rnmissionrun  We've all been there ;)
17:35 Volund        Trayes: one thing that you could consider is a command like 'control' that simply causes the mech to mech.execute_cmd(blah)
17:35 Volund        couple that with overriding mech.msg() like I suggested earlier and you have a fairly simple implementation of a vehicle that relays everything it sees to its contents
17:36 DiscordBot    <Trayes> Everything you say, I just copy and past into a Notepad so I can try to understand it as I get better.
17:36 Volund        heh
17:37 DiscordBot    <Trayes> another thing I want to do with that system is add STATIC inside of Say messages. For thematic reasons. But that is very low priority right now.
17:38 Volund        there is a language contrib that may give you some insight into modifying what people are saying on the fly
17:38 Volund        I need to examine .msg() more myself
17:38 DiscordBot    <Trayes> Cool. Thanks again for all the help.
17:41 evdemo        [Public] aaron just connected to the Evennia demo for the first time!
17:43 Volund        I'm starting to get ideas about how to best utilize obj.msg() for my code
17:43 evdemo        [Public] noctis just connected to the Evennia demo for the first time!
17:44 evdemo        [Public] randomrandom just connected to the Evennia demo for the first time!
17:46 Volund        I ponder
17:46 evdemo        [Public] randomrandom: hi
17:46 evdemo        [Public] randomrandom disconnected from the Evennia demo.
17:47 evdemo        [Public] aaron disconnected from the Evennia demo.
17:48 Volund        I wonder if it's possible to inherit from ContentsHandler and rewire it to support concepts like weight and volume.
17:48 Volund        make it so that thing.contents will not contain their equipped items too
17:49 Volund        this seems like it'd be more natural than what I'm currently doing
17:49 Volund        fit in better with Evennia's default commands. I'd probably override those -anyways- but
17:50 Volund        I should look into that for my MUD code
17:52 Volund        that would in fact probably be way more Pythonic and Evennia'ish of an approach
17:56 Volund        what the hell is happening here? https://github.com/evennia/evennia/blob/master/evennia/objects/objects.py#L260
17:57 Volund        isn't this basically what the @property decorator does?
17:57 Volund        hm... interesting. INTERESTING
17:58 Volund        I -can- do that
17:58 Volund        that'd be awesome
17:58 Volund        replace ContentsHandler with all the code needed to do what I want to do and have it exclude equipped items by default from display
18:02 Volund        god I love Python
18:05 slackfriarzen <friarzen> wow, lots of people logging into the Evennia demo today.
18:06 slackfriarzen <friarzen> <finally catches up on scrollback>
18:06 evdemo        [Public] Alexia just connected to the Evennia demo!
18:07 slackfriarzen <friarzen> hello to everybody in the Evennia demo :)
18:07 slackfriarzen <friarzen> (from IRC)
18:07 slackfriarzen <friarzen> you can use 'pub some-message-here' to chat with us.
18:07 evdemo        [Public] Alexia disconnected from the Evennia demo.
18:09 Volund        think I'll focus on schoolwork for now; will get coding after I make some progress here
18:16 Volund        dang I am learning so much
18:17 Volund        aaaaaah it makes me want to code but I have to do these stupid online quizzes
18:27 evdemo        [Public] dorkguy just connected to the Evennia demo for the first time!
18:28 evdemo        [Public] dorkguy disconnected from the Evennia demo.
18:41 DiscordBot    <Trayes> Some of these tutorials have not been stupid checked.
18:41 DiscordBot    <Trayes> I cant figure out where to put this stuff. To make the +attack command available to you in game, go back to mygame/commands/default_cmdsets.py and scroll down to the CharacterCmdSet class. At the correct place add this line:  self.add(command.CmdAttack())
18:42 Volund        do you see the method called at_cmdset_creation ?
18:42 DiscordBot    <Trayes> where would I see that
18:43 DiscordBot    <Trayes> Yes
18:43 Volund        it goes there. :) presuming that you imported it
18:43 DiscordBot    <Trayes> https://pastebin.com/2uV0QyZR
18:43 DiscordBot    <Trayes> That is where I had it, and its not showing up.
18:44 DiscordBot    <Trayes> So maybe I am doing the import wrong.
18:44 Volund        what is your import line?
18:46 DiscordBot    <Trayes> from evennia import default_cmds from evennia import CmdSet from commands import command
18:47 DiscordBot    <Trayes> that sin default_cmdset.py
18:47 Volund        uhhh
18:47 Volund        so it's from commands import command ?
18:47 Volund        that SHOULD work... if command has a CmdAttack()
18:47 Griatch       Make sure you add it to the right cmdset (the characer one). Otherwise - check log for tracebacks
18:48 DiscordBot    <Trayes> FOUND IT... I love you guys
18:48 DiscordBot    <Trayes> class CmdAtack(Command):
18:48 Volund        well that would do it
18:48 DiscordBot    <Trayes> Thats the bug
18:49 DiscordBot    <Trayes> This is what I get for typing all the code out instead of copy and paste.
18:49 DiscordBot    <Trayes> but its how i learn
18:49 Volund        yeah that would definitely do it.
18:49 Volund        systematic approach to debugging really does help. sounds like you're a bit new to Python?
18:50 DiscordBot    <Trayes> New to programming in general. My ENG always built me tools in unity to build our games. This is my first solo project. So I am making tons of noob mistakes.
18:51 Volund        ah. I see. well, Evennia's a pretty good choice for learning. some of what happens in its guts is really complex but the beauty of Evennia is you don't need to care about that; just write some commands and run 'em
18:52 DiscordBot    <Trayes> I have noticed.
18:52 Volund        heck that's actually the beauty of Python in general
20:47 keira_luna    hi, trying out building a mud on my local machine for fun using evennia -- annd I forgot my password. Is there a way to reset it or... ?
20:50 chainsol      hmm, you could do it, yeah!
20:50 chainsol      gonna need to know some SQL, one moment
20:51 chainsol      ooh, or just use evennia shell, one moment!
20:52 chainsol      even easier - evennia changepassword <username>
20:52 keira_luna    nice!! thank you!!
21:15 evdemo        [Public] thorbus1 just connected to the Evennia demo for the first time!
21:16 evdemo        [Public] thorbus1 disconnected from the Evennia demo.
21:30 slackfriarzen <friarzen> Hmm....
21:31 slackfriarzen <friarzen> So for this one room challenge, I think I'm going to have to rework how everything in a room works to match a tag
21:31 evenniacode   [push] Griatch pushed 1 commit to evennia/develop: [Griatch]: Set default color style closer to Evennia default
21:32 evdemo        [Public] noldorf just connected to the Evennia demo for the first time!
21:33 slackfriarzen <friarzen> Hi noldorf
21:33 evdemo        [Public] noldorf disconnected from the Evennia demo.
21:34 slackfriarzen <friarzen> Bye noldorf
21:36 slackfriarzen <friarzen> It would be interesting to see why so many of these people that are connecting today disconnect so quickly
21:38 Griatch       My guess is that these are people who don't know how a mud works at all - they see a link to 'play online' and is lost when they only see text.
21:42 slackfriarzen <friarzen> Are they mostly all connecting using the web client then?
21:44 Griatch       I suspect so, if they come via a telnet client they are supposedly skilled enough to at least check out what is available.
21:44 Griatch       The alternative is of course that they really, really don't like what they see. But not sure how much of an impression you can make in just a few seconds.
21:45 slackfriarzen <friarzen> I guess that's an interesting question.  Is the client type  logged anywhere
21:46 Griatch       No
21:48 slackfriarzen <friarzen> I guess that's room for another infrastructure advancement then
21:49 rnmissionrun  I've said before that there is nothing on that test site to grab anyone's attention.
21:50 Griatch       They do log in though, they should at least be able to read the first introduction and be told that there is a tutorial to play?
21:55 rnmissionrun  I'm curious to know where they discovered the link to the site in the first place
21:58 slackfriarzen <friarzen> Yeah agreed
21:58 rnmissionrun  MU*s are so niche today that they are difficult to stumble upon by accident
21:58 rnmissionrun  That means they looked for something and found a reference to the site
21:59 slackfriarzen <friarzen> I did notice /r/mud posted a listing of code bases on the sidebar recently
21:59 rnmissionrun  I have noticed more ads for Evennia based games appearing on the mudconnector
21:59 Volund        I do wonder how many of the people connecting even understand what they've connected TO
22:00 Volund        a lot of them are also probably looking for a GAME because a lot of players aren't in the know enough to understand what an open source programming project is when they see it
22:00 rnmissionrun  If I had to guess, I'd say that most of these folks are Arx players looking for more information on the server and discovering something they did not expect
22:00 Volund        and when they see there's nothing there to do...
22:05 Griatch       There are things to do, but if you can't read the intro I guess you are not really trying either.
22:06 Griatch       That said, the demo's target audience is not really players of course
22:06 castlelore    my gosh that root puzzle is hard
22:06 Griatch       Is it?
22:07 Volund        so I realized a bit ago, Griatch:    I can replace the ContentsHandler with an updated version that handles volume, weight, item capacity, stacking, all that stuff I coded into a buch of other things. :o
22:07 Griatch       I can't tell if people joke about things like that
22:07 castlelore    not that it's a bad thing!
22:08 castlelore    a good game should be super challenging
22:08 Volund        not necessarily.
22:08 Griatch       That's interesting. The main issue with it is really to understand the difference between horizontal and vertical roots and that you need to move them all to the sides ...
22:08 Griatch       I'd say it would be trivial if presented graphically, but in text one has to picture the roots more
22:09 rnmissionrun  Would be nice to have a brief survey people could fill out, with questions like "how did you first hear about Evennia"
22:11 Volund        I'm tryin gto remember, honestly
22:12 Volund        I think I was looking for MUSHcode repositories besides mine
22:12 Griatch       Volund: Replacing the ContentsHandler on your custom typeclass is an interesting solution.
22:13 Volund        well I am pondering various ways to go about it. I can either do that, or create an 'inventory' property that does something similar but excludes certain things
22:20 Volund        but 'contents' is what Evennia default stuff works with so
22:26 slackfriarzen <friarzen> I found the vines puzzle to be very very easy compared to getting the darn stick to light.  I think my first time through, the first 3 tries all randomly rolled the same "it didn't work" result, so I was pretty  convinced I had to do something else first, before I got eaten by a Grue.
22:27 chainsol      The vines puzzle really confused me, heheh.
22:28 slackfriarzen <friarzen> Then one of my random flailing attempts to create wood sticks confused the parser and it mentioned "did you mean 'light'?" and so I tried one last time and it worked.
22:28 Volund        we need to code scribblenauts in evennia
22:28 * Volund      random
23:06 Volund        I'm starting to get the feeling that maybe I should go the way of arx and etc and just create a 'mygame' with all of my stuff as a base
23:06 Volund        git makes this doable
23:06 Volund        much more doable than I first thought it would be
23:10 Volund        the mygame is laid out way better
23:11 Volund        and the more that I   code the more I realize Athanor is an overengineered, unusauble mess that serves no real purpose. it was a COOL IDEA to make it a big plugin platform but
23:11 Volund        and I learned a LOT from that effort
23:17 Volund        saying that now is probably going to make more than a few people facepalm
23:18 DiscordBot    <Trayes> I will facepalm in solidarity
23:19 DiscordBot    <Trayes> however, my understanding of the situation is minimal
23:27 evdemo        [Public] donkey123 just connected to the Evennia demo for the first time!
23:31 evdemo        [Public] donkey123 disconnected from the Evennia demo.