PigPen

Member
My Shard runs on RunUO version 2.1

I am using Xanthos Evo system for my Evo creatures but am having trouble trying something new (for me) during the evolution process from one 'Stage' to the next 'Stage'.

I have the EvoMount's starting ItemID for the graphic used when being ridden set at 0x3EBE for a Drake and I am trying to have the ItemID change to 0x3EBD for a Dragon when it evolves to a next 'Stage'.

Here is the Error I am getting:
Code:
Errors:
+ Customs/Dragon 2021/DragonSpec2021.cs:
    CS1061: Line 214: 'Xanthos.Evo.Dragon2021StageSix' does not contain a definition for 'ItemID' and no extension method 'ItemID' accepting a first argument of type 'Xanthos.Evo.Dragon2021StageSix' could be found (are you missing a using directive or an assembly reference?)

Looking at the top part of script . . hard to imagine I am missing any using directives or an assembly references but I have been wrong on this before. Anyway . . here is the DragonSpec2021.cs script that throws the Error (with the offending line Commented):
Code:
using Server;
using System;
using System.Collections;
using System.Collections.Generic;
using Server.Targeting;
using Server.Network;
using Server.Mobiles;
using Server.Items;
using Server.Spells;
using Server.Spells.First;
using Server.Spells.Second;
using Server.Spells.Third;
using Server.Spells.Fourth;
using Server.Spells.Fifth;
using Server.Spells.Sixth;
using Server.Spells.Seventh;
using Server.Spells.Eighth;
using Server.Misc;
using Server.Regions;
using Server.SkillHandlers;
using Server.Spells.Necromancy;
using Server.Engines.Quests;
using Server.Engines.Quests.Necro;
using Server.Spells.Spellweaving;
using Xanthos.Interfaces;

namespace Xanthos.Evo
{
    public sealed class DragonSpec2021 : BaseEvoSpec
    {
        // This class implements a singleton pattern; meaning that no matter how many times the
        // Instance attribute is used, there will only ever be one of these created in the entire system.
        // Copy this template and give it a new name.  Assign all of the data members of the EvoSpec
        // base class in the constructor.  Your subclass must not be abstract.
        // Never call new on this class, use the Instance attribute to get the instance instead.

        DragonSpec2021()
        {
            m_Tamable = true;
            m_MinTamingToHatch = 70.0;
            m_PercentFemaleChance = 0.02;    // Made small to limit access to eggs.
            m_GuardianEggOrDeedChance = .05;
            m_AlwaysHappy = true;
            m_ProducesYoung = true;
            m_PregnancyTerm = 0.10;
            m_AbsoluteStatValues = false;
            m_MaxEvoResistance = 70;
            m_MaxTrainingStage = 6;
            m_MountStage = 6;
            m_CanAttackPlayers = false;

            m_RandomHues = new int[] { 2723, 2723 }; //Gold is 2817

            m_Skills = new SkillName[7] { SkillName.Magery, SkillName.EvalInt, SkillName.Meditation, SkillName.MagicResist,
                                          SkillName.Tactics, SkillName.Wrestling, SkillName.Anatomy };
            m_MinSkillValues = new int[7] { 50, 50, 50, 15, 19, 19, 19 };
            m_MaxSkillValues = new int[7] { 100, 100, 100, 100, 100, 100, 100 };
            m_Stages = new BaseEvoStage[] { new Dragon2021StageOne(), new Dragon2021StageTwo(),
new Dragon2021StageThree(), new Dragon2021StageFour(),
new Dragon2021StageFive(), new Dragon2021StageSix(), new Dragon2021StageSeven() };
        }

        // These next 2 lines facilitate the singleton pattern.  In your subclass only change the
        // BaseEvoSpec class name to your subclass of BaseEvoSpec class name and uncomment both lines.

        public static DragonSpec2021 Instance { get { return Nested.instance; } }
        class Nested { static Nested() { } internal static readonly DragonSpec2021 instance = new DragonSpec2021();}
    }   

    // Define a subclass of BaseEvoStage for each stage in your creature and place them in the
    // array in your subclass of BaseEvoSpec.  See the example classes for how to do this.
    // Your subclass must not be abstract.

