Beispiel #1
0
        // GET: Fight/Details/{id}
        public async Task <ActionResult> Details(int id)
        {
            FightModel fightModel = new FightModel();

            if (id <= 0)
            {
                return(HttpNotFound());
            }

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:62313");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                /* Récupération de la guerre sélectionnée via API */
                HttpResponseMessage response = await client.GetAsync("api/fights/" + id);

                if (response.IsSuccessStatusCode)
                {
                    string temp = await response.Content.ReadAsStringAsync();

                    fightModel = JsonConvert.DeserializeObject <FightModel>(temp);
                }
                else
                {
                    return(HttpNotFound());
                }
            }

            return(View(fightModel));
        }
    public void Next_Round(FightModel fightModel)
    {
        RoomModel roomModel = new RoomModel();

        roomModel.DongUser         = new UserModel();
        roomModel.DongUser.IsReady = fightModel.DongReady;

        roomModel.NanUser         = new UserModel();
        roomModel.NanUser.IsReady = fightModel.NanReady;

        roomModel.XiUser         = new UserModel();
        roomModel.XiUser.IsReady = fightModel.XiReady;

        roomModel.BeiUser         = new UserModel();
        roomModel.BeiUser.IsReady = fightModel.BeiReady;

        MainViewMgr.m_Instance.initWaitInfo(roomModel);
        if (fightModel.DongReady && fightModel.NanReady && fightModel.XiReady && fightModel.BeiReady)
        {
            if (RoomInfoMgr.m_Instance.m_MySeat.Equals(MainSceneMger.PlayerSeat.PlayerEast))
            {
                NetManager.m_Instance.SendMessage(Protocol.TYPE_FIGHT, RoomInfoMgr.m_Instance.m_RoomID, FightProtocol.START_CREQ, null);
            }
        }
    }
Beispiel #3
0
    public static FightModel getInstance()
    {
        if(_instance == null)
            _instance = new FightModel();

        return _instance;
    }
Beispiel #4
0
    IEnumerator BetIEnumerator(int MasterPoint, int GuestPoint)
    {
        yield return(new WaitForSeconds(1f));

        //PopMaskMaskManager.hide();

        int LoseAmount = FightModel.getInstance().betVo.loseAmount;

        if (LoseAmount > 0)
        {
            Txt_Money_My.text = Txt_Money_My.text + "-" + LoseAmount;
        }
        else
        {
            Txt_Money_My.text = Txt_Money_My.text + "+" + Math.Abs(LoseAmount);
        }

        isBeting = false;

        /**
         * if(fightResultBehviour == null){
         *      GameObject  instance  = PopUpManager.createPopUp (Obj_FightResult,0.8f);
         *      fightResultBehviour = instance.GetComponent<FightResultBehviour>();
         *      EventTriggerListener.Get(fightResultBehviour.gameObject).onClick =Btn_BackClick;
         * }
         * int LoseAmount = FightModel.getInstance ().betVo.loseAmount;
         * fightResultBehviour.init (MasterPoint,GuestPoint,LoseAmount);
         **/
    }
Beispiel #5
0
    public override void Execute(object data)
    {
        FightArgs  e  = data as FightArgs;
        FightModel fm = GetModel <FightModel>();

        fm.LoadFightModel(e);
        Game.Instance.LoadScene(3);
    }
Beispiel #6
0
    public static FightModel getInstance()
    {
        if (_instance == null)
        {
            _instance = new FightModel();
        }

        return(_instance);
    }
Beispiel #7
0
    /**
     * 回注
     * */
    private void Img_BetOkClick(GameObject go)
    {
        string name = go.name;

        string[] nameArr = name.Split(new char[] { '_' }); //Btn_Bet_0
        int      index   = int.Parse(nameArr[2]);
        int      btnNum  = BtnNumArr[index];               //当前的注数
        int      flag    = FightModel.getInstance().setBenAmount(-btnNum);

        if (flag == Config.CODE_SUCCESS)
        {
            Txt_Current_Bet.text = FightModel.getInstance().getBenAmount().ToString();
            Destroy(go);
        }
    }
Beispiel #8
0
 private void Btn_BetOkClick(GameObject go)
 {
     //在这里监听按钮的点击事件
     if (go == Btn_BetOk.gameObject)
     {
         if (FightModel.getInstance().getBenAmount() <= 0)              //下注数为0
         {
             PopMessageManager.show("current is 0");
         }
         else
         {
             isBeting = true;
             FightModel.getInstance().BetAction(betOkCallBack);
         }
     }
 }
