private async Task reportWinner() { game.EndTime = DateTime.Now; TimeSpan gameDuration = game.EndTime - game.StartTime; var scores = new List <(int score, ApiPlayer player)>(); foreach (ApiPlayer currentPlayer in game.Players) { var playerScore = 2 * game.GetNumTerritories(currentPlayer) + game.GetNumPlacedArmies(currentPlayer); scores.Add((playerScore, currentPlayer)); } var orderedScores = scores.OrderByDescending(s => s.score); var gameOverRequest = new GameOverRequest { FinalBoard = game.Board.SerializableTerritories, GameDuration = gameDuration.ToString(), WinnerName = orderedScores.First().player.Name, FinalScores = orderedScores.Select(s => $"{s.player.Name} ({s.score})") }; foreach (ApiPlayer currentPlayer in game.Players) { var response = await(currentPlayer.HttpClient.PostAsJsonAsync("/gameOver", gameOverRequest)); } }
void Start() { Hp = 598; GRoot.inst.soundVolume = Setting.Sound; easyTouch = GameObject.FindWithTag("EasyTouch"); gameStart = GameObject.FindWithTag("GameStart").GetComponent <GameStart>(); overRequest = GetComponent <GameOverRequest>(); mainUI = GetComponent <UIPanel>().ui; HpL = mainUI.GetChild("HpL").asProgress; HpR = mainUI.GetChild("HpR").asProgress; Alert = UIPackage.CreateObject("Lobby", "Alert").asCom; outButton = mainUI.GetChild("out").asButton; if (PhotonEngine.isJoin) { Setup(); } outButton.onClick.Set(() => { mainUI.AddChild(Alert); Alert.SetPosition(290, 50, 0); Transition t = Alert.GetTransition("t0"); t.SetValue("endsize", 700, 500); t.Play(() => { Alert.GetChildAt(1).visible = true; }); t.SetValue("endsize", 700, 620); Alert.GetChildAt(2).visible = false; Alert.GetChildAt(3).onClick.Set(() => { overRequest.DefaltRequest(); Transition t1 = Alert.GetTransition("t1"); t1.Play(() => { SceneManager.LoadScene("Lobby"); }); Alert.GetChild("title").visible = false; }); Alert.GetChildAt(4).onClick.Set(() => { Transition t1 = Alert.GetTransition("t1"); t1.Play(() => { mainUI.RemoveChild(Alert); }); Alert.GetChild("title").visible = false; }); }); }
void Awake() { Joystick = transform.Find("Joystick").GetComponent <ETCJoystick>(); showTimerRequest = GetComponent <ShowTimerRequest>(); startPlayRequest = GetComponent <StartPlayRequest>(); gameOverRequest = GetComponent <GameOverRequest>(); quitBattleRequest = GetComponent <QuitBattleRequest>(); quitGameRequest = GetComponent <QuitGameRequest>(); destroyRequest = GetComponent <DestroyRequest>(); gameChatRequest = GetComponent <GameChatRequest>(); knapsack = transform.Find("KnapsackPanel").GetComponent <Knapsack>(); for (int i = 0; i < 3; i++) { skillPos.Add(transform.Find("Skill" + i)); } roleSelectPanel = transform.Find("RoleSelectPanel"); timer = transform.Find("TimerPanel/Time").GetComponent <Text>(); gameOverText = transform.Find("GameOverPanel/GameOver").GetComponent <Text>(); closeButton = transform.Find("GameOverPanel/CloseButton").GetComponent <Button>(); closeButton.onClick.AddListener(OnCloseClick); EffectDict = facade.GetEffectDict(); SkillItemDict = facade.GetSkillItemDict(); transform.Find("SettingPanel/QuitGameButton").GetComponent <Button>().onClick.AddListener(OnQuitGameClick); chatDialog = transform.Find("ChatDialog"); sendButton = transform.Find("ChatDialog/InputPanel/SendButton"); chatButton = transform.Find("ChatDialog/ChatButton").GetComponent <Button>(); inputField = transform.Find("ChatDialog/InputPanel/InputField").GetComponent <InputField>(); sendButton.GetComponent <Button>().onClick.AddListener(OnSendClick); chatButton.onClick.AddListener(OnChatClick); inputField.onEndEdit.AddListener(x => OnSendClick()); OtherPlayerChatMsgItem = Resources.Load <GameObject>("UIItem/Chat/OtherPlayerChatMsgItem"); LocalPlayerChatMsgItem = Resources.Load <GameObject>("UIItem/Chat/LocalPlayerChatMsgItem"); ChangeSeatItem = Resources.Load <GameObject>("UIItem/ChangeSeatItem"); }
void Start() { aniSpeed = 1; Spriteslider.mundo = this; ETCJoystick.anima = GameObject.FindWithTag("Player").GetComponent <Mundo>(); syncPlayerRequest = GameObject.FindGameObjectWithTag("UI").GetComponent <SyncPlayerRequest>(); easyTouch = GameObject.FindWithTag("EasyTouch"); syncPlayerRequest.DefaltRequest(); spriteslider = GameObject.FindWithTag("UI").GetComponent <Spriteslider>(); overRequest = GameObject.FindWithTag("UI").GetComponent <GameOverRequest>(); //将this Object 上面的Component赋值给定义的AudioSource source = GetComponent <AudioSource>(); source.volume = Setting.Sound; cc = GetComponent <CharacterController>(); ani = GetComponent <Animator>(); postion = GetComponent <Transform>(); stick = GameObject.FindWithTag("Q Joystick").GetComponent <ETCJoystick>(); mainStick = GameObject.FindWithTag("Main Joystick").GetComponent <ETCJoystick>(); m_image = GameObject.FindWithTag("QMask").GetComponent <Image>(); syncCharacter = GetComponent <SyncPlayDataRequest>(); InvokeRepeating("SyncPlayData", 0, 0.01f); GameSetup(); }
public IActionResult GameOver([FromBody] GameOverRequest gameOverRequest) { gameOver = gameOverRequest; return(Ok(gameOverRequest)); }
void Start() { facade.PlayBGM("pk"); //初始化各种请求 ActionPointIcon_Finish = Resources.Load <Sprite>("Image/Icon/actionFinish"); ActionPointIcon_Origin = Resources.Load <Sprite>("Image/Icon/actionOrigin"); showTimeRequest = transform.GetComponent <ShowTimerRequest>(); startGameRequest = transform.GetComponent <StartGameRequest>(); outCardRequest = transform.GetComponent <OutCardRequest>(); gameOverRequest = transform.GetComponent <GameOverRequest>(); effectOverRequest = transform.GetComponent <EffectOverRequest>(); useSkillRequest = transform.GetComponent <UseSkillRequest>(); showTimeRequest.pvpFightPanel = this; startGameRequest.pvpFightPanel = this; outCardRequest.pvpFightPanel = this; gameOverRequest.pvpFightPanel = this; useSkillRequest.pvpFightPanel = this; //初始化信息表 pvpPlayerInfo = facade.GetPVPPlayerInfo(); buff_info_dict = facade.GetBuffInfoDict(); card_info_dict = facade.GetCardEffectDict(); skill_info_dict = facade.GetAllSkillInfoDict(); //初始化出牌信息字典 OutCardInfoDict.Add(ElementType.Fire, 0); OutCardInfoDict.Add(ElementType.Water, 0); OutCardInfoDict.Add(ElementType.Earth, 0); OutCardInfoDict.Add(ElementType.Wind, 0); OutCardInfoDict.Add(ElementType.Thunder, 0); OutCardInfoDict.Add(ElementType.Dark, 0); SetGameInfo(facade.GetPVPInfo()); //SynchroPlayerCard(playerCardInfo); //初始化显示卡牌列表 cardInfoDict.Add(ElementType.Fire, 0); cardInfoDict.Add(ElementType.Water, 0); cardInfoDict.Add(ElementType.Earth, 0); cardInfoDict.Add(ElementType.Wind, 0); cardInfoDict.Add(ElementType.Thunder, 0); cardInfoDict.Add(ElementType.Dark, 0); //创建人物模型,设置技能 string[] strs = pvpPlayerInfo.Split(','); player_hero = facade.getCardInfoDict()[playerHeroCardID]; if (strs[2] != "00000") { staff_hero = facade.getCardInfoDict()[int.Parse(strs[2])]; StaffSkillTrigger = staff_hero.Staff_skill_self.isActionSkill ? GameObject.Instantiate(Resources.Load <GameObject>("Prefab/AssistSkill"), transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").transform).transform : GameObject.Instantiate(Resources.Load <GameObject>("Prefab/AssistPassiveSkill"), transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").transform).transform; StaffSkillTrigger.transform.localPosition = new Vector3(0, 0, 0); transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").GetComponent <Image>().sprite = Resources.Load <Sprite>(staff_hero.SkillIcon_path); player_hero.Staff_skill_other = staff_hero.Staff_skill_self; } else { transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").gameObject.SetActive(false); } ActionSkillTrigger = GameObject.Instantiate(Resources.Load <GameObject>("Prefab/ActionSkill"), transform.Find("PanelFight/PanelPlayerSkill/ActiveSkill").transform).transform; transform.Find("PanelFight/PanelPlayerSkill/ActiveSkill").GetComponent <Image>().sprite = Resources.Load <Sprite>(player_hero.SkillIcon_path); transform.Find("PanelFight/PanelPlayerSkill/PassiveSkillFirst").GetComponent <SkillCtrl>().skill = player_hero.Prossive_skill_1; transform.Find("PanelFight/PanelPlayerSkill/PassiveSkillSecond").GetComponent <SkillCtrl>().skill = player_hero.Prossive_skill_2; transform.Find("PanelFight/PanelPlayerSkill/PassiveSkillThird").GetComponent <SkillCtrl>().skill = player_hero.Prossive_skill_3; transform.Find("PanelFight/PanelPlayerSkill/ActiveSkill").GetComponent <SkillCtrl>().skill = player_hero.Action_skill; transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").GetComponent <SkillCtrl>().skill = player_hero.Staff_skill_other; transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").GetComponent <AssistSkillCtrl>().skill = player_hero.Staff_skill_other; enemy_hero = facade.getCardInfoDict()[enemyHeroCardID]; player_heroGO = GameObject.Instantiate(Resources.Load <GameObject>(player_hero.FightModel_path), transform.Find("PanelFight/PanelFightInfo/player").transform); player_heroGO.GetComponent <AnimationCtrl>().isPVP = true; enemy_heroGO = GameObject.Instantiate(Resources.Load <GameObject>(enemy_hero.FightModel_path), transform.Find("PanelFight/PanelFightInfo/enemy").transform); enemy_heroGO.GetComponent <AnimationCtrl>().isPVP = true; enemy_heroGO.tag = "Enemy"; //获取玩家信息面板 playerInfo = transform.Find("PanelFight/PanelPlayerInfo").transform; //获取血量UI playerHpSlider = playerInfo.transform.Find("SliderPlayerHp").GetComponent <Slider>(); //获取行动点UI playerActionPointSlider = playerInfo.transform.Find("SliderPlayer").GetComponent <Slider>(); playerActionScrollView = playerInfo.transform.Find("ScrollViewPlayer/Viewport/Content").transform; //获取BUFF列表UI playerBuffScrollView = playerInfo.Find("ScrollViewPlayerBuff/Viewport/Content").transform; //获取敌人信息面板 enemyInfo = transform.Find("PanelFight/PanelEnemyInfo").transform; //获取血量UI enemyHpSlider = enemyInfo.transform.Find("SliderEnemyHp").GetComponent <Slider>(); //获取行动点UI enemyActionPointSlider = enemyInfo.transform.Find("SliderEnemy").GetComponent <Slider>(); enemyActionScrollView = enemyInfo.transform.Find("ScrollViewEnemy/Viewport/Content").transform; //获取BUFF列表UI enemyBuffScrollView = enemyInfo.Find("ScrollViewEnemyBuff/Viewport/Content").transform; maskPanel = transform.Find("MaskPanel").transform; maskLeftPanel = maskPanel.transform.Find("LeftMask").transform; maskRightPanel = maskPanel.transform.Find("RightMask").transform; showTimePanel = maskPanel.transform.Find("showtime").transform; vsPanel = maskPanel.transform.Find("VS").transform; //播放卡牌动画 transform.Find("white_image").transform.GetComponent <Animation>().Play(); transform.Find("DrawCard").transform.GetComponent <Animation>().Play(); transform.Find("PanelFight/PanelCardInfo/ScrollViewCard").transform.GetComponent <Animation>().Play(); //出牌按钮事件 transform.Find("DrawCard").GetComponent <Button>().onClick.AddListener(OnOutCardClick); transform.Find("white_image").GetComponent <Button>().onClick.AddListener(OnDownCardClick); //获取战斗结算面板 PanelLost = transform.Find("PanelLost").transform; PanelWin = transform.Find("PanelWin").transform; //战斗结算跳转事件 PanelLost.Find("Button (1)").GetComponent <Button>().onClick.AddListener(OnGameOverClick); PanelWin.Find("Button").GetComponent <Button>().onClick.AddListener(OnGameOverClick); //技能使用事件 transform.Find("PanelFight/PanelPlayerSkill/ActiveSkill").GetComponent <Button>().onClick.AddListener(delegate() { OnSkillBtnClick(player_hero.Active_skill_id.ToString()); }); transform.Find("PanelFight/PanelPlayerSkill/AssistSkill").GetComponent <Button>().onClick.AddListener(delegate() { OnSkillBtnClick(player_hero.Staff_skill_other.Skill_id.ToString()); }); fightInfoPanel = transform.Find("PanelFight/PanelFightInfo").transform; cardPreview_Panel = transform.Find("CardPreview_Panel").transform; playerAnimator = player_heroGO.GetComponent <Animator>(); enemyAnimator = enemy_heroGO.GetComponent <Animator>(); transform.Find("Preview_Button").GetComponent <Button>().onClick.AddListener(OnCardPreviewClick); if (PlayerPrefs.GetInt("PreviewTopControlBool_Save") == 0) { useCardPreview = true; cardPreview_Panel.gameObject.SetActive(true); transform.Find("Preview_Button").GetComponent <Image>().sprite = Resources.Load <Sprite>("Image/Icon/previewWait"); } else { useCardPreview = false; transform.Find("Preview_Button").GetComponent <Image>().sprite = Resources.Load <Sprite>("Image/Icon/preview"); } playerBlackHole = transform.Find("PanelFight/PanelCardEffect/PlayerCard").gameObject; enemyBlackHole = transform.Find("PanelFight/PanelCardEffect/EnemyCard").gameObject; SetStartInfo(); if (facade.GetPVPState()) { maskPanel.gameObject.SetActive(false); } }