Exemple #1
0
    /// <summary>
    /// 炮弹兵是否能增加经验 0:可以增加,1:已经满级不能增加
    /// </summary>
    /// <returns><c>true</c>, if can add exp was checked, <c>false</c> otherwise.</returns>
    /// <param name="SoldireTypeID">炮弹兵ID.</param>
    /// <param name="AddExpNum">炮弹兵增加的经验值</param>
    public static int CheckCanAddExp(int SoldireTypeID, int AddExpNum)
    {
        SoldierInfo info = SoldierDC.GetSoldiers(SoldireTypeID);

        if (info == null)
        {
            return(0);
        }

        s_soldier_experienceInfo expInfo = GetSoldierExpData(info.Level);

        if (expInfo.exp == 0)
        {
            return(1);
        }

        int MaxLvl = UserM.GetUserMaxHeroLevel(info.Level);
        int MaxExp = GetSoldierTotalExpAtLevel(MaxLvl);


        if (info.EXP >= MaxExp)
        {
            return(1);
        }
        else if (info.EXP + AddExpNum < MaxExp)
        {
            return(0);
        }
        else if (info.EXP + AddExpNum > MaxExp && info.EXP < MaxExp)
        {
            return(0);
        }
        return(0);
    }
Exemple #2
0
    /// <summary>
    /// 全部
    /// </summary>
    /// <param name="sender"></param>
    public void TogAll_OnChangeEventHandler()
    {
        if (!MyHead.TogAll.value)
        {
            return;
        }
        List <SoldierInfo> crewList = new List <SoldierInfo>();

        SoldierDC.GetSoldiers(ref crewList, CombatLoactionType.ALL);
        m_iSoldiersCount = crewList.Count;
        SoldierM.SortSoldierList(ref crewList);
        LoadHeadList(crewList, MyHead.SelectSoldierTable, 1);

        if (!m_InitSoldiers)
        {
            List <int> soldiersLastCombat = SoldierDC.GetSoldiersLastCombat();
            for (int i = 0; i < soldiersLastCombat.Count; i++)
            {
                int soldierID = soldiersLastCombat[i];
                if (soldierID != 0)
                {
                    SelectSoldier(soldierID);
                }
            }
            int captinLastCombat = SoldierDC.GetCaptainLastCombat();
            if (captinLastCombat != 0)
            {
                SetBlackScienceDataID(captinLastCombat);
            }

            m_InitSoldiers = true;
        }
    }
Exemple #3
0
    /// <summary>
    /// 升阶
    /// </summary>
    void BtnJinSheng_OnClickEventHandler(UIButton sender)
    {
        int levelLimit = 0;
        int equipID1   = 0;
        int equipID2   = 0;
        int equipID3   = 0;
        int equipID4   = 0;
        int equipID5   = 0;
        int equipID6   = 0;

        if (ConfigM.GetNextQuality(m_soldierInfo.Quality) == 0)
        {
            NGUIUtil.ShowTipWndByKey("30000017", 1.0f, ConstantData.iDepBefore3DModel);
            return;
        }

        SoldierM.GetUpQualityNeed(m_soldierInfo.SoldierTypeID, m_soldierInfo.Quality, ref levelLimit,
                                  ref equipID1, ref equipID2, ref equipID3,
                                  ref equipID4, ref equipID5, ref equipID6);

        if (CheckUpEquip(levelLimit, equipID1, equipID2, equipID3, equipID4, equipID5, equipID6) == false)
        {
            NGUIUtil.ShowTipWndByKey(30000019);
            return;
        }
        //可以进阶啦,发送进阶请求
        EnablePrevNextBtn(false);
        DoEquipsFly();
        m_preSoldierInfo.Copy(m_soldierInfo);
        SoldierDC.Send_SoldierQualityUpRequest(m_soldierInfo.ID);
    }
