mtgred / netrunner

http://www.jinteki.net
Other
899 stars 393 forks source link

Salvaged Vanadis Armory Server Error #2705

Closed marc-jones closed 7 years ago

marc-jones commented 7 years ago

Attempting to trigger SVA after taking 14 damage (2 meat from Titanium Ribs, 3 x 1 brain from Amped Up, 3 x 3 meat from trashing Tri-maf Contract with Independent Thinking) caused a red error message to appear.

There were 20 cards in R&D.

JoelCFC25 commented 7 years ago

The stack trace in this red error message is vital for diagnosis. If you can supply it next time, that would be very helpful.

marc-jones commented 7 years ago

How do I find that? Thanks.

marc-jones commented 7 years ago

Managed to reproduce it:

Stack Trace:

Error do choice Yes #error {
 :cause nil
 :via
 [{:type java.lang.IndexOutOfBoundsException
   :message nil
   :at [clojure.lang.RT nthFrom "RT.java" 885]}]
 :trace
 [[clojure.lang.RT nthFrom "RT.java" 885]
  [clojure.lang.RT nth "RT.java" 854]
  [game.core$get_turn_damage$fn__5124 invoke "events.clj" 238]
  [clojure.core$map$fn__4785 invoke "core.clj" 2644]
  [clojure.lang.LazySeq sval "LazySeq.java" 40]
  [clojure.lang.LazySeq seq "LazySeq.java" 49]
  [clojure.lang.RT seq "RT.java" 521]
  [clojure.core$seq__4357 invokeStatic "core.clj" 137]
  [clojure.core$apply invokeStatic "core.clj" 641]
  [clojure.core$apply invoke "core.clj" 641]
  [game.core$get_turn_damage invokeStatic "events.clj" 238]
  [game.core$get_turn_damage invoke "events.clj" 235]
  [game.core$fn__28488$fn__28489 invoke "resources.clj" 1294]
  [game.core$print_msg invokeStatic "abilities.clj" 251]
  [game.core$print_msg invoke "abilities.clj" 247]
  [game.core$do_ability invokeStatic "abilities.clj" 239]
  [game.core$do_ability invoke "abilities.clj" 214]
  [game.core$resolve_ability_eid invokeStatic "abilities.clj" 136]
  [game.core$resolve_ability_eid invoke "abilities.clj" 113]
  [game.core$resolve_ability invokeStatic "abilities.clj" 111]
  [game.core$resolve_ability invoke "abilities.clj" 38]
  [game.core$resolve_ability invokeStatic "abilities.clj" 109]
  [game.core$resolve_ability invoke "abilities.clj" 38]
  [game.core$optional_ability$fn__6103 invoke "abilities.clj" 285]
  [game.core$resolve_prompt invokeStatic "actions.clj" 147]
  [game.core$resolve_prompt invoke "actions.clj" 117]
  [game.main$handle_do invokeStatic "main.clj" 77]
  [game.main$handle_do invoke "main.clj" 74]
  [game.main$handle_command invokeStatic "main.clj" 145]
  [game.main$handle_command invoke "main.clj" 134]
  [game.main$run$fn__32138 invoke "main.clj" 180]
  [game.main$run invokeStatic "main.clj" 170]
  [game.main$run invoke "main.clj" 164]
  [game.main$_main$fn__32173 invoke "main.clj" 234]
  [clojure.lang.AFn run "AFn.java" 22]
  [java.lang.Thread run "Thread.java" 745]]}
JoelCFC25 commented 7 years ago

Thanks. This is yet another Titanium Ribs problem. It manually triggers the :damage event after completing the Runner's ability to choose the card(s) lost, but is triggering it without all the arguments that the get-turn-damage function expects, so it's barfing on a nil.