Beispiel #1
0
    //void Start() {
    //    Debug.Log("Start");
    //}

    public override void Reload(InfinityScrollView _infinity, int _index)
    {
        //Debug.Log("Reload");
        base.Reload(_infinity, _index);
        mIndex = _index;

        WujiangBean general = mCanvasExecutive.GetCity().GetWujiangBeans()[_index];

        if (mCanvasExecutive.CantainWujiangId(general.id))
        {
            mIsSeclet = true;
            mSelectImage.SetActive(true);
        }
        else
        {
            mIsSeclet = false;
            mSelectImage.SetActive(false);
        }
        mWujiang.text   = general.name;
        mTongshuai.text = general.tongshuai;
        mWuli.text      = general.wuli;
        mZhili.text     = general.zhili;
        mZhengzhi.text  = general.zhengzhi;
        mMeili.text     = general.meili;
    }
Beispiel #2
0
 void Start()
 {
     mEnableBtn.GetComponent <Button>().onClick.AddListener(delegate() {
         // 出征武将
         WujiangBean[] wujiangs = new WujiangBean[3];
         int i = 0;
         List <WujiangBean> currentCityWujiangs = mCity.GetWujiangBeans();
         foreach (int wujiangId in mSelectWujiangIds)
         {
             if (i < 3)
             {
                 foreach (WujiangBean wujiangBean in currentCityWujiangs)
                 {
                     if (wujiangBean.id == wujiangId)
                     {
                         wujiangs[i++] = wujiangBean;
                     }
                 }
             }
             else
             {
                 break;
             }
         }
         mCanvasExpedition.SetGeneral(wujiangs);
         this.gameObject.SetActive(false);
     });
     mCloseBtn.GetComponent <Button>().onClick.AddListener(delegate() {
         this.gameObject.SetActive(false);
     });
     // 武将表格(统帅、武力、智力、政治、魅力)
     for (int i = 0; i < mButtons.Length; i++)
     {
         if (i == 1)   // 1为武将,0为选中状态,2、3、4、5、6 : 统帅、武力、智力、政治、魅力
         {
             continue;
         }
         int index = i;
         mButtons[i].onClick.AddListener(delegate() {
             if (mIndexClick == index)
             {
                 // 反复点击重排
                 mIndexClick = 0;
                 Sort(index, true);
             }
             else
             {
                 // 点击其他的
                 mIndexClick = index;
                 Sort(index, false);
             }
             // List列表
             mInfinityScrollView.Setup(mCity.GetWujiangBeans().Count);
             mInfinityScrollView.InternalReload();
         });
     }
 }
Beispiel #3
0
 public void SetGeneral(WujiangBean[] wujiangs)
 {
     mChief    = wujiangs[0];
     mJunior01 = wujiangs[1];
     mJunior02 = wujiangs[2];
     SetNameAndSkill(wujiangs);
     SetImage(wujiangs);
     SetAbilitysValue(wujiangs[0], wujiangs[1], wujiangs[2]);
 }
Beispiel #4
0
    public void SelectItem(bool isOn, int index)
    {
        WujiangBean general = mCity.GetWujiangBeans()[index];

        if (isOn)
        {
            mSelectWujiangIds.Add(general.id);
        }
        else
        {
            mSelectWujiangIds.Remove(general.id);
        }
    }
Beispiel #5
0
    public static List <WujiangBean> GetExpeditionGenerals(List <WujiangBean> wujiangs)
    {
        WujiangBean general01 = null;
        WujiangBean general02 = null;
        WujiangBean general03 = null;

        if (wujiangs.Count >= 3)
        {
            general01 = wujiangs[Random.Range(0, wujiangs.Count)];
            while (true)
            {
                general02 = wujiangs[Random.Range(0, wujiangs.Count)];
                if (general02 != general01)
                {
                    break;
                }
            }
            while (true)
            {
                general03 = wujiangs[Random.Range(0, wujiangs.Count)];
                if (general03 != general01 && general03 != general02)
                {
                    break;
                }
            }
        }
        else if (wujiangs.Count == 2)
        {
            general01 = wujiangs[Random.Range(0, wujiangs.Count)];
            while (true)
            {
                general02 = wujiangs[Random.Range(0, wujiangs.Count)];
                if (general02 != general01)
                {
                    break;
                }
            }
        }
        else if (wujiangs.Count == 1)
        {
            general01 = wujiangs[0];
        }
        List <WujiangBean> temp = new List <WujiangBean>();

        temp.Add(general01);
        temp.Add(general02);
        temp.Add(general03);
        return(temp);
    }
