Code Monkey home page Code Monkey logo

project-story's Issues

Party system (multiplayer questing)

Should party creation be automatic (when players are close together), or should it require a command?

When players are in a party, all interactions with NPCs will be shared between both players. Each player will see the exact same text said by the NPC, and either player can choose an answer.

When in a party, all party members can complete each other's quests. All players receive credit for completing quests, even if a player didn't start the quest themselves.

NPCs can join parties. The NPCs will automatically follow players, attack their targets, mine ores, farm, etc...

Contextual interactions when player is on a quest

When a player is on a quest, and they interact with any NPC that may have something to say that's related to the quest, show a "!" over their head, and replace their normal interaction with one that was specified in the quest template.

NPCs carrying torches at night

At nightfall, NPCs should stow their offhand item, and take a Torch instead. At sunrise, the torch should be stowed, and the NPC should return to another offhand item (such as a shield).

Allow Journal to hold custom objectives

Players should be able to add custom entries to their Journal.

A custom entry can have "no objective", in which case it will remain in the Journal, until the player chooses to remove it. Alternatively, a custom entry can have an objective, such as "collect 20 wood", in which case the player will be notified when the objective is complete (much like a quest).

Allow NPCs to complete objectives

Certain objectives should be completable by NPCs. For example, the "go to location" objective, when given to an NPC, should cause them to walk to the destination.

It's possible that this could be expanded to allow NPCs to do more advanced tasks, such as mining or farming.

Reputation system

  • each realm and NPC has a reputation score with each player

  • realm and NPC scores are summed to produce final effective score

  • reputation determines basic behavior

  • positive reputation means NPC is friendly with player, negative reputation makes the NPC aggressive towards the player

  • reputation is raised automatically by completing quests for NPCs

  • a very high reputation may allow the player to give orders to the NPC or recruit them to their own realm

  • Let's say you attack an NPC

  • Your reputation immediately goes down with that NPC

  • It also goes down in the NPC's realm, but not as much

  • So you might get a -5 penalty in the realm per hit

  • But a -10 with the NPC because they're gonna hold a grudge

  • So the specific NPC would have a -15 with you, while other NPCs in the realm would have a -5 with you

  • If your rep with one of your own NPCs dropped too low, they may leave your realm

NPC Towns, in Story Zones (so players can't break/place blocks), can be swayed to support your realm, either by improving your reputation with them (defending them from attacks, completing quests, bringing materials in, etc.), or by killing the NPCs until they surrender

This allows realms to "claim" these NPC towns, but they cannot place/break blocks in the town

Books from file (Interfarthing Book Number - IFBN)

Books can be set in a text (YAML) file.

File name is the book's ID. This ID will be visible on the book item in-game. A book ID can have any format, but we'll probably try to standardize this for Akenland (using a system called IFBN). Possible formats are "Farthing letter - number - first three letters of topic", such as "E-001-EQU".

File contains Name, Author, and numbered Sections. Each Section contains any text. Page breaks are handled automatically by the plugin. File can also contain quests to start (when book is opened), or prompt actions to run.

New target selector system?

Okay so we have @ p, @ e, @ r... but what if they were more powerful
So I was thinking, what if these worked for more than just players...
Need to use a warpstone? @ warpstone[r=100] picks out a random warpstone nearby. @ npc[waramon,guard] picks out a random NPC that's a Waramon Guard
@ item[eborin,level=30-40] picks out an Eborin item that's between levels 30-40

These would be used in command blocks, prompts, quests, whatever

The Minecraft target selectors are often changed between Minecraft versions, don't play nicely with plugins, and are overall difficult or impossible to integrate with.

To avoid conflicts, a new format could be something like $character, $warpstone...

This is low priority right now, as I can't think of a use for this, that isn't already covered by the Conditions system.

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.