Exemple #1
0
    IEnumerator StartCreateObject(SoldierData data, AssetBundle bundle, LuaFunction func = null)
    {
        string     name   = data.prefab;
        GameObject prefab = Util.LoadAsset(bundle, name);

        yield return(new WaitForEndOfFrame());

        if (prefab == null)
        {
            yield break;
        }
        GameObject go = Instantiate(prefab) as GameObject;

        go.name                    = name;
        go.transform.parent        = Parent;
        go.transform.localPosition = data.initPos;

        Soldier soldier = go.AddComponent <Soldier>();

        soldier.Init(data);
        soldiers.Add(soldier);

        yield return(new WaitForEndOfFrame());

        if (func != null)
        {
            func.Call(go);
        }
    }
Exemple #2
0
    public IEnumerator RequestUpdateSoldierExp(SoldierData soldierData, float exp, OnDelegate action)
    {
        SoldierData data = SoldierManager.Instance.AddSoldierExp(soldierData, exp);

        string strScheme = "/UpdateSoldierExp?userId=" + m_userId + "&soldierId=" + data.soldier_id.ToString()
                           + "&lv=" + data.level.ToString() + "&exp=" + data.exp.ToString();
        string          strURL  = m_serverIP + strScheme;
        UnityWebRequest request = UnityWebRequest.Get(strURL);

        yield return(request.SendWebRequest());


        if (request.isNetworkError || request.isHttpError)
        {
            UIManager.Instance.AddUI(UIPrefab.ERROR);
        }
        else if (request.downloadHandler.text == "fail")
        {
            UIManager.Instance.AddUI(UIPrefab.ERROR);
        }
        else
        {
            if (action != null)
            {
                action();
            }
        }
    }
Exemple #3
0
    public SoldierData AddSoldierExp(SoldierData soldierData, float exp)
    {
        if (soldierData.level >= soldierData.grade * 10)
        {
            return(soldierData);
        }

        float curExp = (soldierData.exp * GetMaxExp(soldierData.level)) + exp;

        while (curExp >= GetMaxExp(soldierData.level))
        {
            curExp -= GetMaxExp(soldierData.level);
            soldierData.level++;

            if (soldierData.level >= soldierData.grade * 10)
            {
                curExp          = 0;
                soldierData.exp = 0;
                break;
            }
        }

        soldierData.exp = curExp / GetMaxExp(soldierData.level);

        return(soldierData);
    }
Exemple #4
0
 public void Init(SoldierData data)
 {
     m_data = data;
     //m_charaCtl.height = m_data.height;
     //m_charaCtl.radius = m_data.radius;
     //m_charaCtl.center = m_data.center;
 }
Exemple #5
0
        /// <summary>
        /// 初始化士兵
        /// </summary>
        private void InitAllSoldiers(uint count, TroopAnimState nState, float deg = 0f)
        {
            m_BaseCount = count;
            if (soldierArray == null)
            {
                soldierArray = new SoldierObject[mData.line, mData.row];
            }
            if (soldierIndexList == null)
            {
                soldierIndexList = new List <int>();
            }

            for (int i = 0; i < soldierArray.GetLength(0); i++)
            {
                for (int j = 0; j < soldierArray.GetLength(1); j++)
                {
                    if (soldierArray[i, j] != null)
                    {
                        continue;
                    }
                    SoldierData soldierData = new SoldierData(mData, i, j);
                    var         soldier     = MainBattleManager.Instance.CreateSoldierObject(soldierData.type, transform);
                    soldier.Init(soldierData);
                    soldierArray[i, j] = soldier;
                    soldierIndexList.Add(GetIndexValue(i, j));
                }
            }
        }
Exemple #6
0
    public void CreateSoldier(SoldierData data, LuaFunction func = null)
    {
        string      name   = data.prefab;
        AssetBundle bundle = ResManager.LoadBundle(name);

        StartCoroutine(StartCreateObject(data, bundle, func));
        Debug.LogWarning("CreateObject::>> " + name + " " + bundle);
    }
    public Instance_Building(BuildingData buildingData, Index firstIndex, Index lastIndex)
    {
        producableUnit = buildingData.producableUnit;

        base.Set(buildingData);

        this.index     = firstIndex;
        this.lastIndex = lastIndex;
    }
Exemple #8
0
    public Instance_Soldier(SoldierData soldierData, Index index)
    {
        destination = new List <Index>();

        soldierSpeed = soldierData.soldierSpeed;

        base.Set(soldierData);

        this.index = index;
    }