Exemple #4
0
    void GoCombat()
    {
        SoundPlay.PlayBackGroundSound("bgm_battle_loop", true, false);
        List <int>         l           = new List <int>();
        List <int>         lDefense    = new List <int>();
        List <SoldierInfo> soldierList = new List <SoldierInfo>();

        foreach (var i in m_SelectedSoldier)
        {
            soldierList.Add(SoldierDC.GetSoldiers(i.Soldier.ID));
            l.Add(i.Soldier.ID);
            lDefense.Add(i.Soldier.SoldierTypeID);
        }

        CmCarbon.SetAttackSoldier(soldierList);
        if (BattleEnvironmentM.GetBattleEnvironmentMode() == BattleEnvironmentMode.CombatPVE)
        {
            /*if (StageDC.GetPveMode() == PVEMode.Defense) {
             *  StageDC.SendStageAttackRequest(StageDC.GetCompaignStageID(), lDefense, 0);
             * } else {
             *  StageDC.SendStageAttackRequest(StageDC.GetCompaignStageID(), l, m_SelectedBlackScienceDataID);
             * }
             * DataCenter.RegisterHooks((int)gate.Command.CMD.CMD_702, CanCombat);*/
            JoinCombat();
        }
        else
        {
            JoinCombat();
        }
    }
Exemple #5
0
    public void BtnAddSkill_OnClickEventHandler(UIButton sender)
    {
        ///1 金币不足,2炮弹兵等级不足,0是能够升级,3技能为空不能升级,4技能点不足.
        int result = CheckSkillCanUp();

        if (UserDC.GetLeftSkillPoints() >= 1 && result == 0)
        {
            if (m_iSkillNo < 6)
            {
                PlayAddSkillEffect();
                SoldierDC.Send_SoldierSkillUpRequest(m_dSoldierID, m_iSkillNo);
            }
        }
        else if (result == 1)
        {
            NGUIUtil.ShowTipWndByKey(99901003);
        }
        else if (result == 2)
        {
            NGUIUtil.ShowTipWndByKey(10000104);
        }
        else if (result == 4)
        {
            NGUIUtil.ShowTipWndByKey(99914004);
        }
        else if (result == 5)
        {
            NGUIUtil.ShowTipWndByKey(99914003);
        }
    }
Exemple #6
0
    void BtnSure_OnClickEventHandler(UIButton sender)
    {
        switch (m_wndType)
        {
        case 1:    //确定
            BtnWndBg_OnClickEventHandler(null);
            break;

        case 2:    //合成公式
            TweenLeft();
            EquipComposeWnd wnd = WndManager.GetDialog <EquipComposeWnd>();
            if (wnd)
            {
                EnableBtn(false);
                wnd.SetData(m_iItemTypeID);
            }
            break;

        case 3:    //穿装备
            PdbycWnd wnd1 = WndManager.FindDialog <PdbycWnd>();
            if (wnd1)
            {
                wnd1.SetEquipDataNoReady();
            }
            MyHead.BtnSure.isEnabled = false;
            SoldierDC.Send_SoldierEquipRequest(m_soldierInfo.ID, m_posIndex);
            WndManager.DestoryDialog <EquipmentInfoWnd>();
            break;

        case 4:    //购买
            //堆叠数量上限判定
            bool overLimit = ItemDC.CheckItemOverLimit(m_iItemTypeID, m_iBuyCount);
            if (overLimit)
            {
                NGUIUtil.ShowTipWndByKey(30000030);
                break;
            }
            //持有代币是否足够
            bool currencyEnough = UserDC.CheckCurrencyEnough(m_iBuyCurrency, m_iBuyPrice);
            if (currencyEnough)
            {
            }
            else
            {
                string currencyName = NGUIUtil.GetStringByKey(99700000 + m_iBuyCurrency);
                string tipText      = string.Format(NGUIUtil.GetStringByKey(30000029), currencyName);
                //NGUIUtil.ShowTipWnd(tipText);
                NGUIUtil.ShowFreeSizeTipWnd(tipText);
            }
            break;

        case 5:    //获得途径
            ItemComeFromWnd Formwnd = WndManager.GetDialog <ItemComeFromWnd>();
            s_itemtypeInfo  info    = ItemM.GetItemInfo(m_iItemTypeID);
            Formwnd.SetData(info, m_soldierInfo, null);
            break;
        }
    }
