Esempio n. 1
0
        public void RemoveMaster(Mobile from, int id, int amount = 0)
        {
            MasterSpell master = getMaster(id);
            SpellScroll item;

            if ((master.Charges - amount) < 0)
            {
                from.SendMessage("You don't have that many charges.");
                return;
            }
            if ((amount == 0) || ((master.Charges - amount) == 0))
            {
                item = Activator.CreateInstance(Loot.RegularScrollTypes[master.ID]) as SpellScroll;
                item.MasterStatus  = 2;
                item.UsesRemaining = master.Charges;
                from.AddToBackpack(item);
                from.SendMessage("You remove the master scroll from your book.");
                m_Data.Remove(master);
            }
            else
            {
                item = Activator.CreateInstance(Loot.RegularScrollTypes[master.ID]) as SpellScroll;
                item.MasterStatus  = 2;
                item.UsesRemaining = amount;
                from.AddToBackpack(item);
                from.SendMessage("You carefully remove part of the master scroll.");
                master.Charges -= amount;
            }
        }
Esempio n. 2
0
        public void AddMaster(Item item)
        {
            var         scroll = item as SpellScroll;
            int         id     = scroll.SpellID;
            MasterSpell master = getMaster(id);

            if (master == null)
            {
                m_Data.Add(new MasterSpell(getScrollName(id), id, scroll.UsesRemaining));
                m_Data.Sort((a, b) => a.ID.CompareTo(b.ID));
            }
            else
            {
                master.Charges += scroll.UsesRemaining;
            }
        }
Esempio n. 3
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadEncodedInt();

            m_Data = new List <MasterSpell>();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                String      name     = reader.ReadString();
                int         id       = reader.ReadInt();
                int         charges  = reader.ReadInt();
                MasterSpell newSpell = new MasterSpell(name, id, charges);
                m_Data.Add(newSpell);
            }
        }
Esempio n. 4
0
    public void GetSpellClassFrom(MasterSpell spell)
    {
        SpellModifierPanel.SetActive(true);
        Spellname.text = spell.spellname;
        Effect.text    = spell.effect;

        if (spell.damagePure > 0)
        {
            DamagePure.color = PositiveStatColor; DamagePure.text = "+" + spell.damagePure.ToString("F1") + " damage";
        }
        else if (spell.damagePure < 0)
        {
            DamagePure.color = Color.red; DamagePure.text = "-" + spell.damagePure.ToString("F1") + " damage";
        }

        if (spell.damagePercent > 1)
        {
            DamagePercet.color = PositiveStatColor; DamagePercet.text = ((spell.damagePercent * 100)).ToString("F0") + "%";
        }
        else if (spell.damagePercent < 1)
        {
            DamagePercet.color = Color.red; DamagePercet.text = ((spell.damagePercent * 100)).ToString("F0") + "%";
        }

        if (spell.cooldownSeconds < 0)
        {
            CooldownSeconds.color = PositiveStatColor; CooldownSeconds.text = "-" + spell.cooldownSeconds.ToString("F1") + " seconds";
        }
        else if (spell.cooldownSeconds > 0)
        {
            CooldownSeconds.color = Color.red; CooldownSeconds.text = "+" + spell.cooldownSeconds.ToString("F1") + " seconds";
        }

        if (spell.cooldownPercent < 1)
        {
            CooldownPercent.color = PositiveStatColor; CooldownPercent.text = ((spell.cooldownPercent * 100)).ToString("F0") + "%";
        }
        else if (spell.cooldownPercent > 1)
        {
            CooldownPercent.color = Color.red; CooldownPercent.text = ((spell.cooldownPercent * 100)).ToString("F0") + "%";
        }

        if (spell.damagePure == 0)
        {
            DamagePure.color = StartStatColor; DamagePure.text = "---";
        }
        if (spell.damagePercent == 0)
        {
            DamagePercet.color = StartStatColor; DamagePercet.text = "---";
        }
        if (spell.cooldownSeconds == 0)
        {
            CooldownSeconds.color = StartStatColor; CooldownSeconds.text = "---";
        }
        if (spell.cooldownPercent == 0)
        {
            CooldownPercent.color = StartStatColor; CooldownPercent.text = "---";
        }

        SpellImage.sprite = spell.GetComponent <Image>().sprite;
    }