    public class Dragon2021StageOne : BaseEvoStage //ICE SNAKE
    {
        public Dragon2021StageOne()
        {
            NextEpThreshold = 40000; EpMinDivisor = 10; EpMaxDivisor = 5; DustMultiplier = 20;

            EvolutionMessage = "STAGE ONE - has evolved to a stronger form";

            Title = "'Hatchling'";

            BaseSoundID = 0xDB;
            BodyValue = 52; ControlSlots = 2; MinTameSkill = 70.0; VirtualArmor = 30;
            Hue = Evo.Flags.kRandomHueFlag;

            DamagesTypes = new ResistanceType[1] { ResistanceType.Physical };
            MinDamages = new int[1] { 10 };
            MaxDamages = new int[1] { 15 };

            ResistanceTypes = new ResistanceType[1] { ResistanceType.Physical };
            MinResistances = new int[1] { 15 };
            MaxResistances = new int[1] { 15 };

            DamageMin = 10; DamageMax = 15; HitsMin = 150; HitsMax = 200;
            StrMin = 150; StrMax = 200; DexMin = 56; DexMax = 75; IntMin = 70; IntMax = 100;
        }
    }

    public class Dragon2021StageTwo : BaseEvoStage //ICE SERPENT
    {
        public Dragon2021StageTwo()
        {
            NextEpThreshold = 100000; EpMinDivisor = 20; EpMaxDivisor = 10; DustMultiplier = 20;

            EvolutionMessage = "has evolved to a stronger form";

            Title = "Hatchling";

            BaseSoundID = 219;
            BodyValue = 89; ControlSlots = 2; MinTameSkill = 75.0; VirtualArmor = 20;
       
            DamagesTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold, ResistanceType.Poison, ResistanceType.Energy };
            MinDamages = new int[5] { 10, 10, 10, 10, 10 };
            MaxDamages = new int[5] { 15, 15, 15, 15, 15 };

            ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold, ResistanceType.Poison, ResistanceType.Energy };
            MinResistances = new int[5] { 15, 15, 15, 15, 15 };
            MaxResistances = new int[5] { 15, 15, 15, 15, 15 };

