Exemple #1
0
 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));
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        public FieldUserPet(IFieldUser owner, ItemSlotPet item, byte idx)
        {
            Owner = owner;
            Item  = item;
            IDx   = idx;

            Field    = owner.Field;
            Position = owner.Position;
            Foothold = owner.Foothold;
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 public async Task Leave(IFieldUser user)
 {
     await _field.Enter(user, (byte)_template.ID);
 }
Exemple #6
0
 public Task Enter(IFieldUser user, byte portal, Func <IPacket> getEnterPacket = null)
 {
     user.Character.FieldPortal = portal;
     return(Enter(user, getEnterPacket));
 }
Exemple #7
0
 public IEnumerable <T> GetControlledObjects <T>(IFieldUser controller) where T : IFieldControlledObj
 => controller.Controlled.OfType <T>().ToImmutableList();
Exemple #8
0
 public IEnumerable <IFieldObj> GetControlledObjects(IFieldUser controller)
 => controller.Controlled.ToImmutableList();
Exemple #9
0
 public T GetControlledObject <T>(IFieldUser controller, int id) where T : IFieldControlledObj
 => GetControlledObjects <T>(controller).FirstOrDefault(o => o.ID == id);
Exemple #10
0
 public IFieldObj GetControlledObject(IFieldUser controller, int id)
 => GetControlledObjects(controller).FirstOrDefault(o => o.ID == id);
Exemple #11
0
 public FieldDragon(IFieldUser owner)
 {
     Owner    = owner;
     Position = owner.Position;
 }