CardSkill_1130000.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using CommonAI.Zone.Formula;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Skills;
  10. namespace XmdsCommonSkill.Plugin.CardSkill
  11. {
  12. /// <summary>
  13. /// a%攻击力大范围治疗。受治疗的队友n秒内下一次(由攻击触发)获得任意四象球时有x%概率直接获得2个(相同的)(只判一次,失败了buff也消失)
  14. /// (只有正常攻击触发产球的才能触发此效果,由效果产生的球不触发此效果)
  15. /// </summary>
  16. public class CardSkill_1130000 : CardSkill_QingLongBase
  17. {
  18. private static readonly int ID = 1130000;
  19. public override int SkillID { get { return ID; } }
  20. //治疗系数
  21. protected static XmdsSkillValue s_ValueSet1;
  22. //队友N1秒N2概率双倍得球
  23. protected static XmdsSkillValue s_ValueSet2;
  24. protected override void OnGetCardSkillDamage(BattleParams param)
  25. {
  26. param.UseDamageType = CommonAI.Data.DamageType.Heal;
  27. param.SkillDamagePer = s_ValueSet1.GetValue(param.GameSkill.SkillLevel, param.AtkProp.DamagePerID);
  28. }
  29. public override void OnTriggerCardSkill(XmdsVirtual player, XmdsVirtual hitter, AttackSource source, CardSkillData skillData, int sameNums)
  30. {
  31. base.unitLaunchSpell(player, hitter, this.GetEffectID(skillData.skilLv, sameNums));
  32. }
  33. //受治疗,添加额外属性
  34. protected override void OnSkillLogicEvent(BattleParams param)
  35. {
  36. base.OnSkillLogicEvent(param);
  37. if(param.Hitter.mUnit.IsPlayer)
  38. {
  39. int effectTime = s_ValueSet2.GetValue(param.GameSkill.SkillLevel, base.GetIndex2(1));
  40. int effectRate = s_ValueSet2.GetValue(param.GameSkill.SkillLevel, base.GetIndex2(2));
  41. param.Hitter.CardModule.ChangeCardWeight(CommonAI.Data.CardType.Max, CardRateChgType.Double, effectRate, effectTime, true, 1);
  42. }
  43. }
  44. protected override void OnInitSkillParam()
  45. {
  46. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(this.SkillID);
  47. InitData(data, out s_ValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  48. InitData(data, out s_ValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  49. }
  50. }
  51. }