Exemple #7
0
 /// <summary>
 /// 模拟数据接口。
 /// </summary>
 public static void SimulationData()
 {
     UserDC.SimulationData();
     SoldierDC.SimulationData();
     StageDC.SimulationData();
     BuildDC.SimulationData();
     BlackScienceDC.SimulationData();
     ShipPlanDC.SimulationData();
 }
Exemple #8
0
 /// <summary>
 /// 刷新UI(穿新装备)
 /// </summary>
 public void RefreshUI()
 {
     m_soldierInfo = SoldierDC.GetSoldiers(m_soldierInfo.ID);
     SetData(m_soldierInfo);
     UpdateSoldierInList(m_soldierInfo.ID);
     ShowPutEquipEffect();
     DoCanJinSheng();
     DoCanShengXing();
 }
Exemple #9
0
 /// <summary>
 /// 清理数据中心数据
 /// </summary>
 public static void ClearDC()
 {
     UserDC.ClearDC();
     SoldierDC.ClearDC();
     BuildDC.ClearDC();
     ItemDC.ClearDC();
     BlackScienceDC.ClearDC();
     ShipPlanDC.ClearDC();
 }
Exemple #10
0
    public void SetRoleRewardItem(SoldierSettlement Info, bool UpLine = true)
    {
        if (Info == null)
        {
            return;
        }
        SoldierInfo soldier = SoldierDC.GetSoldiers(Info.mSoldierid);

        m_info = soldier;
        if (soldier == null)
        {
            return;
        }

        SetSoldierQuality(m_info.Quality);

        if (MyHead.level != null)
        {
            MyHead.level.text = "[ffffff]" + soldier.Level + "[-]";
        }
        //
        if (MyHead.exp != null)
        {
            MyHead.exp.text = "[ffffff]+" + Info.mExp + "[-]";
        }


        if (MyHead.m_star != null && MyHead.m_star.Length == 5 && soldier.StarLevel <= 5)
        {
            NGUIUtil.SetStarLevelNum(MyHead.m_star, soldier.StarLevel);
            NGUIUtil.SetStarHidden(MyHead.m_star, soldier.StarLevel);
        }

        NGUIUtil.Set2DSprite(MyHead.head, "Textures/role/", soldier.m_modeltype.ToString());


        if (MyHead.expline != null)
        {
            int   Needexp = SoldierM.GetUpLevelNeedExp(soldier.Level);
            float value   = soldier.EXP * 1.0f / Needexp;
            if (UpLine)
            {
                NGUIUtil.UpdateFromValue(MyHead.expline, value);
            }
            else
            {
                MyHead.expline.fillAmount = System.Convert.ToSingle(value);
            }
        }
        if (MyHead.BtnShowTip)
        {
            MyHead.BtnShowTip.OnPressDownEventHandler += BtnShowTip_OnPressDownEventHandler;
            MyHead.BtnShowTip.OnPressUpEventHandler   += BtnShowTip_OnPressUpEventHandler;
        }
    }
