public Task Enter(IFieldUser user, string portal, Func <IPacket> getEnterPacket = null) { user.Character.FieldPortal = (byte)(Template.Portals.Values .FirstOrDefault(p => p.Name.Equals(portal))? .ID ?? 0); return(Enter(user, getEnterPacket)); }
public FieldSummoned(IFieldUser owner, int skillID, byte skillLevel) { Owner = owner; SkillID = skillID; SkillLevel = skillLevel; MoveAbility = MoveAbilityType.Fly; AssistType = AttackType.Shoot; switch ((Skill)skillID) { case Skill.DarkknightBeholder: MoveAbility = MoveAbilityType.Walk; AssistType = AttackType.Melee; break; case Skill.Archmage1Ifrit: case Skill.Archmage2Elquines: case Skill.BishopBahamut: MoveAbility = MoveAbilityType.Walk; break; case Skill.RangerPuppet: case Skill.SniperPuppet: MoveAbility = MoveAbilityType.Stop; AssistType = AttackType.Melee; break; } Position = owner.Position; Foothold = (short)(MoveAbility == MoveAbilityType.Fly ? 0 : owner.Foothold); MoveAction = (byte)MoveActionType.Alert; }
public FieldUserPet(IFieldUser owner, ItemSlotPet item, byte idx) { Owner = owner; Item = item; IDx = idx; Field = owner.Field; Position = owner.Position; Foothold = owner.Foothold; }
public async Task Enter(IFieldUser user) { if (_template.ToMap != 999999999) { var to = user.Service.FieldManager.Get(_template.ToMap); var portal = to.GetPortal(_template.ToName); await portal.Leave(user); } }
public async Task Leave(IFieldUser user) { await _field.Enter(user, (byte)_template.ID); }
public Task Enter(IFieldUser user, byte portal, Func <IPacket> getEnterPacket = null) { user.Character.FieldPortal = portal; return(Enter(user, getEnterPacket)); }
public IEnumerable <T> GetControlledObjects <T>(IFieldUser controller) where T : IFieldControlledObj => controller.Controlled.OfType <T>().ToImmutableList();
public IEnumerable <IFieldObj> GetControlledObjects(IFieldUser controller) => controller.Controlled.ToImmutableList();
public T GetControlledObject <T>(IFieldUser controller, int id) where T : IFieldControlledObj => GetControlledObjects <T>(controller).FirstOrDefault(o => o.ID == id);
public IFieldObj GetControlledObject(IFieldUser controller, int id) => GetControlledObjects(controller).FirstOrDefault(o => o.ID == id);
public FieldDragon(IFieldUser owner) { Owner = owner; Position = owner.Position; }