Beispiel #1
0
    //校验被动技能之主动释放的概率[11/3/2015 Zmy]
    public bool CheckFreeLogic(ObjectHero objHero)
    {
        if (objHero.GetHeroData().QualityLev > 1 && OneSpellFreeState == false && m_NormalAttackCount >= DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_P())
        {
            int nProValueAddtion = (m_NormalAttackCount - DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_P()) * DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_B();
            int nProValue        = DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_A() + nProValueAddtion;

            int           iRnd       = System.DateTime.Now.Millisecond;
            System.Random randomCoor = new System.Random(iRnd);
            int           nRand      = randomCoor.Next(1, 1000);

            if (nRand <= nProValue)
            {
                OneSpellFreeState = true;
                //Debug.Log("!满足第一个被动技能释放。在周期内第" + m_NormalAttackCount + "次普攻触发了!释放第一技能,普攻次数+1 =====s随机概率为" + nRand + "!!!释放概率:" + nProValue);
                m_NormalAttackCount++;
                if (m_NormalAttackCount > DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_X())
                {
                    ClearUp();
                }
                objHero.LaunchFreeSpellLogic(EM_SPELL_PASSIVE_INDEX.EM_SPELL_PASSIVE_FIRST);
                return(true);
            }
        }

        if (objHero.GetHeroData().QualityLev > 3 && TwoSpellFreeState == false && m_NormalAttackCount >= DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_Q())
        {
            int nProValueAddtion = (m_NormalAttackCount - DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_Q()) * DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_D();
            int nProValue        = DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_C() + nProValueAddtion;

            int           iRnd       = System.DateTime.Now.Millisecond;
            System.Random randomCoor = new System.Random(iRnd);
            int           nRand      = randomCoor.Next(1, 1000);

            if (nRand <= nProValue)
            {
                TwoSpellFreeState = true;
                //Debug.Log("!满足第二个被动技能释放。在周期内第" + m_NormalAttackCount + "次普攻触发了!释放第一技能,普攻次数+1 =====s随机概率为"+ nRand + "!!!释放概率:"+nProValue);
                m_NormalAttackCount++;
                if (m_NormalAttackCount > DataTemplate.GetInstance().m_GameConfig.getPassive_Active_Skills_X())
                {
                    ClearUp();
                }
                objHero.LaunchFreeSpellLogic(EM_SPELL_PASSIVE_INDEX.EM_SPELL_PASSIVE_SECOND);
                return(true);
            }
        }

        //Debug.Log("!本次普攻次数为:"+m_NormalAttackCount + "没有触发任何被动技");
        return(false);
    }
Beispiel #2
0
        public void InitIcon()
        {
            HeroTemplate ht = (HeroTemplate)DataTemplate.GetInstance().m_HeroTable.getTableData(heroId);

            this.skillId = ht.getSkill1ID();
            mSkillInfo   = (SkillTemplate)DataTemplate.GetInstance().m_SkillTable.getTableData(skillId);

            ArtresourceTemplate at = (ArtresourceTemplate)DataTemplate.GetInstance().m_ArtresourceTable.getTableData(ht.getArtresources());

            mMaxCoolDownTime = mSkillInfo.getCooldown() / 1000.0f;

            GameEventDispatcher.Inst.addEventListener(GameEventID.F_FightStateUpdate, SetSkillStatus);

            // GameObject button = transform.FindChild("Icon").gameObject;
            transform.GetComponent <Button>().onClick.AddListener(new UnityEngine.Events.UnityAction(OnSkillClick));
            //button.AddComponent<Button>().onClick.AddListener(new UnityEngine.Events.UnityAction(OnSkillClick));

            m_HeroIcon        = transform.FindChild("touxiang/Image(heroicon)").gameObject.GetComponent <Image>();
            m_HeroIcon.sprite = UIResourceMgr.LoadSprite(common.defaultPath + at.getHeadiconresource());
            //hero.SetNativeSize();

            m_SkillIcon        = transform.FindChild("Image(skillicon)").GetComponent <Image>();
            m_SkillIcon.sprite = UIResourceMgr.LoadSprite(common.defaultPath + mSkillInfo.getSkillIcon());

            //int groupPostion= ObjectSelf.GetInstance().Teams.GetGroupPosByHeroGuid(mHero.GetGuid());
            //if (groupPostion != -1)
            //{
            //    if (groupPostion == 1)
            //    {
            //       m_FormPostion.sprite= UIResourceMgr.LoadSprite(common.defaultPath + "ui_zhenxing_02");
            //    }
            //    else if (groupPostion == 2)
            //    {
            //        m_FormPostion.sprite = UIResourceMgr.LoadSprite(common.defaultPath + "ui_zhenxing_01");
            //    }
            //}
            //iconImg.SetNativeSize();

            //Transform cdObj = iconImg.transform.FindChild("CD");
            //cdIcon = cdObj.GetComponent<Image>();

            //// 设置星级
            //int istart = ht.getQuality();

            //for (int idx = 0; idx < GlobalMembers.HeroMaxStar; idx++)
            //{
            //    mStarTrans.GetChild(idx).gameObject.SetActive(idx<istart);
            //}
            // set skill level
            // 设置英雄等级
            //mLevel.text = (mSkillInfo.getSkillCostNum1()/30).ToString();
            mLevel.text = mHero.GetHeroData().Level.ToString();
        }
