123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using CommonAI.Zone;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.Units;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
- using XmdsCommonServer.XLS.Data;
- namespace XmdsCommonSkill.Plugin.Skills.Monster
- {
-
-
-
- public class Monster_1724002 : XmdsSkillBase
- {
- public static int ID = 1724002;
- public static int SummonUnit_ID = 17250;
-
- public static XmdsSkillValue SummonLimit;
-
- public static XmdsSkillValue SumUnitCount;
- public override int SkillID { get { return ID; } }
- protected override void OnRegistEvent()
- {
- this.RegistEvent(EventType.UseFormluaType, OnUseFormluaTypeEvent);
- base.OnRegistEvent();
- }
- private void OnUseFormluaTypeEvent(BattleParams param)
- {
- param.UseDamageType = CommonAI.Data.DamageType.None;
- }
- protected override void OnSkillLogicEvent(BattleParams param)
- {
- if (param.AtkProp.DamagePerID == 1)
- {
- callMonster(param, SummonUnit_ID);
- }
- }
-
-
-
- protected void callMonster(BattleParams param, int templateID)
- {
- UnitInfo info = XmdsBattleSkill.GetUnitInfo(templateID);
- int r = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, SummonLimit);
- int numPerTime = this.GetTargetFormulaValue(param.GameSkill.SkillLevel, SumUnitCount);
- XmdsVirtual_Monster monster = param.Attacker as XmdsVirtual_Monster;
- XmdsVirtual su = null;
- if (monster != null)
- {
- int cur = monster.GetSummonUnitListCount();
- while (cur + numPerTime > r)
- {
- su = monster.GetFirstTimesupSummonUnit();
- if (su != null)
- {
- (su.mUnit).kill(null, false);
- cur--;
- }
- }
- }
- for (int i = 0; i < numPerTime; i++)
- {
- var pos = param.Attacker.mUnit.Parent.PathFinder.FindNearRandomMoveableNode(
- param.Attacker.mUnit.RandomN,
- param.Attacker.mUnit.X,
- param.Attacker.mUnit.Y,
- 2, true);
- AddUnitEvent aue = null;
-
- info.LifeTimeMS = 10000;
-
- var unit = (param.Attacker.mUnit.Parent.AddUnit(
- info, info.Name,
- param.Attacker.mUnit.Force, param.Attacker.GetUnitLv(),
- pos.PosX,
- pos.PosY,
- param.Attacker.mUnit.Direction,
- out aue,
- param.Attacker.mUnit)) as XmdsInstanceMonster;
- XmdsVirtual zv = (unit.Virtual) as XmdsVirtual;
- unit.guardUnit(param.Attacker.mUnit);
- if (monster != null)
- {
- monster.AddSummonUnitList(unit.Virtual as XmdsVirtual);
- }
- }
- }
- protected override void OnInitSkillParam()
- {
- XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
- InitData(data, out SummonLimit, XmdsSkillData.XmdsSkillDataKey.ValueSet);
- InitData(data, out SumUnitCount, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
- }
- }
- }
|