Giter VIP home page Giter VIP logo

neolib's People

Contributors

jmgilman avatar kemcbride avatar

Watchers

 avatar  avatar

Forkers

henryhoward

neolib's Issues

Support skill builds / auto levelling

In order to have the game play itself you kind of need to have it be able to select which skill point to chose when you level up.

This is totally doable! The art is definitely in crafting a build that is "good" but I mean I'm not here for that.

So far I'm implementing a thing that takes ordered "objectives", and tries to complete each one before moving to the next. IDK, it seems pretty simple to me but even now I can kind of feel that it's lacking.

In any case, this necessitates some changes to how skills are loaded along with some new code for actually loading builds and updating them as "objectives" are completed.

How to level up?

Haven't done this yet at all...
It's probably really similar to how they do it in 'new game' screens though.

Then, relatedly, how to actually describe and follow a sequence of 'level up' steps given at the start of a playthrough. (Probably a different issue though)

Make the file logging more configurable

ie. for tests, so you can turn it off from like within the test module.
( there is probably a way to do it now, and i should do it... )
(but issues are for delegation, right?)

  • right now, some of this logging is set up in init.py (which is why it always happens and I wondered why) ( *.log.txt )
  • wherefore does the um, *.html logging come from? possibly HTMLfilter.py ?

How to talk/interact with NPCs?

Well, I assumed it'd be just like using the overworld, but it's a little bit different... (of course).

My first idea for even allowing NPC interaction was to create a "local action" list on a State, and then have the main module/object interact with that by calling "local_action()" - but here comes a kicker - what if there's more than one possible local action?

That's not too tough, but it'd be nice to be able to surface the possible actions in a way that makes

  1. examining them, and
  2. executing them

easy and sensible and blah blah.

Kind of related to #1 - we need to kinda, make the "game state" visible and accessible for each 'mode' as I'm calling it.

Yeah, state isn't the "best" name, I get it...

Give item screens

Talk screens going relatively well...
I guess the 'give' part is a part of the Talk mode so there's that.
Ganbaro!

How to navigate/map?

well, my initial idea is to do somesort of "let's create a graph and save it as a file" strategy.

I'm coming up with problems already though...

  1. need to be able to add extra data to nodes (doors, npcs, ... items of interest, battle rates, etc)
  2. how do you know when you've hit a wall? (this one's the mind killer)
  3. how to treat undiscovered things vs. discovered things that certainly don't exist vs. things that certainly do exist (not too much of a problem, probably)

parse + print state data better

The current format for the game state is... alright... but I mean... could be better, maybe?
Specifically the battle state repr. It couldn't be that hard, probably. ;)

Battle state:

ipdb> nq.curr_state
Name: Darling_Eunice | Level: 1 | Health: 19/25 Experience: 0  | Difficulty: Normal
Darling_EuniceA fire imp Health: 19/25 Weapon: Yellow WandArmour: none Health: 4/10 Level: 1  You do nothing. A fire imp blasts you for 3 damage!
Attack Flee Do nothing
ipdb> nq.attack()
Name: Darling_Eunice | Level: 1 | Health: 17/25 Experience: 0  | Difficulty: Normal
Darling_EuniceA fire imp Health: 17/25 Weapon: Yellow WandArmour: none Health: 1/10 Level: 1  You blast a fire imp for 3 damage!A fire imp blasts you for 2 damage!
Attack Flee Do nothing
ipdb> nq.attack()
Name: Darling_Eunice | Level: 1 | Health: 15/25 Experience: 0  | Difficulty: Normal
Darling_EuniceA fire imp Health: 15/25 Weapon: Yellow WandArmour: none Health: 1/10 Level: 1  You attack a fire imp, but miss!A fire imp blasts you for 2 damage!
Attack Flee Do nothing
ipdb> nq.attack()

Overworld state:

ipdb> nq.move(DIR.S)
Name: Darling_Eunice | Level: 1 | Health: 15/25 Experience: 102  | Difficulty: Normal
You are in Neopia City. You see Lummock Sendent here. Talk to Lummock Sendent. 
ipdb> nq.move(DIR.S)
Name: Darling_Eunice | Level: 1 | Health: 15/25 Experience: 102  | Difficulty: Normal
You are in Neopia City. 
ipdb> nq.move(DIR.W)
Name: Darling_Eunice | Level: 1 | Health: 15/25 Experience: 102  | Difficulty: Normal
You are in Neopia Palace. You see Eleus Batrin here. Talk to Eleus Batrin. 

make a way to feed pets

wouldn't this be nice? that way your pets aren't dying all the time. especially if you get like, one omelette a day. plus a jelly, even.

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.