Beispiel #6
0
 void OnEnable()
 {
     //Debug.Log(TAG + "OnEnable");
     mChiefImg.color    = new Color(1, 1, 1, 0);
     mJunior01Img.color = new Color(1, 1, 1, 0);
     mJunior02Img.color = new Color(1, 1, 1, 0);
     foreach (Text text in mNamesAndSkillTexts)
     {
         text.text = "";
     }
     // Slider
     foreach (Slider slider in mSlider)
     {
         slider.value = 0.5f;
     }
     for (int index = 0; index < mSliderText.Length; index++)
     {
         if (index == 0)
         {
             int max = 20000;
             mSliderText[index].text = (int)(max * mSlider[index].value) + "/" + max;
         }
         else if (index == 1)
         {
             int max = 10000;
             mSliderText[index].text = (int)(max * mSlider[index].value) + "/" + max;
         }
         else if (index == 2)
         {
             int max = 50000;
             mSliderText[index].text = (int)(max * mSlider[index].value) + "/" + max;
         }
     }
     mSliderDayText.text = "0日";
     foreach (Text text in mTotalText)
     {
         text.text = "1000000";
     }
     foreach (Text text in mTotalText)
     {
         text.text = "1000000";
     }
     // Ability
     foreach (Text text in mAbilityText)
     {
         text.text = "";
     }
     mArmText.text        = "";
     mArmAbilityText.text = "";
     // 战法
     foreach (Text text in mSkillText)
     {
         text.text = "";
     }
     mChief = null;
     // 设置能力五边形
     // 攻击力
     mAttack = 0;
     // 防御力
     mDefence = 0;
     // 智力
     mIntelligence = 0;
     // 建设力
     mBuild = 0;
     // 移动能力
     mMove = 0;
     mAbilityMesh.SetPointOffset(mAttack / 120f, mDefence / 120f, mIntelligence / 120f, mBuild / 120f, mMove / 120f);
 }
Beispiel #7
0
    // 设置攻击防御
    public void SetAbilitysValue(WujiangBean chief, WujiangBean junior01, WujiangBean junior02)
    {
        if (chief == null)
        {
            return;
        }
        if (junior01 == null)
        {
            junior01 = chief;
        }
        if (junior02 == null)
        {
            junior02 = chief;
        }

        float a1 = 0; // 兵种
        float a2 = 0;
        float a5 = 100;

        float b1 = 0; // 兵种适性

        if (mWeaponIndex == 0)
        {
            a1            = 1.2f;
            a2            = 1.2f;
            b1            = GetMaxAdaptability(chief.qiangbin, junior01.qiangbin, junior02.qiangbin);
            mArmText.text = "枪兵";
        }
        else if (mWeaponIndex == 1)
        {
            a1            = 1.0f;
            a2            = 1.5f;
            b1            = GetMaxAdaptability(chief.jibin, junior01.jibin, junior02.jibin);
            mArmText.text = "戟兵";
        }
        else if (mWeaponIndex == 2)
        {
            a1            = 1.0f;
            a2            = 1.0f;
            b1            = GetMaxAdaptability(chief.nubin, junior01.nubin, junior02.nubin);
            mArmText.text = "弩兵";
        }
        else if (mWeaponIndex == 3)
        {
            a1            = 1.5f;
            a2            = 1.2f;
            a5            = 120;
            b1            = GetMaxAdaptability(chief.qibin, junior01.qibin, junior02.qibin);
            mArmText.text = "骑兵";
        }
        float c1 = 0.8f; // 偏移值

        // 攻击力
        mAttack = (int)(GetMaxAbility(chief.tongshuai, junior01.tongshuai, junior02.tongshuai) * a1 * b1 * c1);
        // 防御力
        mDefence = (int)(GetMaxAbility(chief.tongshuai, junior01.tongshuai, junior02.tongshuai) * a2 * b1 * c1);
        // 智力
        mIntelligence = GetMaxAbility(chief.zhili, junior01.zhili, junior02.zhili);
        // 建设力
        mBuild = GetMaxAbility(chief.zhengzhi, junior01.zhengzhi, junior02.zhengzhi);
        // 移动能力
        mMove = (int)a5;

        mAbilityText[0].text = mAttack + "";
        mAbilityText[1].text = mDefence + "";
        mAbilityText[2].text = mIntelligence + "";
        mAbilityText[3].text = mBuild + "";
        mAbilityText[4].text = mMove + "";

        // 设置能力五边形
        mAbilityMesh.SetPointOffset(mAttack / 120f, mDefence / 120f, mIntelligence / 120f, mBuild / 120f, mMove / 120f);
    }