Exemple #9
0
    public override void Initialize(CardData data)
    {
        base.Initialize(data);

        SoldierData soldierData = (SoldierData)data;

        // TODO: Currently, we set everyone to be 50% HP when created
        m_currHealth = soldierData.Health / 2;

        // Show the health at the bottom of the card
        SetFooterText(string.Format("{0} / {1}", m_currHealth, soldierData.Health));
    }
    public void InitializeSoldierUnit(SoldierData soldierData, List <GameObject> targetUnits)
    {
        m_data = soldierData;

        m_skill = gameObject.GetComponent <SkillBase>();
        m_skill.InitializeSkillData(m_data.skill);

        m_curHP = soldierData.healthPoint;
        m_maxHP = soldierData.healthPoint;

        m_targetUnits = targetUnits;
    }
    public void InitializeSkillData(SkillCode code, SoldierData data = new SoldierData())
    {
        string skillDataJSON = File.ReadAllText(Application.dataPath + "/Resources/JSON/SkillData.json");

        List <SkillData> skillData = JsonHelper.FromJson <SkillData>(skillDataJSON);

        m_data.code          = skillData[(int)code].code;
        m_data.name          = skillData[(int)code].name;
        m_data.percent       = skillData[(int)code].percent;
        m_data.thumbnailPath = skillData[(int)code].thumbnailPath;

        m_soldierData = data;
    }
Exemple #12
0
    public void InitializeSoldierTeamSlot(SoldierData data, OnButtonAction action, bool isEmpty = true)
    {
        m_soldierData = data;
        m_isEmpty     = isEmpty;

        if (m_buttonAction == null)
        {
            m_buttonAction = action;
        }

        SetContentVisible();
        SetSoldierData();
    }
    public void OnSpawnSoldier(SoldierData soldierData)
    {
        if (nextPossibleSpawnPointHolder.UsingSamePoint())
        {
            tempPoint = soldierPositioner.GetPos();
        }
        else
        {
            tempPoint = soldierPositioner.SearchAvailablePosition(selectedBuilding.selectedBuildingInstance.index, selectedBuilding.selectedBuildingInstance.lastIndex);
        }

        instanceManager.NewSoldier(soldierData, tempPoint);
    }
    public void InitializeSoldierInfoSlot(SoldierData data, OnButtonAction action)
    {
        m_soldierData = data;
        m_isSelected  = (data.team == 1);

        if (m_buttonAction == null)
        {
            m_buttonAction = action;
        }

        SetSoldierData();
        SetSelected(m_isSelected);
    }
Exemple #15
0
    void InitializeSoldierTeam()
    {
        List <SoldierData> soldiers = SoldierManager.Instance.GetSoldierTeam();

        for (int index = 0; index < m_teamSlots.Length; index++)
        {
            SoldierData soldierData = new SoldierData();
            if (soldiers.Count > index)
            {
                soldierData = soldiers[index];
            }

            m_teamSlots[index].GetComponent <SoldierTeamSlot>().InitializeSoldierTeamSlot(soldierData, OnUpdateSoldierTeamSlot, soldiers.Count <= index);
        }
    }
Exemple #16
0
    private List <SoldierData> getSoldiers()
    {
        List <SoldierData> list = new List <SoldierData>();

        SoldierData soldier1 = new SoldierData();

        soldier1.isMainHero = true;
        list.Add(soldier1);

        SoldierData soldier2 = new SoldierData();

        soldier2.initPos = new Vector3(5, 0, 0);
        //list.Add(soldier2);

        return(list);
    }
    void LoadSoldiers()
    {
        Soldier soldier = CreateSoldier(1);

        soldier.View.transform.position = new Vector3(-4, soldier.View.transform.position.y, -4);
        SoldierData data = new SoldierData(1, 100, 20, 1.0f);

        soldier.Data = data;
        m_soldierList.Add(soldier);

        Soldier soldier2 = CreateSoldier(2);

        soldier2.View.transform.position = new Vector3(4, soldier.View.transform.position.y, 4);
        SoldierData data2 = new SoldierData(2, 100, 15, 2.25f);

        soldier2.Data = data2;
        m_soldierList.Add(soldier2);
    }
