Example #1
0
        public void Run(BattleResult result, Transform parent)
        {
            this.textField.text = "";
            // --
            Observable.EveryUpdate().Subscribe(_ => {
                transform.position = Vector2.MoveTowards(
                    transform.position,
                    parent.position,
                    SPEED * Time.deltaTime
                    );
            }).AddTo(this);
            // --
            var OnTriggerEnterPlayer = this.OnTriggerEnter2DAsObservable()
                                       .Select(collision => collision.tag)
                                       .Where(tag => tag == "Player")
                                       .Subscribe(_ => {
                // todo: あとで適当な文章に入れ替える
                this.textField.text = result.ToString();
                GetComponent <UnityEngine.UI.Image>().enabled = false;
                var handle = SoundManager.Instance.PlaySe(GetVoiceName(result));

                if (result == BattleResult.Tie)
                {
                    handle.panning = 0.5f;
                }
                else
                {
                    handle.panning = parent.GetComponent <PlayerInput>().GetSide() == Side.Right ? 1f : -1f;
                }



                // Debug.Log(parent.GetComponent<PlayerInput>().GetSide());

                // --
                Observable.Timer(TimeSpan.FromSeconds(1.5f)).Subscribe(time =>
                {
                    Destroy(gameObject);
                });
            }).AddTo(this);
        }
Example #2
0
        static void DisplayBattleResult(BattleResult result)
        {
            Console.WriteLine(result.ToString());

            Console.WriteLine("=============战斗过程===============");
            foreach (var action in result.Actions)
            {
                Console.Write(BattleActionView.Show(action));
                Console.Write(" || ");

                //foreach (var r in action.Result.Roles)
                //{
                //    Console.Write("{0} {1}/{2}\t", r.Name, r.Hp, r.MaxHp);
                //}
                if (action.Result.Type == "QUERY")
                {
                    Console.WriteLine();
                    Console.WriteLine("-----------------------------------");
                }
            }
            Console.WriteLine("战斗结果:队伍{0}胜利", result.Winner);
        }
Example #3
0
 public void SendBattleResult(BattleResult battleResult)
 {
     myTcpClient.WriteData(battleResult.ToString());
 }
Example #4
0
        /// <summary>
        /// /kcsapi/api_req_sortie/battleresult
        /// /kcsapi/api_req_combined_battle/battleresult
        /// </summary>
        /// <param name="responseJson"></param>
        /// <param name="battleResult"></param>
        void BattleResult(string responseJson,BattleResult.Result battleResult)
        {
#if DEBUG
            if (battleResult != null)
                Debug.WriteLine(battleResult.ToString());
            else
                Debug.WriteLine("BattleResult is null");
#endif

            _parent.EndWaitForNightBattle();

            var binfo = _logBattle.Finish(responseJson,
                _memberShip, _memberDeck, _masterShip, _memberBasic);
            _parent.AddBattleResult(binfo);

            _statusManager.FinishBattle();

            //戦闘で受けた友軍ダメージを反映する
            _memberShip.ApplyBattleResult(battleResult);

            //推測戦闘結果
            if (battleResult != null)
            {
                var st = battleResult.BattleState;
                var st2 = KCB2.BattleResult.Result.BattleResultStateString(st);

                //HP減少分をUIへ反映
                _parent.UpdateShipList(_memberShip.ShipList);
                _parent.UpdateDeckMemberList(_memberShip, _memberDeck.DeckList);

                if (binfo.ShipDropped.Length > 0 && !Properties.Settings.Default.HideDroppedShip)
                    UpdateDetailStatus("評価{0}({2})で戦闘を終了、{1}がドロップしました",
                        binfo.Rank, binfo.ShipDropped, st2);
                else
                    UpdateDetailStatus("評価{0}({1})で戦闘を終了しました", binfo.Rank, st2);

                if (binfo.Rank != KCB2.BattleResult.Result.BattleResultStateShortString(st))
                {
                    string fn = string.Format("./{0}.missing.battleresult", DateTime.Now.Ticks.ToString());
                    Debug.WriteLine("BattleResult Missing log:" + fn);

                    using (var sw = new System.IO.StreamWriter(fn, true, Encoding.UTF8))
                    {
                        sw.WriteLine("Result(Official):{0}\r\nResult(Self):{1}\r\n\r\n{2}",
                            binfo.Rank, st2, battleResult.ToString());
                    }

                }
            }
            else
            {
                //戦闘解析データがない場合は評価しない。
                _parent.UpdateShipList(_memberShip.ShipList);
                _parent.UpdateDeckMemberList(_memberShip, _memberDeck.DeckList);

                if (binfo.ShipDropped.Length > 0 && !Properties.Settings.Default.HideDroppedShip)
                    UpdateDetailStatus("評価{0}で戦闘を終了、{1}がドロップしました",
                        binfo.Rank, binfo.ShipDropped);
                else
                    UpdateDetailStatus("評価{0}で戦闘を終了しました", binfo.Rank);
            }
            _parent.NotifyFinishBattle("戦闘");
        }