GithubHelp home page GithubHelp logo

scrolls's Introduction

master-branch-build-status master-branch-build-status

The Unofficial Elder Scrolls Mud

Welcome, traveler, to the Unofficial Elder Scrolls Mud. A project that I am shocked hasn't been undertaken in the world of muds. This is an attempt to bring the world of Tamriel to the comfort of your terminal and/or client. Based roughly on the rules on UESRPG 3rd edition.

The game is open source for now to attract the curious folks and to help contribute to the code. I would like to think that there are folks out there, as excited as myself, to see a elder scrolls mud.

The game is powered by Evennia, but rewritten to resemble the look and feel of Diku/ROM style of muds. Visit the roadmap to see future planned features and currently completed features. Please visit our contribution guidelines if you would like to help out.

UESM is built on the idea of a structured hierarchy of wizards, each level having a higher level of power than the next. I would welcome the opportunity to have folks volunteer to become builders (folks who are assigned zones and build to their hearts) content. Though at this stage I wouldn't build anything that you would cry over if lost simply due to the current state of the project.

The game is currently in pre-alpha stage.

The quickest way is to drop by and say hi on our webclient or point your telnet client to mud.scrollsmud.com 4040

Contribution

There are many ways to contribute to the project. If you would like to install this mud on your development environment, follow the steps highlighted in contribution

scrolls's People

Contributors

duysqubix avatar j3b4 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

chrislr j3b4

scrolls's Issues

Book Reading System

Emulate the traditional book reading system that is found in all ES games.

  • shows book ascii art when reading book objects
  • attach conditions when reading a book: like spells or temporary conditions

Redit: implement save feature while in room

As a wizard when editing rooms. I would like the ability to save my work while editing it.

Acceptance Criteria:

  • implement a save feature that saves the room
  • automatically save any room changes when moving between exits while in redit mode

Implement Diseases

ability to attach diseases to objects, weapons, attack types etc.. making diseases extendible so that it can used interchangeably where appropriate.
In all, diseases shouldn't be created to tailor a specific system within the game.

Implement Doors

As a player within the mud, i want the ability to interact with doors. I want to be able to open & close them as I see fit.

Acceptance Criteria:

  • Ability to open a closed door
  • Ability to close an open door

Tutorial Academy

This feature probably won't be implemented until some basic functionality of the game is more mature, but creating a starting place for new players (after character generation) to start their adventure. This zone will teach the basics of the mud and showcase how scripts that are attached to mobs/rooms/objects make the game come alive instead of it being static.

alter dbdump to be zone specific

As a high level wizard or ultimate user I want the ability to save world changes to json files that are related to the zone that I am assigned.

Acceptance Criteria:

  • rooms, objects, mobs, trigs must be associated with a zone
  • dbdump only will work with GOD_LVL and higher
  • dbdump will only persist if assigned a zone and only zone artifacts

Spell Tomes

Give certain books ability to be turned into spell tomes (maybe a different but similar object type)

Tomes have the ability to grant temporary (or in rare cases) permanent affects to the ones who read it.

It can alter

  • stats
  • Characteristics
  • Conditions

For non-permanent affects a script should be created that controls when to reverse the affects.

Implement Alchemy

Similiar to #11, but based on alchemy skill and using local flora and organic material to concoct brews and potions.

Next available vnum doesn’t account for multiple builders

When a new object, room, etc that utilizes vnums are added, it generates the new vnum by getting the Max value of the blueprint database and incrementing by 1. However, that exists in memory only when assigned. Meaning that if more than one builder both create a new entity that isn't saved yet they could run into a data race whereby they both would be editing a entity with the same vnum.

Must find a way to that when a builder calls , next available vnum that it won't collide

configurable prompt

As a player I would like to configure my prompt using a series of tokens that represents attributes.

Acceptance Criteria:

  • Ability to display health, stamina, magika, speed, and carry

Dynamic In-Game Map

Develop in-game map that is configurable (user either wants it or not)

Available by a command, and displays when moving above room name.

Implement Smithing

