// Called when the heroes are detected // arendata: As before // heroname0: name of hero 0 // heroname1: name of hero 1 // heroname2: name of hero 2 public override async void HeroesDetected(ArenaHelper.Plugin.ArenaData arenadata, string heroname0, string heroname1, string heroname2) { // Do something with the information Logger.WriteLine("Heroes Detected: " + heroname0 + ", " + heroname1 + ", " + heroname2); //var res = await MakeApiCall(host+ "/update/detected/" + heroname0+"/"+heroname1+"/"+heroname2); }
void OnDestroy() { if (arenaHelperInstance != null) { arenaHelperInstance.dipose(); arenaHelperInstance = null; } }
// Called when a card is picked // arendata: As before // pickindex: index of the picked card in the range -1 to 2, if -1, no valid pick was detected // card: card information, null if invalid card public override void CardPicked(ArenaHelper.Plugin.ArenaData arenadata, int pickindex, Card card) { // Do something with the information string cardname = ""; if (card != null) { cardname = card.Name; } Logger.WriteLine("Card Picked: " + cardname); }
// Called when three new cards are detected // arenadata: The previously detected cards, picked cards and heroes // newcards: List of 3 detected cards // defaultvalues: List of 3 tier values for the detected cards // Return a list of 3 card values and an optional 4th advice value public override async Task<List<string>> GetCardValues(ArenaHelper.Plugin.ArenaData arenadata, List<Card> newcards, List<string> defaultvalues) { List<string> values = new List<string>(); // Add a test delay to simulate an API call //await Task.Delay(1000); // Add the three card values for (int i = 0; i < 3; i++) { // Add the prefix "p" to the default values as a test values.Add(defaultvalues[i]); } // Optionally add an advice as a 4th list element //values.Add("I don't know, pick one!"); return values; }
public void HeroPicked(ArenaHelper.Plugin.ArenaData arenadata, string heroname) { foreach (var plugin in plugins) { plugin.HeroPicked(arenadata, heroname); return; } }
public void HeroesDetected(ArenaHelper.Plugin.ArenaData arenadata, string heroname0, string heroname1, string heroname2) { foreach (var plugin in plugins) { plugin.HeroesDetected(arenadata, heroname0, heroname1, heroname2); return; } }
public List<string> GetCardValues(ArenaHelper.Plugin.ArenaData arenadata, List<Card> newcards, List<string> defaultvalues) { foreach (var plugin in plugins) { return plugin.GetCardValues(arenadata, newcards, defaultvalues); } return null; }
private IEnumerator CoJoin(Action <bool> callback) { Task t = Task.Run(async() => { await _hub.JoinAsync(); }); yield return(new WaitUntil(() => t.IsCompleted)); if (t.IsFaulted) { callback?.Invoke(false); yield break; } Connected = true; // 에이전트의 상태를 한 번 동기화 한다. Currency goldCurrency = new GoldCurrencyState( (Dictionary)GetState(GoldCurrencyState.Address) ).Currency; States.Instance.SetAgentState( GetState(Address) is Bencodex.Types.Dictionary agentDict ? new AgentState(agentDict) : new AgentState(Address)); States.Instance.SetGoldBalanceState( new GoldBalanceState(Address, GetBalance(Address, goldCurrency))); // 랭킹의 상태를 한 번 동기화 한다. for (var i = 0; i < RankingState.RankingMapCapacity; ++i) { var address = RankingState.Derive(i); var mapState = GetState(address) is Bencodex.Types.Dictionary serialized ? new RankingMapState(serialized) : new RankingMapState(address); States.Instance.SetRankingMapStates(mapState); } // 상점의 상태를 한 번 동기화 한다. States.Instance.SetShopState( GetState(ShopState.Address) is Bencodex.Types.Dictionary shopDict ? new ShopState(shopDict) : new ShopState()); if (GetState(GameConfigState.Address) is Dictionary configDict) { States.Instance.SetGameConfigState(new GameConfigState(configDict)); } else { throw new FailedToInstantiateStateException <GameConfigState>(); } if (ArenaHelper.TryGetThisWeekState(BlockIndex, out var weeklyArenaState)) { States.Instance.SetWeeklyArenaState(weeklyArenaState); } else { throw new FailedToInstantiateStateException <WeeklyArenaState>(); } ActionRenderHandler.Instance.GoldCurrency = goldCurrency; // 그리고 모든 액션에 대한 랜더와 언랜더를 핸들링하기 시작한다. BlockRenderHandler.Instance.Start(BlockRenderer); ActionRenderHandler.Instance.Start(ActionRenderer); ActionUnrenderHandler.Instance.Start(ActionRenderer); UpdateSubscribeAddresses(); callback?.Invoke(true); }
public async void CloseArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { foreach (var plugin in plugins) { plugin.CloseArena(arenadata, state); return; } }
// Called when the cards are detected // arendata: As before // card0: card 0 // card1: card 1 // card2: card 2 public override async void CardsDetected(ArenaHelper.Plugin.ArenaData arenadata, Card card0, Card card1, Card card2) { // Do something with the information Logger.WriteLine("Cards Detected: " + card0.Name + ", " + card1.Name + ", " + card2.Name); var res = await MakeApiCall(host + "/update/detected/" + card0.Name + "/" + card1.Name + "/" + card2.Name); }
// Called when a card is picked // arendata: As before // pickindex: index of the picked card in the range -1 to 2, if -1, no valid pick was detected // card: card information, null if invalid card public virtual void CardPicked(ArenaHelper.Plugin.ArenaData arenadata, int pickindex, Card card) { }
// Called when Arena Helper window is closed // arendata: As before // state: the current state of Arena Helper public virtual void CloseArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { }
// Called when a new arena is started // arendata: As before public override async void NewArena(ArenaHelper.Plugin.ArenaData arenadata) { // Do something with the information Logger.WriteLine("New Arena: " + arenadata.deckname); var res = await MakeApiCall(host + "/update/newarena"); }
// Called when Arena Helper window is closed // arendata: As before public override async void CloseArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { // Closing the window, to maybe resume at a later time Logger.WriteLine("Closing"); }
// Called when Arena Helper window is opened // arendata: As before // state: the current state of Arena Helper public override async void ResumeArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { Logger.WriteLine("Resuming Arena"); foreach (var cardid in arenadata.pickedcards) { Card card = ArenaHelper.Plugin.GetCard(cardid); string cardname = "-"; if (card != null) { cardname = card.Name; } Logger.WriteLine(cardname); } foreach (var heroname in arenadata.detectedheroes) { ArenaHelper.Plugin.HeroHashData hero = ArenaHelper.Plugin.GetHero(heroname); Logger.WriteLine("Detected hero: " + hero.name); } if (arenadata.pickedhero != "") { ArenaHelper.Plugin.HeroHashData hero = ArenaHelper.Plugin.GetHero(arenadata.pickedhero); Logger.WriteLine("Picked hero: " + hero.name); } Logger.WriteLine("State: " + ArenaHelper.Plugin.GetState().ToString()); }
// Called when all cards are picked // arendata: As before public override async void Done(ArenaHelper.Plugin.ArenaData arenadata) { // Do something with the information Logger.WriteLine("Done"); }
// Called when a card is picked // arendata: As before // pickindex: index of the picked card in the range -1 to 2, if -1, no valid pick was detected // card: card information, null if invalid card public override async void CardPicked(ArenaHelper.Plugin.ArenaData arenadata, int pickindex, Card card) { // Ensure cards are added sequentially await mutex.WaitAsync(); try { // Do something with the information string cardname = ""; if (card != null) { cardname = card.Name; } int cardcount = arenadata.pickedcards.Count; await Task.Delay(1000); // Be careful when manipulating values on the ArenaData as they might have changed while making your API calls bool changed = cardcount != arenadata.pickedcards.Count; Logger.WriteLine("Card Picked: " + cardname); // /update/card/:id var res = await MakeApiCall(host+ "/update/card/"+cardname); } finally { mutex.Release(); } }
public void NewArena(ArenaHelper.Plugin.ArenaData arenadata) { foreach (var plugin in plugins) { plugin.NewArena(arenadata); return; } }
// All virtual functions are optional // Called when three new cards are detected // arenadata: The previously detected cards, picked cards and heroes // newcards: List of 3 detected cards // defaultvalues: List of 3 tier values for the detected cards // Return a list of 3 card values and an optional 4th advice value public virtual List<string> GetCardValues(ArenaHelper.Plugin.ArenaData arenadata, List<Card> newcards, List<string> defaultvalues) { return null; }
public void ResumeArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { foreach (var plugin in plugins) { plugin.ResumeArena(arenadata, state); return; } }
// Called when a hero is picked // arendata: As before // heroname: name of the hero public virtual void HeroPicked(ArenaHelper.Plugin.ArenaData arenadata, string heroname) { }
// Called when the cards are detected // arendata: As before // card0: card 0 // card1: card 1 // card2: card 2 public virtual void CardsDetected(ArenaHelper.Plugin.ArenaData arenadata, Card card0, Card card1, Card card2) { }
// Called when Arena Helper window is opened // arendata: As before // state: the current state of Arena Helper public virtual async void ResumeArena(ArenaHelper.Plugin.ArenaData arenadata, ArenaHelper.Plugin.PluginState state) { }
// Called when all cards are picked // arendata: As before public virtual void Done(ArenaHelper.Plugin.ArenaData arenadata) { }
// Called when a hero is picked // arendata: As before // heroname: name of the hero public override async void HeroPicked(ArenaHelper.Plugin.ArenaData arenadata, string heroname) { // Do something with the information Logger.WriteLine("Hero Picked: " + heroname); // /update/hero/:id var res = await MakeApiCall(host + "/update/hero/"+heroname); }
// Called when the heroes are detected // arendata: As before // heroname0: name of hero 0 // heroname1: name of hero 1 // heroname2: name of hero 2 public virtual void HeroesDetected(ArenaHelper.Plugin.ArenaData arenadata, string heroname0, string heroname1, string heroname2) { }
public void CardPicked(ArenaHelper.Plugin.ArenaData arenadata, int pickindex, Card card) { foreach (var plugin in plugins) { plugin.CardPicked(arenadata, pickindex, card); return; } }
// Called when a new arena is started // arendata: As before public virtual void NewArena(ArenaHelper.Plugin.ArenaData arenadata) { }
public void CardsDetected(ArenaHelper.Plugin.ArenaData arenadata, Card card0, Card card1, Card card2) { foreach (var plugin in plugins) { plugin.CardsDetected(arenadata, card0, card1, card2); return; } }
void Start() { arenaHelperInstance = new ArenaHelper(gameObject); }
public void Done(ArenaHelper.Plugin.ArenaData arenadata) { foreach (var plugin in plugins) { plugin.Done(arenadata); return; } }