Example #1
0
        public PrestigeItem(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            IsTemporarily = true;
            var effects = PrestigeManager.Instance.GetPrestigeEffects(Owner.PrestigeRank);

            Effects = new List <EffectBase>(effects);
        }
Example #2
0
 public TokenScroll(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
     if (!Effects.Any(x => x.EffectId == EffectsEnum.Effect_AddOgrines))
     {
         Effects.Add(new EffectInteger(EffectsEnum.Effect_AddOgrines, (short)Stack));
         Stack = 1;
     }
 }
Example #3
0
        public LivingObjectItem(Character owner, PlayerItemRecord record) : base(owner, record)
        {
            base.LivingObjectRecord = Singleton <ItemManager> .Instance.TryGetLivingObjectRecord(this.Template.Id);

            if (base.LivingObjectRecord == null)
            {
                LivingObjectItem.logger.Error("Living Object {0} has no template", this.Template.Id);
            }
            else
            {
                this.Initialize();
            }
        }
Example #4
0
        public LivingObjectItem(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            LivingObjectRecord = ItemManager.Instance.TryGetLivingObjectRecord(Template.Id);

            if (LivingObjectRecord == null)
            {
                logger.Error("Living Object {0} has no template", Template.Id);
                return;
            }

            Initialize();
        }
Example #5
0
        public override bool Equals(object obj)
        {
            PlayerItemRecord that = obj as PlayerItemRecord;

            if (that != null)
            {
                return(this.PlayerItemId == that.PlayerItemId && this.Record == that.Record);
            }
            else
            {
                return(base.Equals(obj));
            }
        }
Example #6
0
        public BoundLivingObjectItem(Character owner, PlayerItemRecord record) : base(owner, record)
        {
            EffectInteger effectInteger = (EffectInteger)this.Effects.First((EffectBase x) => x.EffectId == EffectsEnum.Effect_LivingObjectId);

            this.m_livingObjectTemplate = Singleton <ItemManager> .Instance.TryGetTemplate((int)effectInteger.Value);

            base.LivingObjectRecord = Singleton <ItemManager> .Instance.TryGetLivingObjectRecord((int)effectInteger.Value);

            if (base.LivingObjectRecord == null || this.m_livingObjectTemplate == null)
            {
                BoundLivingObjectItem.logger.Error("Living Object {0} has no template", this.Template.Id);
            }
            this.Initialize();
        }
Example #7
0
        public BoundLivingObjectItem(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            var idEffect = (EffectInteger)Effects.First(x => x.EffectId == EffectsEnum.Effect_LivingObjectId);

            m_livingObjectTemplate = ItemManager.Instance.TryGetTemplate(idEffect.Value);
            LivingObjectRecord     = ItemManager.Instance.TryGetLivingObjectRecord(idEffect.Value);

            if (LivingObjectRecord == null || m_livingObjectTemplate == null)
            {
                logger.Error("Living Object {0} has no template", Template.Id);
            }

            Initialize();
        }
Example #8
0
        private BasePlayerItem CreateItemInstance(Character character, PlayerItemRecord record)
        {
            ItemManager.PlayerItemConstructor ctor = null;
            BasePlayerItem result;

            if (record.Effects.Any((EffectBase effect) => this.m_itemCtorByEffects.TryGetValue(effect.EffectId, out ctor)))
            {
                result = ctor(character, record);
            }
            else
            {
                result = (this.m_itemCtorByTypes.TryGetValue((ItemTypeEnum)record.Template.Type.Id, out ctor) ? ctor(character, record) : new DefaultItem(character, record));
            }
            return(result);
        }
Example #9
0
        public SoulStone(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            m_soulStoneEffect = Effects.OfType <EffectDice>().FirstOrDefault(x => x.EffectId == EffectsEnum.Effect_SoulStone);

            if (m_soulStoneEffect == null)
            {
                return;
            }

            if (IsEquiped())
            {
                SubscribeEvents();
            }
        }
Example #10
0
        private BasePlayerItem CreateItemInstance(Character character, PlayerItemRecord record)
        {
            PlayerItemConstructor ctor = null;

            if (record.Effects.Any(effect => m_itemCtorByEffects.TryGetValue(effect.EffectId, out ctor)))
            {
                return(ctor(character, record));
            }

            if (m_itemCtorById.TryGetValue((ItemIdEnum)record.ItemId, out ctor))
            {
                return(ctor(character, record));
            }

            return(m_itemCtorByTypes.TryGetValue((ItemTypeEnum)record.Template.Type.Id, out ctor) ? ctor(character, record) : new DefaultItem(character, record));
        }
        public void GiveTo(CharacterRecord record)
        {
            System.Collections.Generic.List <EffectBase> effects = Singleton <ItemManager> .Instance.GenerateItemEffects(this.ItemTemplate, this.MaxEffects);

            PlayerItemRecord poco = new PlayerItemRecord
            {
                Id       = AutoAssignedRecord <PlayerItemRecord> .PopNextId(),
                OwnerId  = record.Id,
                Template = this.ItemTemplate,
                Stack    = this.Amount,
                Position = CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED,
                Effects  = effects
            };

            ServerBase <WorldServer> .Instance.DBAccessor.Database.Insert(poco);
        }