Exemple #18
0
    // Token: 0x0600108E RID: 4238 RVA: 0x001D6B1C File Offset: 0x001D4D1C
    public void SetArmyIcon(Image image, int ArmyIdx, UIText IconText, CString str, UIButtonHint hint, Image background, float textWidth)
    {
        if (background == null || image == null || this.m_SpritesArray == null)
        {
            return;
        }
        Vector2 sizeDelta = background.rectTransform.sizeDelta;

        sizeDelta.x = ((textWidth <= 238.4f) ? (textWidth + 40f) : 278.4f);
        background.rectTransform.sizeDelta = sizeDelta;
        SoldierData recordByKey = this.DM.SoldierDataTable.GetRecordByKey((ushort)(ArmyIdx + 1));

        image.sprite = this.m_SpritesArray.GetSprite((int)recordByKey.SoldierKind);
        str.ClearString();
        str.IntToFormat((long)recordByKey.Tier, 1, false);
        str.AppendFormat("{0}");
        IconText.text = str.ToString();
        hint.Parm1    = (ushort)ArmyIdx;
    }
Exemple #19
0
    public void UpdateSoldierTeam(int soldierId, int isTeam)
    {
        for (int index = 0; index < m_soldierData.Count; index++)
        {
            if (m_soldierData[index].soldier_id == soldierId)
            {
                SoldierData soldier = m_soldierData[index];
                soldier.team         = isTeam;
                m_soldierData[index] = soldier;

                if (isTeam == 1)
                {
                    m_soldierTeam.Add(soldierId, soldier);
                }
                else
                {
                    m_soldierTeam.Remove(soldierId);
                }
                break;
            }
        }
    }
Exemple #20
0
    public void InitializeSoldierData(string strSoldierInfo)
    {
        m_soldierData.Clear();
        m_soldierTeam.Clear();

        var soldierInfo = JsonHelper.FromJson <SoldierInfo>(strSoldierInfo);

        foreach (var info in soldierInfo)
        {
            SoldierData soldierData = new SoldierData();
            soldierData.soldier_id = info.soldier_id;
            soldierData.leader     = info.leader;
            soldierData.code       = info.code;
            soldierData.level      = info.level;
            soldierData.exp        = info.exp;
            soldierData.team       = info.team;

            soldierData.name                 = m_soldierAbility[info.code].name;
            soldierData.type                 = m_soldierAbility[info.code].type;
            soldierData.skill                = m_soldierAbility[info.code].skill;
            soldierData.grade                = m_soldierAbility[info.code].grade;
            soldierData.startAttackPower     = m_soldierAbility[info.code].startAttackPower;
            soldierData.maxAttackPower       = m_soldierAbility[info.code].maxAttackPower;
            soldierData.healthPoint          = m_soldierAbility[info.code].healthPoint;
            soldierData.fatalHitProbability  = m_soldierAbility[info.code].fatalHitProbability;
            soldierData.physicalDefensePower = m_soldierAbility[info.code].physicalDefensePower;
            soldierData.magicalDefensePower  = m_soldierAbility[info.code].magicalDefensePower;

            soldierData.prefabPath = m_soldierAbility[info.code].prefabPath;
            soldierData.spritePath = m_soldierAbility[info.code].spritePath;

            m_soldierData.Add(soldierData);
            if (soldierData.team > 0)
            {
                m_soldierTeam.Add(info.soldier_id, soldierData);
            }
        }
    }
Exemple #21
0
    private SoldierFightUIMgr m_soldierFightUIMgr;      //

    public object[] GetBuildingTipsById(int buildingId, float x, float y)
    {
        if (BuildingTipsDic.ContainsKey(buildingId) == true)
        {
            return(BuildingTipsDic[buildingId]);
        }

        object[]     tipsContent = new object[] { "", "", null };
        BuildingData data        = BuildingData.dataMap[buildingId];

        tipsContent[0] = LanguageData.GetContent(data.name);
        tipsContent[1] = LanguageData.GetContent(170, data.building_consume);
        if (data.attack > 0)//建筑自身有攻击力
        {
            tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(183, data.attack));
        }
        if (data.soldier_id > 0)//有士兵产出
        {
            tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(171, data.production_time, LanguageData.GetContent(SoldierData.dataMap[data.soldier_id].name)));
            SoldierData soldierData = SoldierData.dataMap[data.soldier_id];
            string      attackObject;
            if (soldierData.attack_object.Count == 2)
            {
                attackObject = string.Concat(LanguageData.GetContent(173), ",", LanguageData.GetContent(174));
            }
            else
            {
                attackObject = soldierData.attack_object[0] == 1 ? LanguageData.GetContent(173) : LanguageData.GetContent(174);
            }
            tipsContent[1] = string.Concat(tipsContent[1], "\n", LanguageData.GetContent(soldierData.name), "\n",
                                           LanguageData.GetContent(172, soldierData.energy, soldierData.attack, soldierData.move), attackObject);
        }

        tipsContent[2] = new Vector3(x, y, 0);
        BuildingTipsDic[buildingId] = tipsContent;
        return(tipsContent);
    }