Beispiel #3
0
        /// <summary>
        /// 进入战场后初始化怒气
        /// </summary>
        private void InitFightPower()
        {
            int nSelf_value = ObjectSelf.GetInstance().GetInitPowerValue();

            int nHero_value = 0;

            for (int i = 0; i < SceneObjectManager.GetInstance().GetObjectHeroCount(); i++)
            {
                ObjectHero pHero               = SceneObjectManager.GetInstance().GetHeroObject(i);
                int        nCurLevel           = pHero.GetHeroData().Level;
                int        nInitFuryTemplateID = pHero.GetHeroRow().getEntranceFury() - 1;

//                 HerofuryTemplate pRow = (HerofuryTemplate)DataTemplate.GetInstance().m_HeroFuryTable.getTableData(nCurLevel);
//                 if (nInitFuryTemplateID >= 0 && nInitFuryTemplateID < GlobalMembers.MAX_HEROFURY_PARAM_COUNT)
//                 {
//                     nHero_value += (int)((float)pRow.getTemplate()[nInitFuryTemplateID] * (1f + pHero.GetInitPowerAddition() + pHero.GetInitPowerAdditionRate()));
//                 }
                for (int n = 0; n < pHero.GetHeroData().HeroCabalaDB.CabalaList.Count; ++n)
                {
                    int        _tableID = pHero.GetHeroData().HeroCabalaDB.CabalaList[n].TableID;
                    MsTemplate _row     = (MsTemplate)DataTemplate.GetInstance().m_MsTable.getTableData(_tableID);
                    if (_row.getMstype() == 1)//开场怒气额外增加
                    {
                        int nLev = pHero.GetHeroData().HeroCabalaDB.CabalaList[n].IntensifyLev;
                        if (nLev <= 0)
                        {
                            continue;
                        }
                        nHero_value += _row.getValue()[nLev - 1];
                    }
                }
                //释放一次英雄的被动技能。此逻辑只需执行一次,且需要所有英雄都已实例化完成并添加到场景对象管理器中 [7/31/2015 Zmy]
                pHero.UpdateSpellEffectValue();
            }
            //主角等级影响 + 英雄等级影响 * (1 + 初始加成怒气) [3/3/2015 Zmy]
            //int nSum = nSelf_value + nHero_value;
            m_HeroPower.OnUpdatePowerValue(nHero_value);
        }
Beispiel #4
0
    /// <summary>
    /// 初始化
    /// </summary>
    private void InitHeroData()
    {
        m_HeroData = (HeroTemplate)DataTemplate.GetInstance().m_HeroTable.getTableData(m_HeroTableId);

        ObjectHero _objHero = new ObjectHero();
        Hero       _hero    = new Hero();

        _hero.heroid = m_HeroTableId;
        _hero.skill1 = m_HeroData.getSkill1ID();
        _hero.skill2 = m_HeroData.getSkill2ID();
        _hero.skill3 = m_HeroData.getSkill3ID();
        _objHero.GetHeroData().Init(_hero);

        //_objHero.UpdateItemEffectValue();
        //_objHero.UpdateTeamEffectValue();
        //_objHero.InitEventData();
        _objHero.SetSpellNormalData();
        //_objHero.InitBaseData();
        //_objHero.UpdateSpellEffectValue();
        m_SkillIcon.setHero(_objHero);
        m_SkillIcon.InitIcon();
    }
Beispiel #5
0
        //创建血条
        public void CreateBloodBar(ObjectHero hero)
        {
            Transform tans = hero.GetAnimation().EventControl.Pre_Head_T_EffectPoint;

            GameObject barObj = Instantiate(UI_FightControler.Inst.heroBloodPre, Vector3.zero, Quaternion.identity) as GameObject;

            barObj.transform.SetParent(transform, false);
            UI_Blood mBlood = barObj.AddComponent <UI_Blood>();

            mBlood.SetPosition(tans.position);
            barObj.transform.localScale = new Vector3(1, 1, 1);
            bloodInfo.Add(mBlood);
            mBlood.isHero = true;
            mBlood.setHeroLevel(hero.GetHeroData().Level);
            if (!ObjectSelf.GetInstance().LimitFightMgr.m_bStartEnter)
            {
                hero.SetHP(hero.GetMaxHP());
            }
            mBlood.SetValue((float)hero.GetHP() / (float)hero.GetMaxHP());
            mBlood.setHeadPosition(tans);
            mBlood.uid.Copy(hero.GetGuid());
        }
Beispiel #6
0
 public void setHero(ObjectHero hero)
 {
     mHero  = hero;
     heroId = hero.GetHeroData().TableID;
 }