예제 #1
0
        public static DesireCollection Build()
        {
            DesireCollection collection = new DesireCollection();

            /* Desordenamos los deseos, pero mantenemos el Brass Ring en primer lugar,
             * ya que es el item que nos da Gareth al principio de la Quest, y el Iron
             * Chain en último lugar, ya que es el que debemos devolverle al final. */
            DesireDefinition[] desires = Utility.Shuffle(BaseErrand.Desires, 1, BaseErrand.Desires.Length - 2);

            /* Desordenamos los NPCs, pero mantenemos a Sean en último lugar, ya que él
             * da siempre el último item que debemos devolverle a Gareth. */
            Type[] errandTypes = Utility.Shuffle(BaseErrand.ErrandTypes, 0, BaseErrand.ErrandTypes.Length - 1);

            for (int i = 0; i < errandTypes.Length; i++)
            {
                Type             errandType      = errandTypes[i];
                DesireDefinition desire          = desires[i];
                DesireDefinition gift            = desires[i + 1];
                bool             givesDesireInfo = Utility.RandomBool();

                collection.m_Desires.Add(errandType, new DesireInfo(desire, gift, givesDesireInfo));
            }

            /* Sean siempre da información sobre lo que quiere, no sobre lo que da,
             * ya que siempre da el Iron Chain. */
            collection.m_Desires[typeof(Sean)].GivesDesireInfo = true;

            return(collection);
        }
예제 #2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            /*int version = */
            reader.ReadInt();

            m_Desires = new DesireCollection(reader);
        }
예제 #3
0
        public override void OnAccept()
        {
            base.OnAccept();

            Owner.PlaceInBackpack(new BrassRing());
            Owner.PlaceInBackpack(new PlainGreyCloak());

            m_Desires = DesireCollection.Build();
        }
예제 #4
0
        public static DesireInfo GetDesireFor(PlayerMobile pm, BaseErrand errand)
        {
            DesireCollection collection = WhosMostHumbleQuest.GetDesires(pm);
            Type             errandType = errand.GetType();

            if (collection != null && collection.Desires.ContainsKey(errandType))
            {
                return(collection.Desires[errandType]);
            }

            return(null);
        }
예제 #5
0
        public static DesireCollection Build()
        {
            DesireCollection collection = new DesireCollection();

            /* Desordenamos los deseos, pero mantenemos el Brass Ring en primer lugar,
             * ya que es el item que nos da Gareth al principio de la Quest, y el Iron
             * Chain en último lugar, ya que es el que debemos devolverle al final. */
            DesireDefinition[] desires = Utility.Shuffle( BaseErrand.Desires, 1, BaseErrand.Desires.Length - 2 );

            /* Desordenamos los NPCs, pero mantenemos a Sean en último lugar, ya que él
             * da siempre el último item que debemos devolverle a Gareth. */
            Type[] errandTypes = Utility.Shuffle( BaseErrand.ErrandTypes, 0, BaseErrand.ErrandTypes.Length - 1 );

            for ( int i = 0; i < errandTypes.Length; i++ )
            {
                Type errandType = errandTypes[i];
                DesireDefinition desire = desires[i];
                DesireDefinition gift = desires[i + 1];
                bool givesDesireInfo = Utility.RandomBool();

                collection.m_Desires.Add( errandType, new DesireInfo( desire, gift, givesDesireInfo ) );
            }

            /* Sean siempre da información sobre lo que quiere, no sobre lo que da,
             * ya que siempre da el Iron Chain. */
            collection.m_Desires[typeof( Sean )].GivesDesireInfo = true;

            return collection;
        }