Git Product home page Git Product logo

free-dom's People

Contributors

alextfish avatar asilano avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

alextfish

free-dom's Issues

Secret Chambering the SC to top of deck still offers "Don't react" afterwards

From Clive on ToothyWiki:

Hilariously subtle bug: I have Secret Chamber and some other cards in hand. Opponent Attacks. I am given a "react"/"don't react" choice. I choose to react, draw two cards, put two cards including the Secret Chamber on top of my deck. Now I have no reactions in hand, but I am still given a spurious "don't react" dialog with no "react" buttons remaining. (-8

AutoMasquerade

A suggestion from Clive on ToothyWiki:

AutoMasquerade. Pass on a Curse if you have one, otherwise an Estate, otherwise a Copper, otherwise prompt as usual.

I might extend this slightly to offer two options: Curse->Estate->Copper->prompt, and Curse->Copper->Estate->prompt.

Chat box resets on AJAX update

Whenever the game updates via AJAX (either a regular check-for-changes, or due to a button click), the chat input box is cleared.

Game appears not to end properly if tripped by Witch

Chowlett's turn 15 started.
Chowlett played Native Village.
Chowlett reclaimed the cards from Native Village.
Chowlett played Witch.
Chowlett drew Copper, Curse.
Alex reacted with a Moat, negating the attack.
qqzm gained a Curse.
max gained a Curse.
====> Chowlett played no action. <====
Game will end at end of the current turn.
Chowlett bought Estate for 2.

At the marked point (that is, on clicking "Leave Action Phase"), the game appeared to return 500; treasures were played but I had no cash.

Add support for Goldfish games

Allow players to play (unrated) games against an opponent who just buys the best out of Silver, Gold, Province they can afford.

Ambassador makes you click "Return no more" when it's the only option

Ambassador, returning 1 Curse from hand with no others, makes you click "Return no more" even though it's the only option.

I have mused that Ambassador might work more smoothly if for each card in hand it offered "Reveal and return", "Reveal but don't return", and (where applicable) "Reveal and return 2", but that's a rather more drastic change than just automatically detecting there are no more to return.

PBEM emails run lines together

Seen in:

  • new game tweaking emails (Kingdom Card lines run together)
  • multiple action emails (for Thief at least; PA lines run together)

Playing Loan as last treasure shows total cash before Loan result

Extract from game 88:

Alex played Moat.
Alex drew Copper, Copper.
Alex played Copper, Copper, Copper as Treasures.
Alex played Loan.
Alex's Loan revealed: Moat.
Alex revealed Copper.
Alex has 4 total cash.
Alex chose to trash their Copper.
Alex bought Warehouse for 3.

Alex (Turn Alex:9): Slightly odd history ordering there: "has 4 total cash" before "chose to trash Copper"?
Chowlett (Turn Chowlett:10): Hmm, yes. Reason is that you play Loan, the game notices it was your last treasure and logs, then lets you handle the Loan's action. May not be trivial to reorder it.
Chowlett (Turn Chowlett:10): Make an issue on github?

Throned Attacks don't show up red in history

max played Rabble.
The line above is red because Rabble is an attack.

max played Throne Room.
max chose Rabble to double.
Neither of these lines shows up red, which is slightly confusing.

Low sev, and I'm not quite sure what should be done about it, but a little glitch I thought I should mention.

Masq duplicates player-to-act in tab title text

As in, if Alex and Clive need to pass a card in Masquerade, the "Waiting for" list shows Alex and Clive just once, but the title text for the page says "Alex, Alex, Clive, Clive to act".

Refactor CSS and SCSS

My stylesheets are a maze of little twisty selectors, all alike.

May want to consider Compass.

Peddler / Talisman interaction is wrong on last buy

If you've played enough actions for Peddler to cost less than 4, then Talisman should double it. It does, unless it's your last buy - because the Buy pending action is destroyed before the buy happens, meaning Peddler's cost goes up just before Talisman sees it.

Shouldn't destroy the action until after it's been processed. That's probably a general truth, but care will be needed to make sure it doesn't break anything.

Correct use of flow control `and`, `or`, `not` where boolean `&&`, `||` and `!` are meant

I often used and, or and not in conditional statements; they're wrong for those, having unexpected precedence (the canonical example is

a = true and false # => false
puts a # => "true"

This will also involve fixing up a number of places where I use the no-parens calling convention unsafely: foo.include? :bar and foo[:bar] works because of and's low precedence; but foo.include? :bar && foo[:bar] is wrong - it evaluates to foo.include?(:bar && foo[:bar])

Special treasures possibly don't log

It looks like I fixed Bank's multi-logging at some point, but in the process I may have stopped other special treasures from logging at all. Needs investigation.

Improve response time of check_change

Logentries and NewRelic suggest that check_change is regularly taking longer than it should, and most of that appears to be reading PendingActions. Investigate why.

Prevent "play treasure" interface when unnecessary

Don't need to play treasures individually if

  • No treasures in hand at all
  • Cause is Grand Market and the player cannot afford GM
  • Cause is Grand Market and the player holds no Copper
  • Cause is Mint and the player cannot afford Mint

While Venture would make the above still need the slow interface, Venture is a Special treasure, so it forces it anyway.

Add announcement admin UI

It's far too tricky to send announcement emails via the console. Add a (webmaster only) interface for sending announcements.

Sort out forms - markup and error styling

Rails 3 seems to wrap label-field pairs in div.field, not p.

Want div.field_with_errors to gain style. Consider

div.field_with_errors
{
label { color: red; font-style: italic;}
input, select {box-shadow: 0 0 5px 1px red;}
}

Replace "Destroy game" with "End game"

Since ended games get automatically destroyed, no need to have a "destroy" link.

Replace instead with a button in-game to game players and admin to end the game, if inactive for more than (say) a week.

Make PBEM errors non-fatal

If a game has a PBEM player, actions shouldn't return a failure if the email sending fails.

However, the email does need to be sent, so any failure must be spotted and retried. Look into DelayedJob, perhaps?

Rabble could autoplace victories if they're all the same

Alex played Rabble.
qqzm revealed Estate, Estate, Ambassador.
Waiting for:
qqzm to Put a card 2nd from top

Not really a necessary decision.

Low priority, but it'd be nice to fix it (similarly to other similar decisions such as autoBaron etc) next time someone's looking at the code.

Fix styling of footer

It wants to be a "sticky footer" - but it's made a bit more tricky by the top 2em margin.

Doesn't work in IE8 any more

Can't remember the precise error message (can dig it out if you want). Works OK to watch or join games, but on your turn (or when action is otherwise needed), clicking any action button gives a JS error about unknown property/method (and fails to submit the action).

Create a better new user experience

We've had a number of new users, but none has ever really played a game.

  • Enhance "About" page / add "Getting Started" page to fill people in on what the site does/doesn't do
  • Send new users a Welcome email giving next steps
  • ?Send me an email on new user signup so I can keep track? Or at least give admin a full user count page

Talisman gains don't happen if there's Royal Seal

Here's my royal_seal_talisman.feature integration test. It seems that the Talisman doesn't make me gain a Silver if I have a Royal Seal out.

Feature: Royal Seal + Talisman

  Background:
    Given I am a player in a standard game with Feast

  Scenario: Buy cheap cards with Talisman + Royal Seal
  # The Royal Seal explicitly affects "gains", so the extra copies gained 
  # by Talisman are eligible for top-of-deck treatment.

    Given my hand contains Woodcutter, Talisman, Royal Seal, Gold
      And it is my Play Action phase
    When I play Woodcutter
      Then I should have 2 buys available
    When the game checks actions
      Then I should have played Talisman, Royal Seal, Gold
      And it should be my Buy phase
      And I should have 8 cash available
    When I buy Silver
      And the game checks actions
    Then I should need to Choose whether to place Silver on top of deck
    When I choose the option On deck
      Then I should have put Silver on top of my deck
  [ So far so good... ]
      And I should need to Choose whether to place Silver on top of deck
 [ But nope. /Choose whether to place Silver on top of deck/i not found in ["Buy"]. ]
    When I choose the option On deck
      Then I should have put Silver on top of my deck
      And I should need to Buy
    When I buy Feast
      And the game checks actions
    Then I should need to Choose whether to place Feast on top of deck
    When I choose the option On deck
      Then I should have put Feast on top of my deck
      And I should need to Choose whether to place Feast on top of deck
    When I choose the option Discard
      Then I should have gained Feast

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.