Beispiel #9
0
    /**
     * 清除场景界面 并清空数据
     * */
    private void cleanResultInfo(GameObject go)
    {
        //public void cleanScene(){
        //if(go == fightResultBehviour.gameObject){
        UITool.ClearChild(Transform_CardSprite_MasterCards);
        UITool.ClearChild(Transform_CardSprite_GuestCards);
        UITool.ClearChild(Transform_Bet);

        //文字清除
        Txt_Point_MasterCards.text = "";
        Txt_Point_GuestCards.text  = "";

        Txt_Current_Bet.text = "";
        FightModel.getInstance().setBenAmount(-FightModel.getInstance().getBenAmount());

        Txt_Money_My.text = UserModel.getInstance().UserVo.money.ToString();
        //fightResultBehviour.gameObject.SetActive(false);
        //}
    }
Beispiel #10
0
    void Start()
    {
        fm       = GetModel <FightModel>();
        gm       = GetModel <GameModel>();
        mm       = GetModel <MapModel>();
        isend    = false;
        isescape = false;
        m_Player = (GameObject)Instantiate(Resources.Load("Prefab/Role/Player_kongshou"), playerInitialPos, Quaternion.Euler(0, 180, 0));
        if (fm.targetType == 2)
        {
            m_Target = (GameObject)Instantiate(Resources.Load("Prefab/Role/Monster/Player"), targetInitialPos, Quaternion.identity);
        }
        else if (fm.targetType == 1)
        {
            m_Target = (GameObject)Instantiate(Resources.Load("Prefab/Role/NPC/Player"), targetInitialPos, Quaternion.identity);
        }

        //p_Animator = m_Player.GetComponent<Animator>();
        // t_Animator = m_Target.GetComponent<Animator>();

        p_AttackRate = fm.targetRole.speed;
        t_AttackRate = gm.player.Speed;

        //初始化战斗对象
        p_fightRole = m_Player.GetComponent <FightRole>();
        p_fightRole.InitFightRole(gm.player, playerInitialPos, playerAtkPos, p_AttackRate);
        t_fightRole = m_Target.GetComponent <FightRole>();
        t_fightRole.InitFightRole(fm.targetRole, targetInitialPos, targetAtkPos, t_AttackRate);

        //初始化血条
        float v1 = (float)gm.player.Hp / gm.player.MaxHp;

        playerBlood.value = v1;
        float v2 = (float)fm.targetRole.Hp / fm.targetRole.maxHp;

        targetBlood.value = v2;

        gm.player.HpChange     += Player_HpChange;
        fm.targetRole.HpChange += TargetRole_HpChange;
        //StartCoroutine("Fight");
    }
    /// <summary>
    /// 发牌和删除牌跺同时开始,都是在掷骰子动画播放完以后
    /// </summary>
    public void FaPai(FightModel fightModel)
    {
        //初始化骰子点数
        int[] dics = fightModel.Dice;
        if (dics.Length != 0)
        {
            _number1 = dics[0];
            _number2 = dics[1];
        }
        //播放动画
        Debug.Log("fightModel.Banker" + fightModel.Banker);
        PlaySaiZi(fightModel.Banker);
        //初始化玩家手牌
        PlayerManager.m_instance.m_EastPlayer.SetHandCardID(fightModel.DongHands);
        PlayerManager.m_instance.m_WestPlayer.SetHandCardID(fightModel.XiHands);
        PlayerManager.m_instance.m_SouthPlayer.SetHandCardID(fightModel.NanHands);
        PlayerManager.m_instance.m_NorthPlayer.SetHandCardID(fightModel.BeiHands);
        //设置当前玩家相机的culling Mask 1、2D只渲染自身的手牌 2、 3D不渲染自身的手和手牌
        switch (MainViewMgr.m_Instance.m_MySeat)
        {
        case MainSceneMger.PlayerSeat.PlayerEast:
            Debug.Log("初始化东家Layer");
            PlayerManager.m_instance.m_EastPlayer.SetLayer();
            break;

        case MainSceneMger.PlayerSeat.PlayerNorth:
            PlayerManager.m_instance.m_NorthPlayer.SetLayer();
            break;

        case MainSceneMger.PlayerSeat.PlayerSouth:
            PlayerManager.m_instance.m_SouthPlayer.SetLayer();
            break;

        case MainSceneMger.PlayerSeat.PlayerWest:
            PlayerManager.m_instance.m_WestPlayer.SetLayer();
            break;
        }
    }