            DamageMin = 1; DamageMax = 1; HitsMin = 150; HitsMax = 200;
            StrMin = 100; StrMax = 100; DexMin = 56; DexMax = 75; IntMin = 70; IntMax = 100;
        }
    }

    public class Dragon2021StageThree : BaseEvoStage //LAVA LIZARD
    {
        public Dragon2021StageThree()
        {
            EvolutionMessage = "has grown";

            Title = "'Evolving'";
            NextEpThreshold = 250000; EpMinDivisor = 30; EpMaxDivisor = 20; DustMultiplier = 25;
            BaseSoundID = 0x5A;
            BodyValue = 206; ControlSlots = 3; MinTameSkill = 80.0; VirtualArmor = 30;
       
            DamagesTypes = null;
            MinDamages = null;
            MaxDamages = null;

            ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold, ResistanceType.Poison, ResistanceType.Energy };
            MinResistances = new int[5] { 15, 15, 15, 15, 15 };
            MaxResistances = new int[5] { 20, 20, 20, 20, 20 };

            DamageMin = 1; DamageMax = 1; HitsMin= 175; HitsMax = 225;
            StrMin = 100; StrMax = 100; DexMin = 10; DexMax = 10; IntMin = 25; IntMax = 50;
        }
    }

    public class Dragon2021StageFour : BaseEvoStage //WYVERN
    {
        public Dragon2021StageFour()
        {
            EvolutionMessage = "has become a young dragon";
            Title = "'Apprentice'";
            NextEpThreshold = 600000; EpMinDivisor = 50; EpMaxDivisor = 40; DustMultiplier = 20;
            BaseSoundID = 362;
            BodyValue = 62; ControlSlots = 4; MinTameSkill = 85.0; VirtualArmor = 35;
       
            DamagesTypes = null;
            MinDamages = null;
            MaxDamages = null;

            ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
                                                        ResistanceType.Poison, ResistanceType.Energy };
            MinResistances = new int[5] { 20, 20, 20, 20, 20 };
            MaxResistances = new int[5] { 30, 30, 30, 30, 30 };   

            DamageMin = 1; DamageMax = 1; HitsMin= 175; HitsMax = 225;
            StrMin = 100; StrMax = 150; DexMin = 10; DexMax = 10; IntMin = 120; IntMax = 120;
        }
    }

    public class Dragon2021StageFive : BaseEvoStage //DRAKE
    {
        public Dragon2021StageFive()
        {
            EvolutionMessage = "has evolved into a strong young dragon";

            Title = "'Adept'";

            NextEpThreshold = 1500000; EpMinDivisor = 160; EpMaxDivisor = 40; DustMultiplier = 20;
            BodyValue = 60; ControlSlots = 6; MinTameSkill = 90.0; VirtualArmor = 40;
       
            DamagesTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
             ResistanceType.Poison, ResistanceType.Energy };
            MinDamages = new int[5] { 40, 20, 20, 20, 20 };
            MaxDamages = new int[5] { 40, 30, 30, 30, 30 };

            ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
             ResistanceType.Poison, ResistanceType.Energy };

            MinResistances = new int[5] { 50, 40, 40, 40, 40 };
            MaxResistances = new int[5] { 50, 50, 50, 50, 50 };   

            DamageMin = 5; DamageMax = 5; HitsMin= 100; HitsMax = 100;
            StrMin = 125; StrMax = 175; DexMin = 20; DexMax = 20; IntMin = 125; IntMax = 150;
        }
    }

    public class Dragon2021StageSix : BaseEvoStage //DRAKE
    {
        public Dragon2021StageSix()
        {
            EvolutionMessage = "has evolved into a stronger dragon";
// LINE 208 FOLLOWS:
            ItemID = 0x3EBD;
            Title = "'Master'";
            NextEpThreshold = 3500000; EpMinDivisor = 540; EpMaxDivisor = 480; DustMultiplier = 20;
            BodyValue = 60; ControlSlots = 6; MinTameSkill = 95.0; VirtualArmor = 60;
       
            DamagesTypes = null;
            MinDamages = null;
            MaxDamages = null;

            ResistanceTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold,
             ResistanceType.Poison, ResistanceType.Energy };

            MinResistances = new int[5] { 55, 55, 55, 55, 55 };
            MaxResistances = new int[5] { 70, 70, 70, 70, 70 };   

            DamageMin = 10; DamageMax = 10; HitsMin= 600; HitsMax = 800;
            StrMin = 150; StrMax = 200; DexMin = 25; DexMax = 35; IntMin = 150; IntMax = 200;
        }
    }

    public class Dragon2021StageSeven : BaseEvoStage //DRAGON
    {
        public Dragon2021StageSeven()
        {
            EvolutionMessage = "has grown to its highest form and is now a legendary dragon";
            Title = "Ledgendary";
            NextEpThreshold = 0; EpMinDivisor = 740; EpMaxDivisor = 660; DustMultiplier = 20;
            BaseSoundID = 362;
            BodyValue = 59; ControlSlots = 3; VirtualArmor = 55;
       
            DamagesTypes = new ResistanceType[5] { ResistanceType.Physical, ResistanceType.Fire, ResistanceType.Cold, ResistanceType.Poison, ResistanceType.Energy };
            MinDamages = new int[5] { 70, 70, 70, 70, 70 };
            MaxDamages = new int[5] { 70, 70, 70, 70, 70 };

            ResistanceTypes = null;
            MinResistances = null;
            MaxResistances = null;   

            DamageMin = 15; DamageMax = 15; HitsMin= 400; HitsMax = 450;
            StrMin = 125; StrMax = 125; DexMin = 125; DexMax = 35; IntMin = 125; IntMax = 125;
        }
    }
}

I have tried many variations (this.ItemID etc) but none work. Can anyone see where I am going wrong? Is it possible to change an Evo mount's ItemID like this when evolving from one 'Stage' to the next 'Stage' ?

I appreciate any help I can get on this.

Many Thanks
 

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back