Exemple #22
0
    IEnumerator ProgressSoldierExpBar(int index)
    {
        SoldierData soldier  = SoldierManager.Instance.GetSoldierTeam()[index];
        bool        progress = true;

        while (progress)
        {
            yield return(null);

            SoldierData soldierData = m_prevSoldierTeam[index];
            if (m_prevSoldierTeam[index].level == soldier.level && m_prevSoldierTeam[index].exp < soldier.exp)
            {
                soldierData.exp += 0.01f;

                if (soldierData.exp >= soldier.exp)
                {
                    progress = false;
                }
            }
            else if (m_prevSoldierTeam[index].level < soldier.level)
            {
                soldierData.exp += 0.01f;

                float curExp = soldierData.exp * SoldierManager.Instance.GetMaxExp(soldierData.level);
                if (curExp >= SoldierManager.Instance.GetMaxExp(soldierData.level))
                {
                    SoundSystem.Instance.PlaySound(Sound.levelup);

                    soldierData.level++;
                    soldierData.exp = 0;
                }
            }

            m_prevSoldierTeam[index] = soldierData;
            SetSoldierExpData(index);
        }
    }
 private void UpdateUI(SoldierData obj)
 {
     amount.text = obj.Amount.ToString();
 }
 public void Set(dynamic data)
 {
     this.soldierData         = data as SoldierData;
     soldierData.DataChanged += UpdateUI;
     gameObject.GetComponent <SoldierCombatController>().OnDamageTaken += DisplayDmgTaken;
 }