Beispiel #12
0
    void betOkCallBack(object obj, object str)
    {
        int result = (int)obj;

        if (result == Config.CODE_SUCCESS)
        {
            int BenAmount = FightModel.getInstance().getBenAmount();


            //生产牌
            Dictionary <string, List <int> > CardsInfo = FightModel.getInstance().betVo.cardsInfo;
            List <int> MasterCards = CardsInfo["masterCards"]; MasterCards.Sort();          //默认List的排序是升序排序
            List <int> GuestCards  = CardsInfo["guestCards"]; GuestCards.Sort();

            //庄家的
            GameObject cardSpriteMaster = UITool.createUGUIImage("Sprite/sprite_CardSprite_" + MasterCards[0], Transform_CardSprite_MasterCards);
            cardSpriteMaster.transform.localPosition = new Vector3(-10, 0, 0);
            cardSpriteMaster.transform.localScale    = Vector3.one / 2;
            cardSpriteMaster = UITool.createUGUIImage("Sprite/sprite_CardSprite_" + MasterCards[1], Transform_CardSprite_MasterCards);
            cardSpriteMaster.transform.localPosition = new Vector3(10, 0, 0);
            cardSpriteMaster.transform.localScale    = Vector3.one / 2;
            //自己的
            GameObject cardSpriteGuest = UITool.createUGUIImage("Sprite/sprite_CardSprite_" + GuestCards[0], Transform_CardSprite_GuestCards);
            cardSpriteGuest.transform.localPosition = new Vector3(-10, 0, 0);
            cardSpriteGuest.transform.localScale    = Vector3.one / 2;
            cardSpriteGuest = UITool.createUGUIImage("Sprite/sprite_CardSprite_" + GuestCards[1], Transform_CardSprite_GuestCards);
            cardSpriteGuest.transform.localPosition = new Vector3(10, 0, 0);
            cardSpriteGuest.transform.localScale    = Vector3.one / 2;

            int[] compareResult = CardUtil.getCompareCards(MasterCards, GuestCards);
            Txt_Point_MasterCards.text = compareResult[0] + " 点";
            Txt_Point_GuestCards.text  = compareResult[1] + " 点";


            PopMaskMaskManager.show(0f);
            StartCoroutine(BetIEnumerator(compareResult[0], compareResult[1]));
        }
    }
        public async Task <ActionResult> Index(Guid id)
        {
            if (id == null)
            {
                RedirectToAction("List");
            }
            var fight = await CharacterFacade.GetFight(id);

            var characterId = Guid.Parse(User.Identity.Name);

            if (characterId != fight.AttackerId && characterId != fight.DefenderId)
            {
                return(RedirectToAction("NotAuthorized", "Error"));
            }
            var st = Session["steps"] as ICollection <(int, int, int, int, int, int, int)>;

            Session.Remove("steps");
            var fightModel = new FightModel {
                Fight = fight, Steps = st
            };

            return(View(fightModel));
        }