Example #12
0
        public void GiveTo(CharacterRecord record)
        {
            var effects = ItemManager.Instance.GenerateItemEffects(ItemTemplate, MaxEffects);

            var item = new PlayerItemRecord
            {
                Id       = PlayerItemRecord.PopNextId(),
                OwnerId  = record.Id,
                Template = ItemTemplate,
                Stack    = Amount,
                Position = CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED,
                Effects  = effects,
            };

            WorldServer.Instance.DBAccessor.Database.Insert(item);
        }
Example #13
0
        public BasePlayerItem CreatePlayerItem(Character owner, ItemTemplate template, uint amount, System.Collections.Generic.List <EffectBase> effects)
        {
            int id = AutoAssignedRecord <PlayerItemRecord> .PopNextId();

            PlayerItemRecord record = new PlayerItemRecord
            {
                Id       = id,
                OwnerId  = owner.Id,
                Template = template,
                Stack    = amount,
                Position = CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED,
                Effects  = effects,
                IsNew    = true
            };

            return(this.CreateItemInstance(owner, record));
        }
Example #14
0
        public MountCertificate(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            // default template is used to apply mount effects
            if (Template.Id != MountTemplate.DEFAULT_SCROLL_ITEM)
            {
                Initialize();
            }

            if (record.Stack > 1)
            {
                for (int i = 0; i < record.Stack - 1; i++)
                {
                    Owner.Inventory.AddItem(Template);
                }

                record.Stack = 1;
            }
        }
Example #15
0
        public PetItem(Character owner, PlayerItemRecord record)
            : base(owner, record)
        {
            PetTemplate = PetManager.Instance.GetPetTemplate(Template.Id);

            if (PetTemplate == null)
            {
                return;
            }

            MaxPower      = IsRegularPet ? GetItemMaxPower() : 0;
            MaxLifePoints = Template.Effects.OfType <EffectDice>().FirstOrDefault(x => x.EffectId == EffectsEnum.Effect_LifePoints)?.Value ?? 0;

            InitializeEffects();

            if (IsEquiped())
            {
                Owner.FightEnded += OnFightEnded;
            }
        }
Example #16
0
        public BasePlayerItem CreatePlayerItem(Character owner, ItemTemplate template, int amount, List <EffectBase> effects)
        {
            if (amount < 0)
            {
                throw new ArgumentException("amount < 0", "amount");
            }

            var guid   = PlayerItemRecord.PopNextId();
            var record = new PlayerItemRecord // create the associated record
            {
                Id       = guid,
                OwnerId  = owner.Id,
                Template = template,
                Stack    = (uint)amount,
                Position = CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED,
                Effects  = effects,
                IsNew    = true,
            };

            return(CreateItemInstance(owner, record));
        }
Example #17
0
        public PlayerItemRecord GenerateItemRecord(CharacterRecord character)
        {
            var template = ItemManager.Instance.TryGetTemplate(ItemId);

            if (template == null)
            {
                throw new InvalidOperationException(string.Format("itemId {0} doesn't exists", ItemId));
            }

            List <EffectBase> effects = ItemManager.Instance.GenerateItemEffects(template, MaxEffects);

            var record = new PlayerItemRecord
            {
                Id       = PlayerItemRecord.PopNextId(),
                OwnerId  = character.Id,
                Template = template,
                Stack    = Amount,
                Position = CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED,
                Effects  = effects,
            };

            return(record);
        }
Example #18
0
 public WrapperObjectItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #19
0
 public RikikiWandItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #20
0
 public CandyItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #21
0
 public HarnessItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
     HarnessTemplate = MountManager.Instance.GetHarness(Template.Id);
 }
Example #22
0
 public SmithMagicPotionItem(Character owner, PlayerItemRecord record) : base(owner, record)
 {
 }
Example #23
0
 public DefaultItem(Character owner, PlayerItemRecord record) : base(owner, record)
 {
 }
Example #24
0
 public GuildShieldItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #25
0
 public Watches(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #26
0
 protected CommonLivingObject(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #27
0
 public SexChangePotion(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #28
0
 public FoodBoostItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
     Owner.FightEnded     += OnFightEnded;
     Owner.ContextChanged += OnContextChanged;
 }
Example #29
0
 public MimisymbicItem(Character owner, PlayerItemRecord record)
     : base(owner, record)
 {
 }
Example #30
0
 public BasePlayerItem LoadPlayerItem(Character owner, PlayerItemRecord record)
 {
     return(this.CreateItemInstance(owner, record));
 }