The ability to use objects to smith weapons and armor.

Not much thought has gone into this, open for ideas and implementations.

What immediately comes to mind is having raw ores and materials be used to craft armor/weapons the effectiveness of equipment is based on smithing skill

WizHelp Command

create a wizhelp command that categorizes the command based on wizard levels

Implement Custom Object Types

A list of different object types that are unique to UESM

  • weapons
  • equipment
  • containers
  • books
  • staves
  • tomes/spell books

(OLC) Script Capabilities on Rooms/Mobs/Objects Triggers

Implement a trigger/script functinality for appropriate entities (mobs, objects, and rooms)

The scripting language can either be python or MOBprog, either way the script is attached to an entity with an appropriate trigger.

Thoughts on triggers for specific entities:

Room

  • on entry
  • on exit
  • on look

Objects

  • on drop
  • on pickup

Mobs

  • on kill
  • on say
  • on examine, etc...

JSON can’t encode int64 type

when trying to do a dbdump to save blueprint database to json files, it seems that the integers stored on mobs are np.int64 type which is incompatible with json.

Need to convert all integers to json valid objects.

Implement Immunities on Character

Right now immunities on character is stored on attrs property as a dictionary of lists each pertaining to an immunity in a categorty

        self.add_attr('immunity', {
            'poison': [],
            'disease': [],
            'conditions': []
        })

Change this so that the immunity is a class that stores this information, as methods can be applied to add/remove/edit current immunities.

Add new attributes to character without running at_object_creation()

New attributes can come and go, not evennia Attributes,

but instead character.db.attrs.

Unfortuantly as it stands, to add new attributes and for existing players to see new attributes, it would require one to run the
at_object_creation() method, which overwrites and wipes player information. This feature needs the ability to retain old information while adding new attributes.

Wielding weapon vanishes upon reload

If you wield a weapon it shows wielded, but upon a reload of server it doesn’t show up anymore.

However printing the raw ch.contents shows that it still is in the players content

(OLC) Implement Zone Resets

Each room in a zone has a blueprint of objects to load upon a reset

ex: mobs, objects, objects within containers, mobs inventory, etc..

that is reset periodically

(OLC) Auto leveling Mob

This depends on #18 to be in a working state, and possibily more mud functions to be more mature and fleshed out, but auto leveling the mob so that a builder doesn't have to deal with the basic dam_roll categories and dam_hit and armor values.

(OLC) Edit/remove/add mob blueprints

Implement a MEdit feature that allows creating new mobs and definiing basic traits about them.

  • name
  • short description
  • long description
  • level
  • gold (coins when killed)
  • mob flags (TBD)

(OLC) Implement working room flags

redit has ability to flag rooms with tags, but tags don't do anything yet.

  • dark (players can't see without lightsource or applicable spells)
  • no_mob (no npcs are allowed in room)
  • solitary (only a single pc is allowed at a time in room)
  • safe (no violence is allowed)
  • no_summon ( npc/pcs are not able to be summoned while in room)

Implement Skills

There aren't defined skills like spells are in the UESRPG 3e rule book, but skills individual skills (both passive and active) should be created like (backstab, punch, kick, hide, sneak) and have associated skill ranks to them:

  • Untrained
  • Novice
  • Apprentice
  • Journeyman
  • Adept
  • Expert
  • Master

Implement Enchanting

The ability to enchant armor and weapons.

Not much thought has been put into this yet, so I am up for anything. As long as it follows the UESRPG guidelines

Implement Language

Implement Languages of Tamriel and add to character generation.

  1. Create static repository of languages
  2. add to languages to character generation, depending on race
  3. add languages as a attrs on character

Implement Spells

Implement spell system based on UESRPG3e

There is no concept of classes, so spells needs to be categorized by magicka type (conjuration, destruction) the idea is to have all spells available to everyone (either by spellbooks, vendors, etc..) their skill level in the spell is determined how well they can use it.

Rewrite Who Command

Rewrite the who command that shows who is online. Making it more pretty than standard evennia who, and adding some color.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.