public UI_Blood CreateBloodBar(ObjectMonster monster) { Transform tans = monster.GetAnimation().EventControl.Pre_Head_T_EffectPoint; GameObject barObj = null; MonsterTemplate template = (MonsterTemplate)DataTemplate.GetInstance().m_MonsterTable.getTableData(monster.GetTableID()); if (template.getMonstertype() == 1) { barObj = Instantiate(UI_FightControler.Inst.monsterBloodPre) as GameObject; } else { barObj = Instantiate(UI_FightControler.Inst.bossBloodBar) 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 = false; if (ObjectSelf.GetInstance().LimitFightMgr.m_bStartEnter) { int CurRound = ObjectSelf.GetInstance().LimitFightMgr.m_RoundNum; UltimatetrialmonsterTemplate row = (UltimatetrialmonsterTemplate)DataTemplate.GetInstance().m_UltimatetrialmonsterTable.getTableData(CurRound); int nLevel = template.getMonsterlevel() + row.getAdditionalLevel(); mBlood.setHeroLevel(nLevel); } else { mBlood.setHeroLevel(template.getMonsterlevel()); } mBlood.setHeadPosition(tans); mBlood.uid.Copy(monster.GetGuid()); return(mBlood); }
// 极限试炼怪物属性计算 [6/4/2015 Zmy] // 公式:怪物属性=怪物基础属性*属性系数+玩家队伍英雄最高对应属性*附加系数 public int GetLimitMonsterAttribute(EM_ATTRIBUTE _type, float _curValue) { float nSum = 0; int nCurRound = m_RoundNum; UltimatetrialmonsterTemplate _row = (UltimatetrialmonsterTemplate)DataTemplate.GetInstance().m_UltimatetrialmonsterTable.getTableData(nCurRound); switch (_type) { case EM_ATTRIBUTE.EM_ATTRIBUTE_MAXHP: nSum = _curValue * _row.getMaxHPCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_MAXHP) * _row.getAdditionalMaxHP(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICALATTACK: nSum = _curValue * _row.getPhysicalAttackCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICALATTACK) * _row.getAdditionalPhysicalAttack(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_MAGICATTACK: nSum = _curValue * _row.getMagicAttackCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_MAGICATTACK) * _row.getAdditionalMagicAttack(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICALDEFENCE: nSum = _curValue * _row.getPhysicalDefenceCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICALDEFENCE) * _row.getAdditionalPhysicalDefence(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_MAGICDEFENCE: nSum = _curValue * _row.getMagicDefenceCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_MAGICDEFENCE) * _row.getAdditionalMagicDefence(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_HIT: nSum = _curValue * _row.getHitCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_HIT) * _row.getAdditionalHit(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_DODGE: nSum = _curValue * _row.getDodgeCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_DODGE) * _row.getAdditionalDodge(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL: nSum = _curValue * _row.getCriticalCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL) * _row.getAdditionalCritical(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_TENACITY: nSum = _curValue * _row.getTenacityCoefficient() + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_TENACITY) * _row.getAdditionalTenacity(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_SPEED: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_SPEED) * _row.getAdditionalSpeed(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_HIT_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_HIT_RATE) * _row.getAdditionalBaseHit(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_DODGE_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_DODGE_RATE) * _row.getAdditionalBaseDodge(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_RATE) * _row.getAdditionalBaseCritical(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_TENACITY_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_TENACITY_RATE) * _row.getAdditionalBaseTenacity(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICAL_HURT_ADD_PERMIL: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICAL_HURT_ADD_PERMIL) * _row.getAdditionalBasePhyDamageIncrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICAL_HRUT_REDUCE_PERMIL: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_PHYSICAL_HRUT_REDUCE_PERMIL) * _row.getAdditionalBasePhyDamageDecrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_MAGIC_HURT_ADD_PERMIL: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_MAGIC_HURT_ADD_PERMIL) * _row.getAdditionalBaseMagDamageIncrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_MAGIC_HURT_REDUCE_PERMIL: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_MAGIC_HURT_REDUCE_PERMIL) * _row.getAdditionalBaseMagDamageDecrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_HURT_ADD_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_HURT_ADD_RATE) * _row.getAdditionalBaseCriticalDamage(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_HURT_REDUCE_RATE: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_CRITICAL_HURT_REDUCE_RATE) * _row.getAdditionalBaseCriticalDamage(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_EXTRA_HURT: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_EXTRA_HURT) * _row.getAdditionalDamageIncrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_REDUCE_HURT_POINT: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_REDUCE_HURT_POINT) * _row.getAdditionalDamageDecrease(); break; case EM_ATTRIBUTE.EM_ATTRIBUTE_HPRECOVER: nSum = _curValue /** _row.getPhysicalAttackCoefficient()*/ + GetHeroMaxAttributeValue(EM_ATTRIBUTE.EM_ATTRIBUTE_HPRECOVER) * _row.getAdditionallifeRestoringForce(); break; default: break; } return((int)nSum); }