public PrestigeItem(Character owner, PlayerItemRecord record) : base(owner, record) { IsTemporarily = true; var effects = PrestigeManager.Instance.GetPrestigeEffects(Owner.PrestigeRank); Effects = new List <EffectBase>(effects); }
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; } }
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(); } }
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(); }
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)); } }
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(); }
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(); }
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); }
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(); } }
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); }
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); }
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)); }
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; } }
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; } }
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)); }
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); }
public WrapperObjectItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public RikikiWandItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public CandyItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public HarnessItem(Character owner, PlayerItemRecord record) : base(owner, record) { HarnessTemplate = MountManager.Instance.GetHarness(Template.Id); }
public SmithMagicPotionItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public DefaultItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public GuildShieldItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public Watches(Character owner, PlayerItemRecord record) : base(owner, record) { }
protected CommonLivingObject(Character owner, PlayerItemRecord record) : base(owner, record) { }
public SexChangePotion(Character owner, PlayerItemRecord record) : base(owner, record) { }
public FoodBoostItem(Character owner, PlayerItemRecord record) : base(owner, record) { Owner.FightEnded += OnFightEnded; Owner.ContextChanged += OnContextChanged; }
public MimisymbicItem(Character owner, PlayerItemRecord record) : base(owner, record) { }
public BasePlayerItem LoadPlayerItem(Character owner, PlayerItemRecord record) { return(this.CreateItemInstance(owner, record)); }