Beispiel #14
0
        public async Task <ActionResult> Create(CreateFightModel fight)
        {
            string                responseString = "";
            HttpWebResponse       response       = null;
            CharacterModel        ally           = new CharacterModel();
            CharacterModel        ennemy         = new CharacterModel();
            List <TerritoryModel> territories    = new List <TerritoryModel>();
            FightModel            fightModel     = new FightModel();
            int idFight;


            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:62313");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(
                        new MediaTypeWithQualityHeaderValue("application/json"));

                    /* Récupération du première personnage via API */
                    HttpResponseMessage responseMessage = await client.GetAsync("api/characters/" + fight.SelectedAlly);

                    if (responseMessage.IsSuccessStatusCode)
                    {
                        string temp = await responseMessage.Content.ReadAsStringAsync();

                        ally = JsonConvert.DeserializeObject <CharacterModel>(temp);

                        fightModel.FirstCharacter = ally;
                    }
                    else
                    {
                        return(HttpNotFound());
                    }

                    /* Récupération du deuxième personnage via API */
                    responseMessage = await client.GetAsync("api/characters/" + fight.SelectedEnnemy);

                    if (responseMessage.IsSuccessStatusCode)
                    {
                        string temp = await responseMessage.Content.ReadAsStringAsync();

                        ennemy = JsonConvert.DeserializeObject <CharacterModel>(temp);

                        fightModel.SecondCharacter = ennemy;
                    }
                    else
                    {
                        return(HttpNotFound());
                    }

                    /* Récupération de l'ID du territoire du combat via API */
                    responseMessage = await client.GetAsync("api/territories/");

                    if (responseMessage.IsSuccessStatusCode)
                    {
                        string temp = await responseMessage.Content.ReadAsStringAsync();

                        territories = JsonConvert.DeserializeObject <List <TerritoryModel> >(temp);

                        fightModel.ID_Territory = territories.SingleOrDefault(t => t.ID_House == fight.ID_HouseTerritory).ID;
                    }
                    else
                    {
                        return(HttpNotFound());
                    }

                    fightModel.ID_War    = fight.War.ID;
                    fightModel.ID_Winner = Fight(ally, ennemy);

                    var request = (HttpWebRequest)WebRequest.Create("http://localhost:62313/api/fights");
                    request.Accept = "application/json; charset=utf-8";
                    request.Method = "POST";

                    var content = new JavaScriptSerializer().Serialize(fightModel);
                    var data    = Encoding.ASCII.GetBytes(content);

                    request.ContentType   = "application/json";
                    request.ContentLength = data.Length;

                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }

                    response = (HttpWebResponse)request.GetResponse();

                    responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

                    responseMessage = await client.GetAsync("api/fights/");

                    if (responseMessage.IsSuccessStatusCode)
                    {
                        string temp = await responseMessage.Content.ReadAsStringAsync();

                        idFight = JsonConvert.DeserializeObject <List <FightModel> >(temp).Count;

                        fightModel.FirstCharacter = ally;
                    }
                    else
                    {
                        return(HttpNotFound());
                    }

                    return(RedirectToAction("Details", new { id = idFight }));
                }
            }
            catch
            {
                return(View());
            }
        }
Beispiel #15
0
    /**
     * 下注
     * */
    private void Btn_BetClick(GameObject go)
    {
        //在这里监听按钮的点击事件
        string name = go.name;

        string[] nameArr = name.Split(new char[] { '_' });        //Btn_Bet_0
        int      index   = int.Parse(nameArr[2]);

        int btnNum = BtnNumArr[index];        //当前的注数
        int flag   = FightModel.getInstance().setBenAmount(btnNum);

        if (flag == Config.CODE_SUCCESS)
        {
            Txt_Current_Bet.text = FightModel.getInstance().getBenAmount().ToString();

            /**
             * //制作一个新的筹码到桌子上
             * GameObject obj_Bet =  Instantiate(prefable_BetArr[index]) as GameObject;
             * obj_Bet.transform.parent  = Transform_Bet;
             * obj_Bet.transform.localScale = Vector3.one;
             *
             * System.Random ran = new System.Random();
             * Vector3 vect3 = new Vector3(ran.Next(0,300),ran.Next(0,300),0);
             * obj_Bet.transform.localPosition = vect3;
             **/



            /**
             * //第二种方法创建
             * object obj = Resources.Load("Resources/Textures/Bets/Bet_1.PNG", typeof(Sprite));
             * UnityEngine.Sprite sp = obj as Sprite;
             * //UnityEngine.UI.RawImage rawImage = new RawImage();
             * UnityEngine.UI.Image  image =  Image.Instantiate(obj);
             * image.sprite = sp;
             * image.transform.parent = Transform_Bet;
             *
             * GameObject button =  GameObject.Instantiate(Resources.Load<GameObject>("Textures/Bets/Bet_1.PNG"))as GameObject;
             * button.transform.parent = Transform_Bet;
             * button.transform.localPosition = Vector3.zero;
             * button.transform.localScale = Vector3.one;
             * //GameObject AObj = transform.Find("A").gameObject;
             * //GameObject BObj = transform.Find("B").gameObject;
             * //button.transform.SetSiblingIndex(AObj.transform.GetSiblingIndex());
             **/


            //第三种方法  创建图片
            GameObject    obj   = UITool.createUGUIImage("Sprite/sprite_Bet_" + index, Transform_Bet);
            System.Random ran   = new System.Random();          //随机坐标
            Vector3       vect3 = new Vector3(ran.Next(-100, 100), ran.Next(-70, 70), 0);
            obj.transform.localPosition = vect3;
            obj.name = "sprite_Bet_" + index;
            EventTriggerListener.Get(obj).onClick = Img_BetOkClick;           //点击事件
        }
        else if (flag == -1)
        {
            PopMessageManager.show("添加下注失败,下注不能超过:" + Config.MaxBet);
        }
        else if (flag == -2)
        {
            PopMessageManager.show("添加下注失败,下注不能超过用户钱袋");
        }
    }