Git Product home page Git Product logo

idlelandsold's Introduction

Idle Lands Build Status

An incremental game (read: idling) where you do nothing while your character fights to be the best in the realm.

It can be run with a backend of IRC, or a console, or really just about anything you plug into it. I'm sure it'd be pretty cool if you hooked it up to a MeteorJS backend (I did this for the web view)! Currently, I use it as a module for my IRC bot, Kurea -- nothing special.

Developing

Whether you want to create events, or create the next best class, all of the information is housed in the wiki and the docs folder!

If you're more interested in content development (events, monsters, items, etc) click here.

If you're more interested in code development (backend, spells, classes, personalities, etc) click here.

IRC

Feel free to join us in ##idlebot (on any server listed here) and chat with the devs and designers!

idlelandsold's People

Contributors

alxgnon avatar ancanus avatar brungre avatar calthax avatar darkblizer avatar ethteck avatar firejuggler avatar foosky avatar gzgreg avatar interdiction avatar khaoila avatar latinx avatar mechanios avatar ndrut avatar ogredude avatar oipo avatar purepandemonium avatar rahatarmanahmed avatar raymond-h avatar rika314 avatar sadbear- avatar sedgwick avatar seiyria avatar thedrunkenone avatar valcherie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idlelandsold's Issues

the Big Luck Thread

Luck can affect:

  • critical hits
  • chance to get skills modified
  • increased chance for events to happen
  • chance of being missed (instead of deflect)

more descriptive messages

messages should have more types, like battle, event, etc. and be broken up into more parts.

Events should have: eventText, player, item, oldVal, newVal, valStat (where applicable)

Battles should have: attacker, defender, item, hp, mp, special, and probably more, where applicable.

Most things that are using MessageCreator.genericMessage need to be changed accordingly, to use a new way and to allow the IRC messages to be colored.

player relationships

This idea needs to be fleshed out, but so far, the idea is that players should be able to gain rapport with each other (or the opposite) in certain circumstances, ie:

  • join a player in a party means relationship++
  • fight alongside a player means relationship++
  • fight a player in combat means relationship--

boss battles

there should be able to be a boss on a map, and it summons nearby players (maybe +- 50 spaces) to help fight the boss.

bosses have special weapons that can be picked up upon beating them, which are defined per boss.

all boss items should be elevated to the highest tier of items (even if their score does not fit that categorization), no matter their status.

there should be 2 personalities that come with this: ignore boss items, and never unequip boss items. the former would make it so you never equip boss items, and the latter would make it so you never unequip a boss item.

if a player can equip a boss item in normal parameters, they should always do so no matter what (excepting personalities listed above)

spell stacking

when spells are added to player.affecting, there should be a setting to allow them to refresh the existing spell as well as push a new instance into it, for stacking intensity and stacking refresh.

possibility for random variables in strings

%person% would be a random person from any team, %person team:1% would pick a random person from one team, %team% would pick any random team.

the only implementation difference is that it should be $person team:1$.

these methods can be added in MessageCreator.doStringReplace

Battle needs a canAct

canAct will search through all of the affectingSpells and see if any of them are blocking the next turn.

allow classes/personalities to prioritize certain items more than others

This should pass in the player to the score, and do a personalityReduce on them for some specific calc method. Maybe intScoreValue or something, passing you the base value and you can modify it. This means fighters could remove int values from an item for example, and say that con should be valued twice as much.

mad-lib events

[15:17.46] @kr So basically you want any event to be able to result in any effect, letting it mix-and-match randomly.
[15:18.00] @kr Sure, I guess.

mass import of data

this works for items, but not events. there may need to be a bit more data organization happening, ie, putting item-related things into an items folder, events in an events folder, etc.

Unlockable personalities

PlayerStatistics should keep track of all of the miscellaneous statistics available to a player.

When achieving a certain threshold for the statistics, personalities should unlock to the player.

expand party name generation

There should be a left and a right for party name generation, all of which are picked randomly when a party is formed. So, I could have:

Left Right
Band of Bros
Crazy Narwhals
Wacky Foxes
Fighting Meerkats

.. Or any combination thereof.

Perhaps also have some names that are single, maybe like an item is generated, so instead, there would be a left, middle, and a right of party names. This would allow for names like Singularity, Band of Singularity, or Band of Singularity for Great Justice, or Singularity for Great Justice.

fix annoying messages:

Error:  { prefix: 'barjavel.freenode.net',
  server: 'barjavel.freenode.net',
  command: 'err_cannotsendtochan',
  rawCommand: '404',
  commandType: 'error',
  args: [ 'IdleMaster', '#idlebot', 'Cannot send to channel' ] }

battle selection enhancements

Some players should not be able to battle other players. Perhaps there should be total score threshold between the two.

enchant event

There should be an event that can enchant an item, either by adding a new adjective to it, or adding a +1 to it. It is not yet determined what the +s will do.

allow for elemental damage / weakness

one way to implement this:

example stats:
icePercent: 5
ice: 100
fire: 10

percent / value works like stats, so the total fire damage in this example is 10, and the total ice damage is 105 (ice + ice*icePercent).

So, supposing you roll 50 base physical damage, on top of that you will have 10 fire damage, and 105 ice damage, for a total of 165 damage. Enemies can counteract this with their elemental resistances.

Elemental damage will be calculated with:

  • finger
  • hands
  • mainhand
  • offhand
  • charm

