/// <summary> /// 初始化英战斗属性 /// </summary> /// <param name="baseHero"></param> /// <param name="inscriptionPage"></param> public void InitBatteryAttibute(BaseHero baseHero, InscriptionPage inscriptionPage) { baseAttibute = CopyTool.DeepCopy <BaseAttribute>(baseHero.baseAttribute); attackAttibute = CopyTool.DeepCopy <AttackAttribute>(baseHero.attackAttribute); defenseAttibute = CopyTool.DeepCopy <DefenseAttribute>(baseHero.defenseAttribute); InitInscriptionAttibute(inscriptionPage); }
private void InitFactory() { InscriptionPage a = InscriptionPageFactory.Instance.GetInscriptionPageById(1); if (a == null) { Debug.Log(2313); } a.CalculatedAttribute(); Debug.Log(a.inscriptionAttribute.Count); foreach (KeyValuePair <int, InscriptionAttribute> item in a.inscriptionAttribute) { Debug.Log(item.Value.attributeName + ":" + item.Value.attribueValue.ToString()); } }
/// <summary> /// SendMessage函数的接受体 /// </summary> /// <param name="inscriptionPage"></param> public void OnReciveFromInscriptionPage(InscriptionPage inscriptionPage) { inscriptionPage.CalculatedAttribute(); levelText.text = inscriptionPage.CalculatedInscriptionLevel().ToString(); SortedDictionary <int, InscriptionAttribute> attributeList = inscriptionPage.inscriptionAttribute; attributeText.text = ""; foreach (KeyValuePair <int, InscriptionAttribute> item in attributeList) { if (item.Value.valueType == AttributeValue.NUMBER) { string valuestring = (System.Math.Round(item.Value.attribueValue, 1).ToString()); attributeText.text += (item.Value.attributeName + ":" + valuestring); } else { string valuestring = (System.Math.Round(item.Value.attribueValue * 100, 1)).ToString() + "%"; attributeText.text += (item.Value.attributeName + ":" + valuestring); } attributeText.text += "\n"; } }
/// <summary> /// 将对应的符文放入指定的卡插槽中 /// </summary> private void InitInscriptionSlot() { inscriptionPage = InscriptionPageFactory.Instance.GetInscriptionPageById(_pageNumber); for (int i = 0; i < inscriptionButtonList.Length; i++) { Inscription inscrptionCh = null; switch (inscriptionButtonList[i].slotColor) { case InscriptionColor.BLUE: if (inscriptionPage.blueInscription.ContainsKey(inscriptionButtonList[i].slotId)) { inscrptionCh = inscriptionPage.blueInscription[inscriptionButtonList[i].slotId]; } break; case InscriptionColor.GREEN: if (inscriptionPage.greenInscription.ContainsKey(inscriptionButtonList[i].slotId)) { inscrptionCh = inscriptionPage.greenInscription[inscriptionButtonList[i].slotId]; } break; case InscriptionColor.RED: if (inscriptionPage.redInscription.ContainsKey(inscriptionButtonList[i].slotId)) { inscrptionCh = inscriptionPage.redInscription[inscriptionButtonList[i].slotId]; } break; } if (inscrptionCh != null) { inscriptionButtonList[i].inscriptionId = inscrptionCh.inscriptionID; inscriptionButtonList[i].isInscription = true; inscriptionButtonList[i].GetComponent <Image>().sprite = inscrptionCh.inscriptionIcon; } } }
/// <summary> /// 将符文属性加到英雄的战斗属性中 /// </summary> /// <param name="inscriptionPage"></param> private void InitInscriptionAttibute(InscriptionPage inscriptionPage) { inscriptionPage.CalculatedAttribute(); foreach (KeyValuePair <int, InscriptionAttribute> item in inscriptionPage.inscriptionAttribute) { switch ((BatteryAttributeType)item.Key) { case BatteryAttributeType.MEGIC_ATTACK: baseAttibute.magicAttack += item.Value._attributeValue; break; case BatteryAttributeType.ATTACK_SPEED: attackAttibute.cttackSpeed += item.Value._attributeValue; break; case BatteryAttributeType.COOL_REDUCE: attackAttibute.coolReduce += item.Value._attributeValue; break; case BatteryAttributeType.CRITICAL_CHANGE: attackAttibute.criticalChance += item.Value._attributeValue; break; case BatteryAttributeType.CRITICAL_EFFECT: attackAttibute.criticalEffect += item.Value._attributeValue; break; case BatteryAttributeType.MAX_BLUE: baseAttibute.baseLife += item.Value._attributeValue; break; case BatteryAttributeType.MAX_LIFE: baseAttibute.baseMagic += item.Value.attribueValue; break; case BatteryAttributeType.MEGIC_DEFENCE: baseAttibute.magicDefense += item.Value.attribueValue; break; case BatteryAttributeType.MEGIC_THROUGH: attackAttibute.magicPenetration += item.Value.attribueValue; break; case BatteryAttributeType.MEGIC_VAMPIRE: attackAttibute.magicHemophagia += item.Value.attribueValue; break; case BatteryAttributeType.MOVE_SPEED: attackAttibute.moveSpeed += item.Value.attribueValue; break; case BatteryAttributeType.PHYSIC_ATTACK: baseAttibute.physicalAttack += item.Value.attribueValue; break; case BatteryAttributeType.PHYSIC_DEFENCE: baseAttibute.physicalDefense += item.Value.attribueValue; break; case BatteryAttributeType.PHYSIC_THROUGH: attackAttibute.physicalPenetration += item.Value.attribueValue; break; case BatteryAttributeType.PHYSIC_VANPIRE: attackAttibute.chysicalHemophagia += item.Value.attribueValue; break; case BatteryAttributeType.RECOVE_BLOOD: attackAttibute.coolReduce += item.Value.attribueValue; break; case BatteryAttributeType.RECOVE_BLUE: defenseAttibute.recoveMagic += item.Value.attribueValue; break; } } }
/// <summary> /// HAVE many proplem toSolve /// </summary> /// <param name="inscriptionPage"></param> public void OnReciveInscriptionPage(InscriptionPage inscriptionPage) { inscriptionSettingPanel.SetActive(false); inscriptionPagePanel.SetActive(true); inscriptionAttributePanel.SetActive(false); }