{"action":"created","issue":{"url":"https://api.github.com/repos/mtgred/netrunner/issues/446","labels_url":"https://api.github.com/repos/mtgred/netrunner/issues/446/labels{/name}","comments_url":"https://api.github.com/repos/mtgred/netrunner/issues/446/comments","events_url":"https://api.github.com/repos/mtgred/netrunner/issues/446/events","html_url":"https://github.com/mtgred/netrunner/pull/446","id":97247763,"number":446,"title":"Steal cost bonuses: Red Herrings, etc.","user":{"login":"nealterrell","id":10083341,"avatar_url":"https://avatars.githubusercontent.com/u/10083341?v=3","gravatar_id":"","url":"https://api.github.com/users/nealterrell","html_url":"https://github.com/nealterrell","followers_url":"https://api.github.com/users/nealterrell/followers","following_url":"https://api.github.com/users/nealterrell/following{/other_user}","gists_url":"https://api.github.com/users/nealterrell/gists{/gist_id}","starred_url":"https://api.github.com/users/nealterrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nealterrell/subscriptions","organizations_url":"https://api.github.com/users/nealterrell/orgs","repos_url":"https://api.github.com/users/nealterrell/repos","events_url":"https://api.github.com/users/nealterrell/events{/privacy}","received_events_url":"https://api.github.com/users/nealterrell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-25T19:11:31Z","updated_at":"2015-07-26T16:47:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mtgred/netrunner/pulls/446","html_url":"https://github.com/mtgred/netrunner/pull/446","diff_url":"https://github.com/mtgred/netrunner/pull/446.diff","patch_url":"https://github.com/mtgred/netrunner/pull/446.patch"},"body":"Implementation of the framework discussed in #260, #441, etc. Extends the current support for NAPD Contract and Fetal AI to third-party cards that can also impose costs on stealing agendas.\r\n\r\n### Core changes\r\n\r\n1. Added event `:pre-steal-cost` for third parties to handle to increase agenda steal costs. Triggered during `handle-access` once we know the card is an agenda.\r\n2. Added function `(steal-cost-bonus)` taking a vector of costs to apply to the current steal attempt. (Example: Red Herrings applies `(steal-cost-bonus [:credit 5])` to agendas in the same server.)\r\n2. Tweaked the `:steal-cost` tag of card definitions to rename as `:steal-cost-bonus` (matching other \"bonus\" frameworks) and be a `req`. Updated definitions of NAPD Contract and Fetal AI to match. (This change is future-proofing, as the `req` allows the card to define a steal cost in terms of the game state. This would allow easy implementation of a theoretical \"Pay X credits to steal this card if it is not installed\"-type agendas.)\r\n3. In `handle-access`, merge the steal costs from `(steal-cost-bonus)` and from a card's `:steal-cost-bonus` function into one cost vector, and apply the existing `optional` prompt to resolve the additional costs.\r\n\r\n### Card implementations\r\n\r\n1. The Source: `(steal-cost-bonus [:credit 3])`.\r\n2. Red Herrings: see above.\r\n3. Strongbox: `(steal-cost-bonus [:click 1])` for agendas in the same server.\r\n4. Predictive Algorithm: 2 credits for all agendas.\r\n5. Utopia Fragment: 2 credits for each `:advance-counter` on the target agenda.\r\n\r\n### All together now\r\n![steal-costs](https://cloud.githubusercontent.com/assets/10083341/8890876/0c2fc678-32c6-11e5-82f9-c6abfeb265ba.PNG)\r\n\r\nNAPD with 3 tokens, Red Herrings, Strongbox, Predictive Algorithm, The Source, and scored Utopia Fragment\r\n\r\n4cr (NAPD) + 5cr (Herrings) + 1click (Strongbox) + 2cr (Predictive) + 3cr (The Source) + 6cr (Utopia) = 20cr, 1click :dancers: "},"comment":{"url":"https://api.github.com/repos/mtgred/netrunner/issues/comments/125015553","html_url":"https://github.com/mtgred/netrunner/pull/446#issuecomment-125015553","issue_url":"https://api.github.com/repos/mtgred/netrunner/issues/446","id":125015553,"user":{"login":"mtgred","id":284114,"avatar_url":"https://avatars.githubusercontent.com/u/284114?v=3","gravatar_id":"","url":"https://api.github.com/users/mtgred","html_url":"https://github.com/mtgred","followers_url":"https://api.github.com/users/mtgred/followers","following_url":"https://api.github.com/users/mtgred/following{/other_user}","gists_url":"https://api.github.com/users/mtgred/gists{/gist_id}","starred_url":"https://api.github.com/users/mtgred/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mtgred/subscriptions","organizations_url":"https://api.github.com/users/mtgred/orgs","repos_url":"https://api.github.com/users/mtgred/repos","events_url":"https://api.github.com/users/mtgred/events{/privacy}","received_events_url":"https://api.github.com/users/mtgred/received_events","type":"User","site_admin":false},"created_at":"2015-07-26T16:47:24Z","updated_at":"2015-07-26T16:47:24Z","body":"Awesome! :+1: "}}