Exemple #11
0
    /// <summary>
    /// 新增士兵
    /// </summary>
    public static void CreateSoldierFromWarehouse(int soldierId)
    {
        SoldierInfo infoSoldier = SoldierDC.GetSoldiers(soldierId);

        if (infoSoldier == null)
        {
            return;
        }

        CanvasCore Core     = new CanvasCore(ShipBuildType.Soldier, true, ShipPutInfo.GetNewShipPutId(), infoSoldier.ID, Vector2.zero);
        Int2       BornPos  = new Int2(0, 0);
        bool       isCanPut = PutCanvasM.GetBornPos(Core, ref BornPos);

        if (isCanPut == false)
        {
            NGUIUtil.ShowTipWndByKey("88800007", 1.0f);
            return;
        }

        Transform t_start = GetLifeMBornNode(true);
        Role      r       = new Role();

        r.CreateSkin(t_start, infoSoldier.m_modeltype, infoSoldier.m_name, AnimatorState.Stand, true);
        //IGameRole i = GameRoleFactory.Create(t_start, infoSoldier.m_modeltype, infoSoldier.m_name, AnimatorState.Stand);
        GameObject go = r.RoleSkinCom.tRoot.gameObject;;

        go.name = infoSoldier.m_name;

        Vector3 posMy        = t_start.position;
        Vector3 screenSpace  = Camera.main.WorldToScreenPoint(posMy);
        Vector3 pos          = new Vector3(Screen.width / 2, Screen.height / 1.5f);
        Vector3 posTempmouse = Camera.main.ScreenToWorldPoint(new Vector3(pos.x, pos.y, screenSpace.z));

        posTempmouse = U3DUtil.SetZ(posTempmouse, 0f);
        go.transform.localPosition = Vector3.zero;
        Transform tRole = go.transform.GetChild(0);

        TouchMove touch = tRole.gameObject.AddComponent <TouchMove>();

        tRole.gameObject.transform.parent.localPosition = RoomMap.GetShipBuildLocalPos(BornPos, ShipBuildType.Soldier);

        touch.InitTouchMoveCore(Core, BornPos, null);


        AddBuildingEditPlugin(touch);
        if (infoSoldier.SoldierTypeID == 100003)   //隐藏蹦蹦
        //RolePropertyM rpm = i.GetBodyComponent<RolePropertyM>();
        {
            r.RoleSkinCom.ShowLeftHand(false);
        }
        TouchMoveManager.JointShipBuild(touch);
        TouchMoveManager.SetCurTouchMove(touch);
        touch.WareHouse2Ship(BornPos);
    }
Exemple #12
0
 /// <summary>
 /// 召唤英雄
 /// </summary>
 void BtnYES_OnClickEventHandler(UIButton sender)
 {
     if (m_iWndType == 1)
     {
         SoldierDC.Send_SoldierSummonRequest(m_soldierInfo.SoldierTypeID);
     }
     else if (m_iWndType == 2)
     {
         BuildDC.Send_BuildComposeRequest(m_buildInfo.BuildType);
     }
 }
Exemple #13
0
 private void SoldierQualityUpResponse(int nErrorCode)
 {
     if (nErrorCode == 0)
     {
         m_soldierInfo = SoldierDC.GetSoldiers(m_ID);
         SetData(m_soldierInfo);
         float duration = ShowQualityAddGrow(m_preSoldierInfo, m_soldierInfo);
         UpLevelEffect();
         //播放炮弹兵动作 和 独白
         NGUIUtil.ExcuteWaitAction(gameObject, duration, ShowUpQualityWndCallBack);
     }
 }
Exemple #14
0
    /// <summary>
    /// 力量筛选
    /// </summary>
    /// <param name="sender"></param>
    public void TogTank_OnChangeEventHandler()
    {
        if (!MyHead.TogTank.value)
        {
            return;
        }
        List <SoldierInfo> crewList = new List <SoldierInfo>();

        SoldierDC.GetSoldiers(ref crewList, CombatLoactionType.Tank);
        SoldierM.SortSoldierList(ref crewList);
        LoadHeadList(crewList, MyHead.SelectSoldierTable, 1);
    }
Exemple #15
0
 /// <summary>
 /// 获取炮弹兵
 /// </summary>
 /// <author>zhulin</author>
 public bool  GetSoldier(ref SoldierInfo Soldier)
 {
     Soldier = SoldierDC.GetSoldiers(objid);
     if (Soldier != null)
     {
         Soldier.CX = cxMapGrid;
         Soldier.CY = cyMapGrid;
         Soldier.ID = objid;
         return(true);
     }
     return(false);
 }
Exemple #16
0
 private void SoldierStarUpResponse(int nErrorCode)
 {
     if (nErrorCode == 0)
     {
         m_soldierInfo = SoldierDC.GetSoldiers(m_ID);
         SetData(m_soldierInfo);
         ShowStarAddGrow();
         UpLevelEffect();
         NGUIUtil.ExcuteWaitAction(gameObject, 1.2f, ShowUpStarWndCallBack);
     }
     else
     {
         NGUIUtil.DebugLog("炮弹兵升星失败 =" + nErrorCode);
     }
 }
