//校验被动技能之主动释放的概率[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); }
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(); }
/// <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); }
/// <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(); }
//创建血条 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()); }
public void setHero(ObjectHero hero) { mHero = hero; heroId = hero.GetHeroData().TableID; }