Beispiel #8
0
    void Start()
    {
        // 兵种
        for (int i = 0; i < mArms.Length; i++)
        {
            int index = i;
            mArms[index].onClick.AddListener(delegate() {
                // 点击兵种自动显示出征的武将(由AI控制选择哪些武将)
                mWeapons[mWeaponIndex].GetComponent <Image>().sprite = mSprite01[mWeaponIndex];
                mWeaponText[mWeaponIndex].text = 1000000 + "";
                mWeaponIndex = index;
                mWeapons[mWeaponIndex].GetComponent <Image>().sprite = mSprite02[mWeaponIndex];
                mWeaponText[mWeaponIndex].text = 1000000 - mCurrentSoldier + "";

                List <WujiangBean> temp = Strategy.GetExpeditionGenerals(mCity.GetWujiangBeans());

                WujiangBean[] wujiangs = new WujiangBean[3];
                wujiangs[0]            = temp[0];
                wujiangs[1]            = temp[1];
                wujiangs[2]            = temp[2];

                SetGeneral(wujiangs);

                CanvasExecutive canvasExecutive = mCanvasExecutive.GetComponent <CanvasExecutive>();
                // 设置本次选中的武将
                canvasExecutive.SetSelectGeneral(wujiangs);
            });
        }
        // 显示武将界面
        mExecutiveBtn.GetComponent <Button>().onClick.AddListener(delegate() {
            CanvasExecutive canvasExecutive = mCanvasExecutive.GetComponent <CanvasExecutive>();
            canvasExecutive.SetCity(mCity);
            canvasExecutive.Show();
        });
        // 确定、返回
        mEnableBtn.GetComponent <Button>().onClick.AddListener(delegate() {
            this.gameObject.SetActive(false);
            GameObject canvasGameMenu = GameObject.Find("Canvas GameMenu");
            if (canvasGameMenu != null)
            {
                canvasGameMenu.SetActive(false);
            }
            if (mChief != null)
            {
                // 出兵
                GameObject wujiangGameObject         = Instantiate(mWujiangPrefab);
                wujiangGameObject.transform.position = new Vector3(mCity.transform.position.x, 0.05f, mCity.transform.position.z);
                Wujiang wujiang        = wujiangGameObject.GetComponent <Wujiang>();
                wujiang.mAvatar.sprite = mChiefImg.sprite;
                wujiang.mHealth.text   = mSliderText[0].text.Split('/')[0];
                wujiang.mName.text     = mChief.name;
                // 设置武将技能
                wujiang.mArmType    = (ArmType)mWeaponIndex;
                wujiang.mArmAbility = mArmAbility;
                wujiang.mSkills     = new Skills(wujiang, new string[] { mSkillText[0].text, mSkillText[1].text, mSkillText[2].text });

                WujiangBean[] wujiangBeans = new WujiangBean[3];
                wujiangBeans[0]            = mChief;
                wujiangBeans[1]            = mJunior01;
                wujiangBeans[2]            = mJunior02;
                wujiang.SetWujiangBeans(wujiangBeans);
                // 显示路径
                Wujiang.SetCurrentWujiang(wujiang);
                wujiang.SetWujiangState(WujiangState.WujiangState_Prepare_Expedition);
                wujiang.SetCity(mCity);
                wujiang.ShowPath();
                // 减少城池里面的武将
                List <WujiangBean> allWujiangs = mCity.GetWujiangBeans();
                for (int i = allWujiangs.Count - 1; i >= 0; i--)
                {
                    for (int j = 0; j < wujiangBeans.Length; j++)
                    {
                        if (allWujiangs[i] == wujiangBeans[j])
                        {
                            allWujiangs.Remove(allWujiangs[i]);
                            break;
                        }
                    }
                }
                // 清零选中的武将
                CanvasExecutive canvasExecutive = mCanvasExecutive.GetComponent <CanvasExecutive>();
                canvasExecutive.ClearSelectWujiang();
            }
        });
        mCloseBtn.GetComponent <Button>().onClick.AddListener(delegate() {
            this.gameObject.SetActive(false);
        });
        // 武器,默认第一个亮
        mWeapons[mWeaponIndex].GetComponent <Image>().sprite = mSprite02[mWeaponIndex];
        for (int i = 0; i < mWeapons.Length; i++)
        {
            int index = i;
            mWeapons[index].onClick.AddListener(delegate() {
                if (mWeaponIndex == index && mChief == null)
                {
                    return;
                }
                else
                {
                    mWeapons[mWeaponIndex].GetComponent <Image>().sprite = mSprite01[mWeaponIndex];
                    mWeaponText[mWeaponIndex].text = 1000000 + "";
                    mWeaponIndex = index;
                    mWeapons[mWeaponIndex].GetComponent <Image>().sprite = mSprite02[mWeaponIndex];
                    mWeaponText[mWeaponIndex].text = 1000000 - mCurrentSoldier + "";

                    SetAbilitysValue(mChief, mJunior01, mJunior02);
                };
            });
        }
        // 滑动条
        for (int i = 0; i < mSlider.Length; i++)
        {
            int index = i;
            mSlider[index].onValueChanged.AddListener(delegate(float value) {
                int max     = 0;
                int current = 0;
                if (index == 0)
                {
                    // 士兵
                    max             = 20000;
                    mCurrentSoldier = (int)(max * value);
                    mWeaponText[mWeaponIndex].text = 1000000 - mCurrentSoldier + "";
                }
                else if (index == 1)
                {
                    max      = 10000;
                    int temp = (int)(max * value);
                }
                else if (index == 2)
                {
                    max = 50000;
                    mSliderDayText.text = (int)(200 * value) / 10 * 10 + "日";
                }
                current = (int)(max * value);
                mSliderText[index].text = current + "/" + max;
                mTotalText[index].text  = 1000000 - current + "";
            });
        }
        // Test
        //string PATH = Application.streamingAssetsPath + "/img/img";
        //string url = PATH + BattleGameManager.msWujiangs[0].id + ".jpg";
        //StartCoroutine(LoadImage(url, null));
    }