| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0.5 |
| | | attributeId: 10101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 5404cfd4436cfc64383b91b952dacf98, type: 3} |
| | | --- !u!114 &7641914139423715995 |
| | | MonoBehaviour: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0.55 |
| | | attributeId: 10101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 5404cfd4436cfc64383b91b952dacf98, type: 3} |
| | | --- !u!114 &7641914139423715995 |
| | | MonoBehaviour: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0.6 |
| | | attributeId: 10101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 5404cfd4436cfc64383b91b952dacf98, type: 3} |
| | | --- !u!114 &7641914139423715995 |
| | | MonoBehaviour: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0.6 |
| | | attributeId: 10101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 5404cfd4436cfc64383b91b952dacf98, type: 3} |
| | | --- !u!114 &7641914139423715995 |
| | | MonoBehaviour: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0.6 |
| | | attributeId: 10101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 5404cfd4436cfc64383b91b952dacf98, type: 3} |
| | | --- !u!114 &7641914139423715995 |
| | | MonoBehaviour: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_Script: {fileID: 11500000, guid: fedeb0b3c5e104ea19d0d4599d22ab97, type: 3} |
| | | m_Name: |
| | | m_EditorClassIdentifier: |
| | | damage: 150 |
| | | damage: 90 |
| | | damageMulti: 1 |
| | | towerName: |
| | | bSet: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &794977756389387197 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &794977756389387197 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_Script: {fileID: 11500000, guid: fedeb0b3c5e104ea19d0d4599d22ab97, type: 3} |
| | | m_Name: |
| | | m_EditorClassIdentifier: |
| | | damage: 300 |
| | | damage: 180 |
| | | damageMulti: 1 |
| | | towerName: |
| | | bSet: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &6201351407003447028 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &6201351407003447028 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_Script: {fileID: 11500000, guid: fedeb0b3c5e104ea19d0d4599d22ab97, type: 3} |
| | | m_Name: |
| | | m_EditorClassIdentifier: |
| | | damage: 450 |
| | | damage: 270 |
| | | damageMulti: 1 |
| | | towerName: |
| | | bSet: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &3669498217609003192 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &3669498217609003192 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_Script: {fileID: 11500000, guid: fedeb0b3c5e104ea19d0d4599d22ab97, type: 3} |
| | | m_Name: |
| | | m_EditorClassIdentifier: |
| | | damage: 600 |
| | | damage: 360 |
| | | damageMulti: 1 |
| | | towerName: |
| | | bSet: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &7453998822848565797 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &7453998822848565797 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_Script: {fileID: 11500000, guid: fedeb0b3c5e104ea19d0d4599d22ab97, type: 3} |
| | | m_Name: |
| | | m_EditorClassIdentifier: |
| | | damage: 750 |
| | | damage: 450 |
| | | damageMulti: 1 |
| | | towerName: |
| | | bSet: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &478004586242557291 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 20101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: 08be51bfa9f904b4e83c31be88ba554f, type: 3} |
| | | --- !u!135 &478004586242557291 |
| | | SphereCollider: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 30101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: a54a7e98fafc604488c570e746551af1, type: 3} |
| | | --- !u!1 &7805828781973333584 |
| | | GameObject: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 30101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: a54a7e98fafc604488c570e746551af1, type: 3} |
| | | --- !u!1 &6743535499860450394 |
| | | GameObject: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 30101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: a54a7e98fafc604488c570e746551af1, type: 3} |
| | | --- !u!1 &7563412234984757212 |
| | | GameObject: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 30101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: a54a7e98fafc604488c570e746551af1, type: 3} |
| | | --- !u!1 &9012282123540836921 |
| | | GameObject: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | m_EditorClassIdentifier: |
| | | chainAttackRate: 0 |
| | | attributeId: 30101 |
| | | TowerPtr: {fileID: 114126723238285906, guid: a54a7e98fafc604488c570e746551af1, type: 3} |
| | | --- !u!1 &6941437354564793899 |
| | | GameObject: |
| | | m_ObjectHideFlags: 0 |
| | |
| | | public SerializableIAlignmentProvider alignment; |
| | | |
| | | /// <summary> |
| | | /// 塔的属性id |
| | | /// </summary> |
| | | /// <value></value> |
| | | public int TowerAttributeId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the alignment of the damager |
| | | /// </summary> |
| | | public IAlignmentProvider alignmentProvider |
| | |
| | | /// </summary> |
| | | public float finalDamage |
| | | { |
| | | |
| | | |
| | | get { |
| | | get |
| | | { |
| | | float fd = damage * damageMulti; |
| | | damageMulti = 1.0f; |
| | | return fd + inSceneUpGradeDamage; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据buff配置表id获取buff数据 |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public static EndlessBuffConfig GetBuffById(int id) |
| | | { |
| | | for (int i = 0; i < endlessBuffPool.Count; ++i) |
| | | { |
| | | if (endlessBuffPool[i].Config.id == id) |
| | | return endlessBuffPool[i]; |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据品质获得颜色值 |
| | | /// </summary> |
| | | /// <param name="rare"></param> |
| | |
| | | public List<int> target_type; |
| | | |
| | | // buff效果 |
| | | public List<int> buff_effect; |
| | | public List<float> buff_effect; |
| | | |
| | | // 生命周期 |
| | | public int scope; |
| | |
| | | _endless_buff.id = int.Parse(GameUtils.GetString(item[index++].ToString())); |
| | | _endless_buff.name = GameUtils.GetString(item[index++].ToString()); |
| | | _endless_buff.target_type = GameUtils.GetIntList(item[index++]); |
| | | _endless_buff.buff_effect = GameUtils.GetIntList(item[index++]); |
| | | _endless_buff.buff_effect = GameUtils.GetFloatList(item[index++]); |
| | | _endless_buff.scope = int.Parse(GameUtils.GetString(item[index++].ToString())); |
| | | _endless_buff.brief = GameUtils.GetString(item[index++].ToString()); |
| | | _endless_buff.down_level = int.Parse(GameUtils.GetString(item[index++].ToString())); |
| | |
| | | /// The fire rate in fires-per-second |
| | | /// </summary> |
| | | [SerializeField] |
| | | private float projectileFireRate; |
| | | private float projectileFireRate = 1; |
| | | |
| | | public float FireRate |
| | | { |
| | |
| | | get |
| | | { |
| | | FireRateAdd fireRateAdd = (FireRateAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.FireRateAdd); |
| | | return fireRateAdd.GetFireSpeedAdd(towerAttributeId); |
| | | float rateAdd = fireRateAdd.GetFireSpeedAdd(towerAttributeId); |
| | | |
| | | return rateAdd > 1 ? rateAdd : fireSpeed; |
| | | } |
| | | } |
| | | |
| | |
| | | public override TowerDefense.Targetting.Targetter GetTargetter() |
| | | { |
| | | return targetter; |
| | | } |
| | | |
| | | private void Start() |
| | | { |
| | | if (projectile != null) |
| | | { |
| | | Damager damager = projectile.GetComponent<Damager>(); |
| | | towerAttributeId = damager.TowerAttributeId; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return; |
| | | } |
| | | |
| | | float atime = 0; |
| | | |
| | | /// <summary> |
| | | /// 更新动作信息. |
| | | /// </summary> |
| | |
| | | for (int i = 0; i < BuffList.Count; ++i) |
| | | { |
| | | if (BuffList[i].Config.buff_effect[1] > max) |
| | | max = BuffList[i].Config.buff_effect[1]; |
| | | max = (int)BuffList[i].Config.buff_effect[1]; |
| | | } |
| | | |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessCritBulletNumChange, max); |
| | |
| | | /// 根据宝石id获得暴击增加的伤害比率(千分比) |
| | | /// </summary> |
| | | /// <param name="gemId"></param> |
| | | /// <param name="preDamage"></param> |
| | | /// <returns></returns> |
| | | public float GetCritDamageRate(int gemId, float preDamage = 0) |
| | | public float GetCritDamageRate(int gemId) |
| | | { |
| | | float ret = preDamage; |
| | | float ret = 0; |
| | | |
| | | for (int i = 0; i < BuffList.Count; ++i) |
| | | { |
| | |
| | | isEffective = true; |
| | | break; |
| | | case EndlessBuffUseTarget.Element: |
| | | isEffective = gemId == buffData.Config.target_type[1]; |
| | | int attributeId = 0; |
| | | |
| | | if (gemId == 101) |
| | | attributeId = 1; |
| | | else if (gemId == 105) |
| | | attributeId = 2; |
| | | else if (gemId == 109) |
| | | attributeId = 3; |
| | | isEffective = attributeId == buffData.Config.target_type[1]; |
| | | break; |
| | | case EndlessBuffUseTarget.Designated: |
| | | isEffective = gemId == buffData.Config.target_type[1]; |
| | |
| | | /// </summary> |
| | | public void AddBuff(EndlessBuffConfig buff) |
| | | { |
| | | Debug.Log($"--- 获得buff:id {buff.Config.id}, name:{buff.Config.name} description:{buff.Config.brief} ---"); |
| | | ++buff.SelectCount; |
| | | |
| | | // 0表示只要被选择过,以后就不再出现了 |
| | |
| | | public override void Handle() |
| | | { |
| | | // 一次性增加金币 |
| | | EndlessLevelManager.instance.Currency.AddCurrency(BuffList[BuffList.Count - 1].Config.buff_effect[1]); |
| | | EndlessLevelManager.instance.Currency.AddCurrency((int)BuffList[BuffList.Count - 1].Config.buff_effect[1]); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | Tower newTower = EndlessRandomTower.instance.GetRandomTower(EFeatureTower.NULL, true); |
| | | |
| | | if (!EndlessRandomTower.instance.RandomPlaceTower(newTower, BuffList[BuffList.Count - 1].Config.buff_effect[1] - 1, 0)) |
| | | EndlessLevelManager.instance.Currency.AddCurrency(BuffList[BuffList.Count - 1].Config.buff_effect[2]); |
| | | if (!EndlessRandomTower.instance.RandomPlaceTower(newTower, (int)BuffList[BuffList.Count - 1].Config.buff_effect[1] - 1, 0)) |
| | | EndlessLevelManager.instance.Currency.AddCurrency((int)BuffList[BuffList.Count - 1].Config.buff_effect[2]); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// buff选择完成 |
| | | /// buff选择完成p |
| | | /// </summary> |
| | | /// <param name="index"></param> |
| | | public void OnBuffSelectCompleted(int index) |
| | |
| | | public float attackRise { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 基础增加暴击伤害率 |
| | | /// </summary> |
| | | private float baseCritDamageRate = 0.5f; |
| | | |
| | | public Tower TowerPtr; |
| | | |
| | | /// <summary> |
| | | /// 处理代理收到的伤害,这里需要判断代理的类型分别去处理 |
| | | /// </summary> |
| | | /// <param name="enemy"></param> |
| | |
| | | private bool IsCrit() |
| | | { |
| | | CritProbabilityAdd critProbabilityAdd = (CritProbabilityAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritProbabilityAdd); |
| | | float crit = critProbabilityAdd.GetCrit(damager.TowerAttributeId); |
| | | float crit = critProbabilityAdd.GetCrit(TowerPtr.attributeId); |
| | | float random = UnityEngine.Random.Range(0, 1f); |
| | | |
| | | return random <= crit; |
| | |
| | | private float GetCritDamageRate() |
| | | { |
| | | CritDamageAdd critDamageAdd = (CritDamageAdd)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.CritDamageAdd); |
| | | return critDamageAdd.GetCritDamageRate(damager.TowerAttributeId); |
| | | return critDamageAdd.GetCritDamageRate(TowerPtr.attributeId); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | finalDamage += ProcessEndlessBuffAttack(finalDamage); |
| | | |
| | | if (crit) |
| | | finalDamage *= 1 + GetCritDamageRate(); |
| | | finalDamage *= 1 + baseCritDamageRate + GetCritDamageRate(); |
| | | |
| | | int deathCount = 0; |
| | | |
| | |
| | | { |
| | | case 2: // 减速. |
| | | SlowDown slowDown = (SlowDown)EndlessBuffManager.instance.GetBuffInstanceByType(EndlessBuffEffectType.SlowDown); |
| | | enemy.addSpeedSlowRate(0.25f + slowDown.GetSlowDownAdd(damager.TowerAttributeId)); |
| | | enemy.addSpeedSlowRate(0.25f + slowDown.GetSlowDownAdd(TowerPtr.attributeId)); |
| | | enemy.SetTargetableMatColor(Color.blue); |
| | | break; |
| | | case 3: // 中毒 |
| | |
| | | { |
| | | public AttackAffector Affector; |
| | | |
| | | private bool isStart; |
| | | // private bool isStart; |
| | | |
| | | private float duration; |
| | | // private float duration; |
| | | |
| | | public void OnFire() |
| | | { |
| | |
| | | Affector.FireProjectile(); |
| | | } |
| | | |
| | | private void Update() |
| | | { |
| | | if (isStart) |
| | | duration += Time.deltaTime; |
| | | } |
| | | // private void Update() |
| | | // { |
| | | // if (isStart) |
| | | // duration += Time.deltaTime; |
| | | // } |
| | | } |
| | | } |
| | |
| | | effect.towerPtr = tower; |
| | | AttackAffector attackAffector = effect.GetComponent<AttackAffector>(); |
| | | |
| | | if (attackAffector.projectile != null) |
| | | { |
| | | Damager damager = attackAffector.projectile.gameObject.GetComponent<Damager>(); |
| | | damager.TowerAttributeId = tower.attributeId; |
| | | } |
| | | // if (attackAffector.projectile != null) |
| | | // { |
| | | // Damager damager = attackAffector.projectile.gameObject.GetComponent<Damager>(); |
| | | // damager.TowerAttributeId = tower.attributeId; |
| | | // } |
| | | } |
| | | m_ParentTower = tower; |
| | | Transform starTs = transform.Find("Star"); |
| | |
| | | public int maxBulletNum; |
| | | |
| | | /// <summary> |
| | | /// 当前的子弹数目. |
| | | /// 当前的子弹数目 |
| | | /// </summary> |
| | | protected int curBulletNum; |
| | | |
| | | private int critNum = 3; |
| | | private int critNum = 1; |
| | | |
| | | /// <summary> |
| | | /// 默认的暴击子弹数量 |
| | |
| | | switch (buffList[i].UseTarget) |
| | | { |
| | | case EndlessBuffUseTarget.All: |
| | | addArr[0] += buffList[i].Config.buff_effect[1]; |
| | | addArr[1] += buffList[i].Config.buff_effect[1]; |
| | | addArr[2] += buffList[i].Config.buff_effect[1]; |
| | | addArr[0] += (int)buffList[i].Config.buff_effect[1]; |
| | | addArr[1] += (int)buffList[i].Config.buff_effect[1]; |
| | | addArr[2] += (int)buffList[i].Config.buff_effect[1]; |
| | | break; |
| | | case EndlessBuffUseTarget.Element: |
| | | addArr[buffList[i].Config.target_type[1] - 1] += buffList[i].Config.buff_effect[1]; |
| | | addArr[(int)buffList[i].Config.target_type[1] - 1] += (int)buffList[i].Config.buff_effect[1]; |
| | | break; |
| | | case EndlessBuffUseTarget.Designated: |
| | | break; |
| | |
| | | // 所有宝石位置权重列表 |
| | | private List<int> weightList; |
| | | |
| | | // 是否初始化过出战数据 |
| | | private bool isInitFightData = false; |
| | | |
| | | // Start is called before the first frame update |
| | | void Start() |
| | | { |
| | |
| | | [[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4,0,0],0,"水精灵攻击间隔-0.2秒",0,99,10002,3,0],[17,"时空之力:火",[2,1],[4,0,0],0,"火精灵攻击间隔-0.2秒",0,99,10001,3,0],[18,"时空之力:木",[2,3],[4,0,0],0,"木精灵攻击间隔-0.2秒",0,99,10003,3,0],[19,"狂暴:玉米枪手",[3109],[5,150,0],0,"玉米精灵暴击率+15%",0,99,10008,3,0],[20,"暴怒:玉米枪手",[3109],[6,300,0],0,"玉米精灵暴击伤害+30%",0,99,10008,3,0],[21,"弹夹扩容:玉米枪手",[3109],[7,2,0],0,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3101],[9,7,0],0,"火鸟精灵充能后变为7倍攻速",0,99,10009,3,0]] |
| | | [[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4,0.2,0.5],-1,"水精灵攻速+25%",0,99,"10013",3,0],[17,"时空之力:火",[2,1],[4,0.2,0.5],-1,"火精灵攻速+25%",0,99,"10013",3,0],[18,"时空之力:木",[2,3],[4,0.2,0.5],-1,"木精灵攻速+25%",0,99,"10013",3,0],[19,"狂暴:玉米枪手",[3,109],[5,150,0],-1,"玉米精灵暴击率+15%",0,99,"10012",3,0],[20,"暴怒:玉米枪手",[3,109],[6,300,0],-1,"玉米精灵暴击伤害+30%",0,99,"10011",3,0],[21,"弹夹扩容:玉米枪手",[3,109],[7,2,0],-1,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3,101],[9,10,0],-1,"火鸟精灵充能后变为10倍攻速",0,99,10009,3,0]] |
| | |
| | | [[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4200500],0,"水精灵攻击间隔-0.2秒",0,99,10002,3,0],[17,"时空之力:火",[2,1],[4200500],0,"火精灵攻击间隔-0.2秒",0,99,10001,3,0],[18,"时空之力:木",[2,3],[4200500],0,"木精灵攻击间隔-0.2秒",0,99,10003,3,0],[19,"狂暴:玉米枪手",[3109],[5,150,0],0,"玉米精灵暴击率+15%",0,99,10008,3,0],[20,"暴怒:玉米枪手",[3109],[6,300,0],0,"玉米精灵暴击伤害+30%",0,99,10008,3,0],[21,"弹夹扩容:玉米枪手",[3109],[7,2,0],0,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3101],[9,7,0],0,"火鸟精灵充能后变为7倍攻速",0,99,10009,3,0]] |
| | | [[1,"低级火灵之力",[2,1],[1,10,0],-1,"增加全体火精灵10%攻击力",0,99,10001,1,1],[2,"低级水灵之力",[2,2],[1,10,0],-1,"增加全体水精灵10%攻击力",0,99,10002,1,1],[3,"低级木灵之力",[2,3],[1,10,0],-1,"增加全体木精灵10%攻击力",0,99,10003,1,1],[4,"火灵之力",[2,1],[1,15,0],-1,"增加全体火精灵15%攻击力",4,99,10001,2,1],[5,"水灵之力",[2,2],[1,15,0],-1,"增加全体水精灵15%攻击力",4,99,10002,2,1],[6,"木灵之力",[2,3],[1,15,0],-1,"增加全体木精灵15%攻击力",4,99,10003,2,1],[7,"高级火灵之力",[2,1],[1,20,0],-1,"增加全体火精灵20%攻击力",7,99,10001,3,1],[8,"高级水灵之力",[2,2],[1,20,0],-1,"增加全体水精灵20%攻击力",7,99,10002,3,1],[9,"高级木灵之力",[2,3],[1,20,0],-1,"增加全体木精灵20%攻击力",7,99,10003,3,1],[10,"精灵之力",[1,0],[1,50,0],2,"2波增加全体精灵50%攻击力",3,99,10004,2,1],[11,"狂暴之力",[1,0],[1,65,0],2,"2波内增加全体精灵65%攻击力",3,99,10005,3,1],[12,"飞来横财",[0],[2,300,0],0,"增加300金币",0,99,10007,1,1],[13,"中大奖!",[0],[2,800,0],0,"增加800金币",4,99,10007,3,1],[14,"精灵魔盒",[0],[3,3,300],0,"随机获得一个3级精灵",99,99,10006,2,1],[15,"超级精灵魔盒",[0],[3,4,500],0,"随机获得一个4级精灵",99,99,10006,3,1],[16,"时空之力:水",[2,2],[4,0.2,0.5],-1,"水精灵攻速+25%",0,99,"10013",3,0],[17,"时空之力:火",[2,1],[4,0.2,0.5],-1,"火精灵攻速+25%",0,99,"10013",3,0],[18,"时空之力:木",[2,3],[4,0.2,0.5],-1,"木精灵攻速+25%",0,99,"10013",3,0],[19,"狂暴:玉米枪手",[3,109],[5,150,0],-1,"玉米精灵暴击率+15%",0,99,"10012",3,0],[20,"暴怒:玉米枪手",[3,109],[6,300,0],-1,"玉米精灵暴击伤害+30%",0,99,"10011",3,0],[21,"弹夹扩容:玉米枪手",[3,109],[7,2,0],-1,"玉米精灵高能子弹数量变为2颗",0,99,10008,3,0],[22,"爆裂狂怒:炸弹火鸟",[3,101],[9,10,0],-1,"火鸟精灵充能后变为10倍攻速",0,99,10009,3,0]] |