Giter Club home page Giter Club logo

cardio's People

Contributors

ymyke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

cardio's Issues

Fundamental skills philosophy; with skills such as Empty

Empty is a candidate skill for "A card with Empty will not provide any fire or spirits. This also means the card cannot be sacrificed."

There are at least to basic philosophies to implement such skills:

a) A card with Empty keeps all its stats (esp. has_*) and the code does special handling to check for cards with this skill wherever appropriate (e.g., card placement).

  • Could be implemented using properties for all card attributes that take care of taking into account such cases.
  • A card always shows its currently relevant states.

b) A card keeps its original stats and adjusts its stats as it gets (and loses, in which case the original stats will be restored) a skill such as Empty.

  • That way, the code does not need to identify and handle special cases.
  • But it needs to update the states.

b1) Use the state introduced by FightCard for this.

  • Simple, already implemented.
  • Could use a skill hook that gets called when a FightCard gets created.
  • If skills such as Empty play a role in non-fight locations, we'd still need to use the FightCard for that.
  • How would cards get displayed inside and outside of fights? In their "Card" or in their "FightCard" state?
  • One way to resolve the questions here could be to consider skills "fightskills" that are only applicable in fights and therefore always should the cards in their FightCard state. (If there are other locations, can always do an additional check to see if a skill exists on the card or not.)
  • Advantage: We can show the card both in its unskilled and in its skilled state (and offer both views to the user with a keystroke). With option a, this is not possible.

b2) Introduce a new state for this.

  • Too complex!

Conclusion

Preference for a ATM.

Fix emoji issue

Cardio uses asciimatics to renter the UI. Asciimatics has an issue with certain emojis. See here:

peterbrittain/asciimatics#368

Thus, certain emojis cannot be used in Cardio because they will be rendered too small. That is the reason why Cardio uses ๐Ÿ… instead of โœŒ๏ธ or ๐Ÿ”ฐ instead of ๐Ÿ›ก๏ธ.

Add missing tests

  • For prepare and attack methods in FightCard
  • Tests that directly test the more complex classes such as Shield and LuckyStrike rather than only via fights, as is the default approach in test_skills

Improve level design / difficulty progression

  • Make fights more compelling.
  • Make computer strategy smarter?
  • Especially: Fights become predictable/repetitive once cards become powerful enough to defeat opposing agent in one strike. โ†’ Just accept this? Prevent cards from getting so strong? Make it much harder for them to become so strong? Have agents grow their health as well? ...?

Check out performance of animations

Check out performance of animations: Esp. when running on battery power. -> Add some setting that helps speed up / slow down the animations. Then do some self-timing e.g. on burning a card that will automatically adjust that setting if necessary (i.e., animation takes too long or too short).

Is this an asciimatics issue? Or what is causing this? Is it the same in different environments (powershell, WSL, Linx, ...)?

Publish

  • Open on Github
  • Reddit
  • ...?

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.