public Summon(Character owner, Skill skill, Point summonPos, SummonMovementType movementType) { this.movementType = movementType; this.summonOwner = owner; this.Map = owner.Map; this.summonSkill = skill; this.summonSkill.CurrentLevel = skill.MaxLevel; this.Position = summonPos; spawned = false; }
public MapleSummon(MapleCharacter owner, int skill, Point pos, SummonMovementType movementType) { Owner = owner; SkillId = skill; SkillLevel = owner.GetSkillLevel(SkillFactory.GetSkill(skill)); if (SkillLevel == 0) { Console.WriteLine("Trying to create a summon for a char without the skill"); } MovementType = movementType; Position = pos; }
public MapleSummon(int objectId, int sourceSkillId, Point position, SummonType type, SummonMovementType movementType, MapleCharacter owner, byte skillLevel, uint durationMS) { ObjectId = objectId; SourceSkillId = sourceSkillId; Position = position; Owner = owner; SkillLevel = skillLevel; Type = type; MovementType = movementType; HP = 0; LastAbilityTime = DateTime.FromFileTime(0); if (durationMS > 0) { CancelSchedule = Scheduler.ScheduleRemoveSummon(owner, sourceSkillId, durationMS); } }
public static SummonMovementType GetSummonMovementType(Skill summonSkill) { SummonMovementType summonMovementType = SummonMovementType.Follow; switch (summonSkill.MapleID) { #region stationary case (int)SkillNames.Ranger.Puppet: summonMovementType = SummonMovementType.Stationary; break; case (int)SkillNames.Sniper.Puppet: summonMovementType = SummonMovementType.Stationary; break; case (int)SkillNames.WindArcher3.Puppet: summonMovementType = SummonMovementType.Stationary; break; case (int)SkillNames.Outlaw.Octopus: summonMovementType = SummonMovementType.Stationary; break; case (int)SkillNames.Corsair.WrathoftheOctopi: summonMovementType = SummonMovementType.Stationary; break; #endregion #region circle case (int)SkillNames.Bowmaster.Phoenix: summonMovementType = SummonMovementType.CircleFollow; break; case (int)SkillNames.Marksman.Frostprey: summonMovementType = SummonMovementType.CircleFollow; break; #endregion #region teleport case (int)SkillNames.FirePoisonArchMage.Elquines: summonMovementType = SummonMovementType.TeleportFollow; break; case (int)SkillNames.IceLightningArchMage.Ifrit: summonMovementType = SummonMovementType.TeleportFollow; break; case (int)SkillNames.Priest.SummonDragon: summonMovementType = SummonMovementType.TeleportFollow; break; case (int)SkillNames.Bishop.Bahamut: summonMovementType = SummonMovementType.TeleportFollow; break; case (int)SkillNames.BlazeWizard3.Ifrit: summonMovementType = SummonMovementType.TeleportFollow; break; #endregion #region follow case (int)SkillNames.DarkKnight.Beholder: summonMovementType = SummonMovementType.Follow; break; case (int)SkillNames.BlazeWizard.Flame: summonMovementType = SummonMovementType.Follow; break; case (int)SkillNames.DawnWarrior.Soul: summonMovementType = SummonMovementType.Follow; break; case (int)SkillNames.WindArcher.Storm: summonMovementType = SummonMovementType.Follow; break; case (int)SkillNames.NightWalker.Darkness: summonMovementType = SummonMovementType.Follow; break; case (int)SkillNames.ThunderBreaker.LightningSprite: summonMovementType = SummonMovementType.Follow; break; #endregion default: summonMovementType = SummonMovementType.Follow; break; } return(summonMovementType); }