CardSkill_1430010.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Formula;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using XmdsCommon.Plugin;
  9. using XmdsCommonServer.Plugin;
  10. using XmdsCommonServer.XLS.Data;
  11. using XmdsCommonSkill.Plugin.Buffs;
  12. using XmdsCommonSkill.Plugin.Skills;
  13. namespace XmdsCommonSkill.Plugin.CardSkill
  14. {
  15. /// <summary>
  16. ///
  17. /// </summary>
  18. public class CardSkill_1430010 : CardSkill_XuanWuBase
  19. {
  20. private static readonly int ID = 1430010;
  21. public override int SkillID { get { return ID; } }
  22. // 移速 + 防御
  23. public static readonly int CARD_XW_ALLIES_SPEED_DEFENCE = (int)XmdsBuffBase.XmdsBuffList.CARD_XW_ALLIES_SPEED_DEFENCE;
  24. //多种不同形态法术id
  25. protected static XmdsSkillValue s_TalentData;
  26. //伤害系数
  27. protected static XmdsSkillValue s_ValueSet1;
  28. //击飞扣定力法术id
  29. protected static XmdsSkillValue s_ValueSet2;
  30. // 对boss扣除定力值
  31. protected static XmdsSkillValue s_ValueSet3;
  32. //冰霜法术ID
  33. protected static XmdsSkillValue s_ValueSet4;
  34. // 路径队友移动,防御增益,时间
  35. protected static XmdsSkillValue s_ValueSet5;
  36. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  37. {
  38. base.OnInit(info, unit, ref template);
  39. var pack1 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(CARD_XW_ALLIES_SPEED_DEFENCE);
  40. var buff1 = pack1.GetXmdsBuff(0) as XmdsBuff_PropChange;
  41. buff1.CurentChangeType = XmdsVirtual.UnitAttributeType.MoveSpeed;
  42. var buff2 = pack1.GetXmdsBuff(1) as XmdsBuff_PropChange;
  43. buff2.CurentChangeType = XmdsVirtual.UnitAttributeType.Defence;
  44. var bt1 = pack1.mBuffTemplate;
  45. pack1.BindTemplateAndDispose();
  46. unit.RegistSendBuff(bt1);
  47. }
  48. protected override void OnGetCardSkillDamage(BattleParams param)
  49. {
  50. if(param.AtkProp.DamageModiferID <= 3)
  51. {
  52. param.SkillDamagePer = s_ValueSet1.GetValue(param.GameSkill.SkillLevel, param.AtkProp.DamagePerID);
  53. // boss,扣定力逻辑
  54. if (param.Hitter.IsBoss() && param.Hitter.mUnit.MaxMP > 0)
  55. {
  56. int reduceMP = Math.Max(1, s_ValueSet3.GetValue(param.GameSkill.SkillLevel, base.GetTriggerSameCards() - 1));
  57. param.Hitter.mUnit.AddMP(-reduceMP, param.Attacker.mUnit);
  58. }
  59. }
  60. else
  61. {
  62. param.UseDamageType = CommonAI.Data.DamageType.None;
  63. param.Hitter.mUnit.AddBuff(CARD_XW_ALLIES_SPEED_DEFENCE, param.Attacker.mUnit);
  64. }
  65. }
  66. public override int GetEffectID(int skillLv, int sameNums)
  67. {
  68. return s_TalentData.GetValue(skillLv, sameNums - 1);
  69. }
  70. //触发卡牌技能
  71. public override void OnTriggerCardSkill(XmdsVirtual player, XmdsVirtual hitter, AttackSource source, CardSkillData skillData, int sameNums)
  72. {
  73. base.unitLaunchSpell(player, hitter, this.GetEffectID(skillData.skilLv, sameNums));
  74. base.unitLaunchSpell(player, hitter, s_ValueSet4.GetValue(skillData.skilLv, sameNums - 1));
  75. var bt = player.GetRegistBuff(CARD_XW_ALLIES_SPEED_DEFENCE);
  76. bt.LifeTimeMS = s_ValueSet5.GetValue(skillData.skilLv, base.GetIndex3(3));
  77. var buff1 = player.GetRegisBuffVirtual(CARD_XW_ALLIES_SPEED_DEFENCE, 0) as XmdsBuff_PropChange;
  78. buff1.CurrentValue = s_ValueSet5.GetValue(skillData.skilLv, base.GetIndex3(1));
  79. var buff2 = player.GetRegisBuffVirtual(CARD_XW_ALLIES_SPEED_DEFENCE,1) as XmdsBuff_PropChange;
  80. buff2.CurrentValue = s_ValueSet5.GetValue(skillData.skilLv, base.GetIndex3(2));
  81. }
  82. protected override void OnInitSkillParam()
  83. {
  84. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(this.SkillID);
  85. InitData(data, out s_TalentData, XmdsSkillData.XmdsSkillDataKey.TalentData);
  86. InitData(data, out s_ValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  87. InitData(data, out s_ValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  88. InitData(data, out s_ValueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  89. InitData(data, out s_ValueSet4, XmdsSkillData.XmdsSkillDataKey.ValueSet4);
  90. InitData(data, out s_ValueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  91. }
  92. }
  93. }