Exemple #25
0
    // Token: 0x06001BDD RID: 7133 RVA: 0x0031847C File Offset: 0x0031667C
    public void ShowHint(byte type = 1, RectTransform tipRect = null)
    {
        this.m_RectTransform.gameObject.SetActive(true);
        this.Type = type;
        AllianceWarManager allianceWarMgr = ActivityManager.Instance.AllianceWarMgr;

        if (this.Type == 1)
        {
            this.m_BGRectTransform.gameObject.SetActive(false);
            this.m_BGRectTransform2.gameObject.SetActive(true);
            this.m_Main[0].gameObject.SetActive(false);
            float num  = 0f;
            bool  flag = GUIManager.Instance.BuildingData.GetBuildData(8, 0).Level >= 17;
            this.m_Text_F.gameObject.SetActive(flag);
            if (flag)
            {
                num += 22f;
                this.m_Line2.rectTransform.anchoredPosition = new Vector2(this.m_Line2.rectTransform.anchoredPosition.x, -161f);
            }
            else
            {
                this.m_Line2.rectTransform.anchoredPosition = new Vector2(this.m_Line2.rectTransform.anchoredPosition.x, -139f);
            }
            this.m_Main[0].gameObject.SetActive(allianceWarMgr.m_AllianceWarHintData.bMain);
            for (int i = 0; i < 5; i++)
            {
                if (allianceWarMgr.m_AllianceWarHintData.HeroData[i].ID != 0)
                {
                    this.m_HeroBtn2[i].gameObject.SetActive(true);
                    this.m_Frame2[i].gameObject.SetActive(false);
                    GUIManager.Instance.ChangeHeroItemImg(this.m_HeroBtn2[i].transform, eHeroOrItem.Hero, allianceWarMgr.m_AllianceWarHintData.HeroData[i].ID, allianceWarMgr.m_AllianceWarHintData.HeroData[i].Star, allianceWarMgr.m_AllianceWarHintData.HeroData[i].Rank, 0);
                }
                else
                {
                    this.m_HeroBtn2[i].gameObject.SetActive(false);
                    this.m_Frame2[i].gameObject.SetActive(true);
                }
            }
            DataManager instance = DataManager.Instance;
            this.m_StrStrength.ClearString();
            this.m_StrStrength.Append(instance.mStringTable.GetStringByID(9788u));
            this.m_StrStrength.Append(instance.mStringTable.GetStringByID((uint)((ushort)(9778 + (int)allianceWarMgr.m_AllianceWarHintData.ArmyCoordIndex))));
            this.m_Text_F.text = this.m_StrStrength.ToString();
            this.m_Text_F.SetAllDirty();
            this.m_Text_F.cachedTextGenerator.Invalidate();
            int num2 = 0;
            for (int j = 0; j < 16; j++)
            {
                int num3 = 3 - j / 4 + j % 4 * 4;
                if (allianceWarMgr.m_AllianceWarHintData.TroopData[num3] > 0u)
                {
                    SoldierData recordByKey = instance.SoldierDataTable.GetRecordByKey((ushort)(num3 + 1));
                    this.m_dataNum[num2].ClearString();
                    if ((int)recordByKey.SoldierKind < this.mSprite.Length)
                    {
                        this.m_data_Icon[num2].sprite = this.mSprite[(int)recordByKey.SoldierKind];
                    }
                    else
                    {
                        this.m_data_Icon[num2].sprite = this.mSprite[0];
                    }
                    this.m_Text_data_Rank[num2].text = recordByKey.Tier.ToString();
                    this.m_Text_data_Name[num2].text = instance.mStringTable.GetStringByID((uint)recordByKey.Name);
                    this.m_Text_data_Name[num2].SetAllDirty();
                    this.m_Text_data_Name[num2].cachedTextGenerator.Invalidate();
                    this.m_Text_data_Name[num2].cachedTextGeneratorForLayout.Invalidate();
                    this.m_dataNum[num2].ClearString();
                    this.m_dataNum[num2].IntToFormat((long)((ulong)allianceWarMgr.m_AllianceWarHintData.TroopData[num3]), 1, true);
                    this.m_dataNum[num2].AppendFormat("{0}");
                    this.m_Text_data_Num[num2].text = this.m_dataNum[num2].ToString();
                    this.m_Text_data_Num[num2].SetAllDirty();
                    this.m_Text_data_Num[num2].cachedTextGenerator.Invalidate();
                    this.m_Text_data_Num[num2].cachedTextGeneratorForLayout.Invalidate();
                    this.m_T_data[num2].gameObject.SetActive(true);
                    num2++;
                }
            }
            for (int k = num2; k < 16; k++)
            {
                this.m_T_data[k].gameObject.SetActive(false);
            }
            num += (float)(num2 * 28);
            this.m_BGRectTransform2.sizeDelta = new Vector2(this.m_BGRectTransform2.sizeDelta.x, 170f + num);
            RectTransform component = GUIManager.Instance.m_UICanvas.transform.GetComponent <RectTransform>();
            this.m_BGRectTransform2.anchoredPosition = new Vector2(0f, 0f);
            CString cstring  = StringManager.Instance.StaticString1024();
            CString cstring2 = StringManager.Instance.StaticString1024();
            cstring.ClearString();
            cstring2.ClearString();
            cstring.Append(allianceWarMgr.m_AllianceWarHintData.Name);
            if (allianceWarMgr.m_AllianceWarHintData.AllianceTagTag != string.Empty)
            {
                cstring2.Append(allianceWarMgr.m_AllianceWarHintData.AllianceTagTag);
                GameConstants.FormatRoleName(this.m_StrName, cstring, cstring2, null, 0, 0, null, null, null, null);
            }
            else
            {
                GameConstants.FormatRoleName(this.m_StrName, cstring, null, null, 0, 0, null, null, null, null);
            }
            this.m_TextName2.text = this.m_StrName.ToString();
            this.m_TextName2.SetAllDirty();
            this.m_TextName2.cachedTextGenerator.Invalidate();
            if (tipRect != null)
            {
                this.GetTipPosition(tipRect);
            }
        }
    }
Exemple #26
0
    public void SetSoldierData(SoldierData soldierData)
    {
        m_soldierData = soldierData;

        InitializeSoldierSolt();
    }
Exemple #27
0
 public void Set(SoldierData soldierData)
 {
     this.soldierData = soldierData;
     base.Set(soldierData);
 }
 public void Raise(SoldierData item)
 {
     this.Event.Invoke(item);
 }
    /* Saves the soldier */
    public void Save(int soldierIndex)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        Directory.CreateDirectory(DataScript.soldierDir); //creates the folder

        //creates the file to save
        FileStream file = File.Create (DataScript.soldierFile + soldierIndex + ".dat");

        //Creates a new instance of the SoldierData class
        SoldierData savedData = new SoldierData();

        /* Data to save -- saves into new SoldierData instance*/
        savedData.soldierNumber = soldierNumber;
        savedData.soldierName = GetName ();
        savedData.health = health;
        savedData.group = group;
        savedData.soldierClass = soldierClass;
        savedData.abilities = abilities;

        /* End data to save */

        formatter.Serialize (file, savedData); //saves the soldier instance to file
        file.Close(); //closes the file
    }