Exemple #17
0
    public override void WndStart()
    {
        base.WndStart();

        SoldierDC.GetSoldiers(ref m_allExistSoldier, CombatLoactionType.ALL);
        SoldierM.SortSoldierList(ref m_allExistSoldier);

        if (MyHead.BtnLeft)
        {
            MyHead.BtnLeft.OnClickEventHandler += BtnLeft_OnClickEventHandler;
        }
        if (MyHead.BtnRight)
        {
            MyHead.BtnRight.OnClickEventHandler += BtnRight_OnClickEventHandler;
        }
        CreateItems();
    }
Exemple #18
0
    /// <summary>
    /// 填充建造类型数据
    /// </summary>
    public void FillData(ShipBuildType type)
    {
        m_shipBuildType = type;
        switch (type)
        {
        case ShipBuildType.BuildRoom:
            warehouseBuildList = BuildDC.GetBuildingList(AttributeType.ALL);
            break;

        case ShipBuildType.Soldier:
            SoldierDC.GetSoldiers(ref soldierList, CombatLoactionType.ALL);
            break;

        default:
            break;
        }
    }
Exemple #19
0
    /// <summary>
    /// 设定总战斗力
    /// </summary>
    /// <param name="force"></param>
    public void SetCombatForece(int soldierID, bool isAdd)
    {
        SoldierInfo info = new SoldierInfo();

        info = SoldierDC.GetSoldiers(soldierID);

        int combatForece = info.m_combat_power;

        if (!isAdd)
        {
            combatForece = -combatForece;
        }
        if (MyHead.LblCombatForce)
        {
            m_iTotalCombatForce       += combatForece;
            MyHead.LblCombatForce.text = m_iTotalCombatForce.ToString();
        }
    }
Exemple #20
0
    private void SetUI()
    {
        List <SoldierInfo> lList = new List <SoldierInfo> ();

        SoldierDC.GetSoldiers(ref lList, CombatLoactionType.ALL);
        SoldierM.SortSoldierList(ref lList);

        for (int i = 0; i < lList.Count; i++)
        {
            GameObject go = NDLoad.LoadWndItem("AddExpItem", MyHead.Table.transform);
            if (go != null)
            {
                AddExpItem item = go.GetComponent <AddExpItem>();
                if (item != null)
                {
                    item.SetData(lList[i], m_ItemInfo, this);
                }
            }
        }
        MyHead.Table.Reposition();
    }
Exemple #21
0
 private void YesUpStar(UIButton sender)
 {
     if (m_bStarLevelUp)
     {
         if (UserDC.GetCoin() >= m_starInfo.price)
         {
             //NGUIUtil.ShowTipWnd("可以升星啦");
             //                MyHead.BtnShengXing.isEnabled = false;
             EnablePrevNextBtn(false);
             m_preSoldierInfo.Copy(m_soldierInfo);
             SoldierDC.Send_SoldierStarUpRequest(m_soldierInfo.ID);
         }
         else     //金钱不够
         {
             NGUIUtil.ShowTipWndByKey <int>(88800108, 1.0f, ConstantData.iDepBefore3DModel);
         }
     }
     else     //灵魂石不够
     {
         NGUIUtil.ShowTipWndByKey <int>(88800107, 1.0f, ConstantData.iDepBefore3DModel);
     }
 }
Exemple #22
0
 /// <summary>
 /// 刷新战斗力(技能升级)
 /// </summary>
 public void RefreshCombatPower()
 {
     m_soldierInfo = SoldierDC.GetSoldiers(m_soldierInfo.ID);
     MyHead.LblCombatPower.text = m_soldierInfo.m_combat_power.ToString();//设置战斗力
 }