Elemental resistance will be calculated with:

  • body
  • feet
  • head
  • legs
  • neck

Equipment.score() adjustments

This needs to calculate based on the players stats, as well as the personality modifications for each. Also, the other stats need to be factored in somehow.

allow items to provide raw dodge percent

There will need to eventually be a second condition in the dodge clause that a target will have to roll to successfully dodge, so dodges don't happen too often. This is pending the future being terrible with everyones stats, so we'll see.

This will be a 1-100 roll, and items can increase the percent change to succeed. The base % is probably going to be 1.

change blessItem / forsakeItem

It should, maybe 5% of the time, add a new stat (one that is currently 0) and set it to 5. Otherwise it should only modify an existing stat.

Otherwise this could be forked into a new enchantEvent, a la #39, and it could serve those purposes.

Figure out the whois / eventemitter error

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace: 
  at Client.EventEmitter.addListener (events.js:160:15)
  at Client.whois (/Users/seiyria/GitHub/kurea/node_modules/irc/lib/irc.js:854:14)
  at Bot.exports.Bot [as whois] (/Users/seiyria/GitHub/kurea/src/core/Bot.coffee:134:22)
  at NickServUserManager.getUsername (/Users/seiyria/GitHub/kurea/src/auths/NickServUserManager.coffee:8:14)
  at /Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:91:31
  at Array.forEach (native)
  at Function._.each._.forEach (/Users/seiyria/GitHub/kurea/src/modules/idle/node_modules/underscore/underscore.js:79:11)
  at IdleModule.<anonymous> (/Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:90:27)
  at IdleModule.buildUserList (/Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:158:14)
  at IdleModule.buildUserList (/Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:1:1)
  at IdleModule.loadIdle (/Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:24:8)
  at 
/Users/seiyria/GitHub/kurea/src/modules/idle/ext/kurea/IdleLandsModule.coffee:115:14
  at callback (/Users/seiyria/GitHub/kurea/node_modules/nedb/lib/executor.js:26:17)
  at Cursor.execFn (/Users/seiyria/GitHub/kurea/node_modules/nedb/lib/datastore.js:389:12)
  at Cursor._exec (/Users/seiyria/GitHub/kurea/node_modules/nedb/lib/cursor.js:113:17)
  at /Users/seiyria/GitHub/kurea/node_modules/nedb/lib/executor.js:36:13
  at Object.q.process (/Users/seiyria/GitHub/kurea/node_modules/nedb/node_modules/async/lib/async.js:731:21)
  at next (/Users/seiyria/GitHub/kurea/node_modules/nedb/node_modules/async/lib/async.js:728:27)
  at /Users/seiyria/GitHub/kurea/node_modules/nedb/node_modules/async/lib/async.js:24:16
  at process._tickCallback (node.js:419:13)

flipStatEvent

There should be an event that flips a random stat (ie, -7 -> 7, 500 -> -500) on a random item for a random person.

This could also exchange two stats on an item, so the STR becomes the INT or something.

allow fleeing from battle

if a player is significantly weaker than the opponent but somehow got into battle, they should flee.

also, fleeing should happen occasionally if you're lower than 10% HP. to do this, a new reduction will have to be added called Character.calc.fleePercent that determines the percent chance a player will flee. By default, this will probably be 0%.

Classes will be able to modify this, and most classes that do will modify it by saying that there's maybe a 20% chance to flee if you have 10% health, 50% chance at 5%, 100% chance at 1%, etc.

Fleeing will incur no XP loss, but you can not be brought back onto your team (as opposed to dying, where you could be resurrected).

World News ("Headlines")

adding world News to fill the blanks in between events and to make the world seem more alive. and make those news semi random so the world feels like its evolving.

example:
Weather forecast,
Important people dying,
someone is born,
a Criminal is arrested.
....

critical hits

this should be a thing. the following events should also happen: critical, criticalled

this will probably also have to roll a 1/(allplayerstats) chance to get a critical, so it doesn't happen too often. Of course, that will be unbalanced as time goes on so there will have to be some normalization. I'm not sure specifically what the normalization would be.

Tiles that force events to happen

On the map, it should be possible for ??? to force events to happen (like findItem, forsakeItem, etc). What I would do is open up the map, add some Question mark events to the map (throw them in an Event category), and give them a property called forceEvent. When a player steps on this in their move function, check for the existence of this property, and if it exists, directly call that function with the player.

apply percentage values for stats

player stat calculations do not account for percentages

These percentages should always be applied after the actual stat themselves. This can be added in Character.calc.stat to just personalityReduce myStatPercent, take that number, turn it into a percent, multiply it by the stat value, and add that back to the stat value.

Certain locations will affect the kinds of events that occur

For instance, in a snowy area, there might be special snow-related events that can happen, such as falling in the snow, getting frostbite, making a snowman.

There could also be areas which have a large impact on the game, such as an enchantment fountain where positively enchanting items happens very frequently for the duration that the player is inside of the fountain.

make item score more clear

Currently it just shows the new item score, like [25].

It should probably show like this: [itemScore: 5 -> 25 | +20]

Or something.

update from source

there should be an API command, as well as a Game function to update. All it really has to do is a git stash and a git pull, and a system.exit, but it would help immensely.

alternate combat rewards

it should be possible for players to earn money in combat, as well as items, or steal items, or other things that are TBD. when they are decided this issue will likely be split into a number of them.

Ideas: Renovatio: betting gold - maybe a random two people will bet on the outcome of a battle.

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.