Giter VIP home page Giter VIP logo

alagaesias-ancient-language's People

Contributors

firegodjr avatar spartan322 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

spartan322

alagaesias-ancient-language's Issues

Word Lists

Meaning this allows a combination of words to run for the same script, for example:
edtha un fricai heil un skolir would target yourself the nearest player, healing and a shield (resistance) in the process.

un being and in the Ancient Language

Long lists of these could be stacked like so:

<selector 1>, <selector 2>,..., un <selector n> <action 1>, <action 2>,..., un <action n> and it would perform operations based on it.

Word Proposal

Seems like a simple word proposal issue would be good. My suggestions for words:

Actions:

flauga - fly, probably gives the effect of temporary creative mode flight or simply just floating upwards
flautja - float, stops vertical movement for a moment
fram - forward, moves something forward
kveykva - lightning, probably fires lighting either from the sky or from the character (like Star Wars force lightning, I think I have a way I can handle the effect)
letta - stop, not sure what to stop, possibly all active effects, or continuously running magic effects
slytha - sleep, disables and blinds entities, possible forcing players asleep for a moment (if possible)
vakna - awaken, cancels slytha, and forces sleeping players to wake
thaefathan - thicken, may be an effect, an action, or something in between, requires better suggestion
andask, deyja - die, another death spell, maybe more severe, but also more costly
frethya - hide, tries to run invisibility on entities
galdr - spell/enchantment, possibly for wards?
haina - harm, damages entities
hlaupa - run, gives speed effect
ignasia - shine, forces applied entities to glow
istalri - fire, same as brisingr
ladrin - open, forces selected blocks to open, damages entities?

Selectors

eka - I, same as edtha
hurdh - door, selects closest door
adurna - water, selects nearby water blocks

I may add more to this list if find anymore good words to add

Player Name Bug

A problem with player names arises when player names themselves after a registry word, to fix this, I'll push a fix that:

Checks if word is script object first
If its both a script object and player name, and doesn't contain a name differentiation character, then it is a script object
differentiation characters will be either '@', quotes, or both depending on mod config

Experience System

A system that tracks magic experience which allows an increase in magic use tolerance (less affected by magic), and allows more complicated magic to be used.

API Discussion

I see that a discussion on an API system would probably be best done inside the issue tracker.

This is for that discussion.

Currently I have developed Spartan322/api as an outline. As far as I've gotten it however, it can now run every possible word from the original WordHandler and more (I have not got wards, which should actually be called object enchantment or something, but it shouldn't be too hard to fix up eventually). Currently, it can be extended very easily, however it has not been opened up to external manipulation (which I can commit in an instant). I'd like to get opinions on this development before I make a PR for it. (also check out Spartan322/master for my gradle commits, which I might PR first it they are fine with @firegodjr)

Event Support

An idea for addons and hookins might be Events, when the API becomes usable.

This should probably be discussed and decided upon.

Proper Fatigue (and Distance) Handling

The distance might just go along with fatigue.

Currently the system is highly loose with fatigue. My opinion on in truth is to leave it loose, but I could implement a more forcefully system if needed.

Anyhow, I think ISelectors and IModifiers should add distance/fatigue, but not apply it, maybe make it a multiplier that gets applied on IWord objects that handle fatigue properly.

So the algorithm would be like:

Go through ISelectors, which add fatigue multipliers (taking into account distance?)
Go through IModifiers, which add to the fatigue multipliers
Run IWords, which add fatigue based on those fatigue multipliers
Either execute fatigue on IWord activation, or after IWords are activated

Player names can not be targeted

This is a relatively minor issue, but one that probably still fits the bill anyhow.

You can't target a player (or group of players) by name like so:
Spartan322 brisngr would burn, in this case me.
A list of players could also be like:
<player 1>, <player 2>,..., un <player n> <action> I think I can designate this with the current system already, but I'll let you know.

Wards Discussion

I'll start this off to help develop a basis for wards (so when I get back to helping out, we have something to work with)

First, what should the word(s) be that create wards and how should they (each individually) act?

Next, my idea was when a ward word, either a quoted string after it or the entire string after it (@firegodjr, you decide that, or both, former taking precedence over the latter) would be the ward.

Third, I think IWardPlacer interface should be where placing wards should be handled, maybe return an entity or tile entity, or maybe a block with a configured tile entity? I'm not sure, I'm not as use to tile entities. For example: IWardPlacer.java

So any comments or suggestions to better this?

ScriptInstance has no mutable data

This means data between words can not be distinguished, at least outside of selectors, (or in some cases, possible future wards) this means modifiers are still impossible and other words can't even change each other directly, I think I can fix it:

This is my current idea to fix it: ScriptData.java

All words would get the immutable map for themselves, but the IModifier words would get the whole ScriptData too.

This would remove inserting ScriptInstance into the interfaces.

API Improvements

The issue for discussion and ideas for improvements and optimizations for the API 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.