Exemple #23
0
    /// <summary>
    ///  获取所有炮弹兵数据
    /// </summary>
    /// <param name="mainProperty">-1 全部</param>
    private void GetAllSoldiersData()
    {
        m_allExistSoldier.Clear();
        m_allCanExistSoldierInfo.Clear();
        m_allNoExistSoldierInfo.Clear();

        List <SoldierInfo> lAll = SoldierM.GetAllSoldier();

        foreach (SoldierInfo I in lAll)
        {
            SoldierInfo Info = SoldierDC.GetSoldiersBySoldierType(I.SoldierTypeID);
            if (Info != null)
            {
                m_allExistSoldier.Add(Info);
                continue;
            }

            if (I.CheckCanSummon() == true)
            {
                m_allCanExistSoldierInfo.Add(I);
            }
            else
            {
                m_allNoExistSoldierInfo.Add(I);
            }
        }
        //sort
        //已召唤
        SoldierM.SortSoldierList(ref m_allExistSoldier);
        // 能召唤
        m_allCanExistSoldierInfo.Sort((a, b) => {
            if (a.SoldierTypeID > b.SoldierTypeID)
            {
                return(1);
            }
            else if (a.SoldierTypeID < b.SoldierTypeID)
            {
                return(-1);
            }
            else
            {
                return(0);
            }
        });
        //不能召唤
        m_allNoExistSoldierInfo.Sort((a, b) => {
            if (a.GetHaveFragmentNum() > b.GetHaveFragmentNum())
            {
                return(-1);
            }
            else if (a.GetHaveFragmentNum() < b.GetHaveFragmentNum())
            {
                return(1);
            }

            if (a.SoldierTypeID > b.SoldierTypeID)
            {
                return(1);
            }
            else if (a.SoldierTypeID < b.SoldierTypeID)
            {
                return(-1);
            }
            else
            {
                return(0);
            }
        });
    }
Exemple #24
0
 private void FillSoldierData(CombatLoactionType type)
 {
     SoldierDC.GetSoldiers(ref soldierList, type);
 }
Exemple #25
0
 public void RefreshSkillItem()
 {
     m_Info = SoldierDC.GetSoldiers(m_Info.ID);
     SetData(m_Info);
 }
Exemple #26
0
    public static bool ProcessData(int CmdID, object Para)
    {
        bool bResult = true;

        if (Para is gate.GateMessage.MessageContent)
        {
            gate.GateMessage.MessageContent msg = Para as gate.GateMessage.MessageContent;
            int nErrorCode         = 0;
            gate.ErrorMessage emsg = msg.error_message;
            if (emsg != null)
            {
                if (emsg.code > 0)
                {
                    FileLog.ProtocolDump(emsg);
                    nErrorCode = emsg.code;
                    NGUIUtil.DebugLog(string.Format("CmdID={0},errorCode={1},description={2}",
                                                    CmdID, emsg.code, emsg.description));
                    bResult = false;
                    //return false; //如取名重名也会返回error_message.code>0,所以这里不宜return,否则客户端hook代码不会执行
                }
            }

            object data = null;
            if (bResult && msg.network_message != null)   //如果失败了,有可能msg.network_message为null
            {
                data = protobufM.Deserialize(msg.proto_name, msg.network_message);
            }
            //dump
            FileLog.ProtocolDumpwrite(CmdID.ToString());
            FileLog.ProtocolDumpwriteXml(CmdID.ToString());
            if (CmdID != 9999)
            {
                FileLog.ProtocolDump(data);
            }

            //统一在外围直接解析,不到具体的DC去
            if (bResult == true)
            {
                int DcBlock = CmdID / 100;
                switch (DcBlock)
                {
                case 2:
                    bResult = SoldierDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 5:
                    bResult = ShipPlanDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 6:
                    bResult = UserDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 7:
                    bResult = StageDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 8:
                    bResult = ItemDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 9:
                    bResult = BuildDC.ProcessData(CmdID, nErrorCode, data);
                    break;

                case 11:
                    bResult = BlackScienceDC.ProcessData(CmdID, nErrorCode, data);
                    break;
                }
            }
            ProcessRealHooks(CmdID, nErrorCode);
        }


        return(bResult);
    }