public ArenaGameResult PlayArenaGame(
     string deck1, string deck2, int heroLv1, int heroLv2,
     int p1CardAtBuff, int p1CardHpBuff, int p1HeroHpBuff,
     int p2CardAtBuff, int p2CardHpBuff, int p2HeroHpBuff,
     FirstAttack firstAttack, DeckOrder deckOrder, string vc1Text, int gameCount)
 {
     CheckInitialization();
     object[] args = new object[]
     {
         deck1, deck2, heroLv1, heroLv2,
         p1CardAtBuff, p1CardHpBuff, p1HeroHpBuff, p2CardAtBuff, p2CardHpBuff, p2HeroHpBuff,
         (int)firstAttack, (int)deckOrder, vc1Text, gameCount,
     };
     var resultText = jvm.CallStaticMethod<java.lang.String>(facadeClass, "playArenaGame", sigPlayArenaGame, args);
     var result = JsonConvert.DeserializeObject<ArenaGameResult>(resultText);
     return result;
 }
 public ArenaGameResult PlayArenaGame(
     string deck1, string deck2, int heroLv1, int heroLv2,
     int p1CardAtBuff, int p1CardHpBuff, int p1HeroHpBuff,
     int p2CardAtBuff, int p2CardHpBuff, int p2HeroHpBuff,
     FirstAttack firstAttack, DeckOrder deckOrder, string vc1Text, int gameCount)
 {
     CheckInitialization();
     object[] args = new object[]
     {
         deck1, deck2, heroLv1, heroLv2,
         p1CardAtBuff, p1CardHpBuff, p1HeroHpBuff, p2CardAtBuff, p2CardHpBuff, p2HeroHpBuff,
         (int)firstAttack, (int)deckOrder, vc1Text, gameCount,
     };
     var resultText = jvm.CallStaticMethod<java.lang.String>(facadeClass, "playArenaGame", sigPlayArenaGame, args);
     var result = JsonConvert.DeserializeObject<ArenaGameResult>(resultText);
     return result;
 }