public void OpenVictory(VictoryInfo victoryInfo) { M8.ModalManager.main.CloseAll(); mVictoryParms[ModalVictory.parmVictoryInfo] = victoryInfo; M8.ModalManager.main.Open(victoryModal, mVictoryParms); }
public void SendVictory(string token) { var victoryInfo = new VictoryInfo { LobbyId = Client.instance.lobbyInfo.Id, VictoryToken = token }; var jmessage = Client.MakeJsonMessage(nameof(VictoryInfo), victoryInfo); Send(jmessage); }
/// <summary> /// Handles the <see cref="Selector.SelectionChanged"/> event for the "Compare" <see /// cref="ListView"/> on the <see cref="TablesTab"/> page.</summary> /// <param name="sender"> /// The <see cref="Object"/> where the event handler is attached.</param> /// <param name="args"> /// A <see cref="SelectionChangedEventArgs"/> object containing event data.</param> /// <remarks> /// <b>OnCompareTableSelected</b> updates the "Defeat" and "Victory" text boxes and the /// "Faction" list view to reflect the selected ranking criterion.</remarks> private void OnCompareTableSelected(object sender, SelectionChangedEventArgs args) { args.Handled = true; // retrieve selected item, if any CompareListItem item = CompareTableList.SelectedItem as CompareListItem; // clear faction list FactionList.Items.Clear(); // clear thresholds if selection cleared if (item == null) { DefeatInfo.Clear(); VictoryInfo.Clear(); return; } // retrieve selected criterion string id = item.Item3 as String; var resource = item.Item3 as ResourceClass; if (resource != null) { id = resource.Id; } // show faction ranking CreateFactionRows(resource, id); string defeatText = "—"; // em dash string victoryText = "—"; // em dash if (resource != null) { // show global thresholds for resource conditions if (resource.Defeat != Int32.MinValue) { defeatText = resource.Format(resource.Defeat, false); } if (resource.Victory != Int32.MaxValue) { victoryText = resource.Format(resource.Victory, false); } } else { ConditionParameter parameter = ConditionParameter.Turns; switch (id) { case "sites": parameter = ConditionParameter.Sites; break; case "units": parameter = ConditionParameter.Units; break; case "unit-strength": parameter = ConditionParameter.UnitStrength; break; } // show common thresholds for specific conditions if (parameter != ConditionParameter.Turns) { defeatText = GetCommonThreshold(false, parameter); victoryText = GetCommonThreshold(true, parameter); } } // show or clear thresholds DefeatInfo.Text = defeatText; VictoryInfo.Text = victoryText; }
protected override IEnumerator Start() { yield return(base.Start()); //enter both contestant playerControl.action = CombatCharacterController.Action.Enter; enemyControl.action = CombatCharacterController.Action.Enter; while (playerControl.isBusy || enemyControl.isBusy) { yield return(null); } if (signalReady) { signalReady.Invoke(); } // //wait for signal while (mIsBeginWait) { yield return(null); } //show vs. animation //some dialog/tutorial depending on level var waitReviveEndDelay = new WaitForSeconds(reviveEndDelay); //combat loop while (true) { mRoundCount++; ///////////////////////////////////// //attack state if (attackControl) { attackControl.Init(playerControl, enemyControl); attackControl.Play(); yield return(null); while (attackControl.isPlaying) { yield return(null); } mAttackDamage += attackControl.attackTotalNumber; //check if enemy is dead if (enemyControl.hpCurrent <= 0f) { break; } } ///////////////////////////////////// ///////////////////////////////////// //defend state if (defenseControl) { defenseControl.Init(enemyControl, playerControl); defenseControl.Play(); yield return(null); while (defenseControl.isPlaying) { yield return(null); } mDefenseAmount += defenseControl.defenseTotalNumber; //check if player is dead if (playerControl.hpCurrent <= 0f) { //revive mReviveCount++; playerControl.action = CombatCharacterController.Action.Revive; while (playerControl.isBusy) { yield return(null); } //animation of hp going back up playerControl.hpWidget.Show(); while (playerControl.hpWidget.isBusy) { yield return(null); } playerControl.hpCurrent = playerControl.hpMax; yield return(waitReviveEndDelay); playerControl.hpWidget.Hide(); } if (!attackControl) //only one round if no attack control { break; } } ///////////////////////////////////// yield return(null); } //player victory playerControl.action = CombatCharacterController.Action.Victory; while (playerControl.isBusy) { yield return(null); } var victoryInfo = new VictoryInfo(); victoryInfo.toScene = nextScene; if (attackControl && mAttackDamage.fValue > 0f) { victoryInfo.attackValue = mAttackDamage; victoryInfo.flags |= VictoryStatFlags.Attack; } if (defenseControl && mDefenseAmount.fValue > 0f) { victoryInfo.defenseValue = mDefenseAmount; victoryInfo.flags |= VictoryStatFlags.Defense; } if (victoryRoundsEnabled) { victoryInfo.roundsCount = mRoundCount; victoryInfo.flags |= VictoryStatFlags.Rounds; } if (victoryReviveEnabled && mReviveCount > 0) { victoryInfo.reviveCount = mReviveCount; victoryInfo.flags |= VictoryStatFlags.Revive; } GameData.instance.OpenVictory(victoryInfo); }