Esempio n. 1
0
        public static void ClearSkillGain(Mobile mob)
        {
            SkillGainContext context = (SkillGainContext)m_SkillGain[mob];

            if (context == null)
            {
                return;
            }

            m_SkillGain.Remove(mob);

            ArrayList mods = context.m_Mods;

            for (int i = 0; i < mods.Count; ++i)
            {
                mob.RemoveSkillMod((SkillMod)mods[i]);
            }

            context.m_Timer.Stop();
        }
		public override void OnDoubleClick( Mobile mob )
		{
			SkillGainContext context = (SkillGainContext)m_SkillGain[mob];

			if ( context != null )
				return;

			context = new SkillGainContext();
			m_SkillGain[mob] = context;

			ArrayList mods = context.m_Mods = new ArrayList();

			for ( int i = 0; i < mob.Skills.Length; ++i )
			{
				Skill sk = mob.Skills[i];
				double baseValue = sk.Base;
				
				if ( mob.InRange( this.GetWorldLocation(), 2 ) )
				{
					Container pack = mob.Backpack;
					int m_Amount = mob.Backpack.GetAmount( typeof( BabyPowder ) );
					
					if ( pack != null && pack.ConsumeTotal( typeof( BabyPowder ), m_Amount) )
					{	
						if( m_Amount != 1 )
						{
							mob.AddToBackpack( new BabyPowder( m_Amount-1 ));
						}
						
						
						if ( baseValue > 0 )
						{
						SkillMod mod = new DefaultSkillMod( SkillName.Fencing, true, +(baseValue * SkillGainFactor) );
						SkillMod mod1 = new DefaultSkillMod( SkillName.Parry, true, +(baseValue * SkillGainFactor) );
						SkillMod mod2 = new DefaultSkillMod( SkillName.Swords, true, +(baseValue * SkillGainFactor) );
						SkillMod mod3 = new DefaultSkillMod( SkillName.Archery, true, +(baseValue * SkillGainFactor) );
						SkillMod mod4 = new DefaultSkillMod( SkillName.Macing, true, +(baseValue * SkillGainFactor) );
						SkillMod mod5 = new DefaultSkillMod( SkillName.Tactics, true, +(baseValue * SkillGainFactor) );
						SkillMod mod6 = new DefaultSkillMod( SkillName.Wrestling, true, +(baseValue * SkillGainFactor) );

						mods.Add( mod );
						mods.Add( mod1 );
						mods.Add( mod2 );
						mods.Add( mod3 );
						mods.Add( mod4 );
						mods.Add( mod5 );
						mods.Add( mod6 );
						mob.AddSkillMod( mod );
						mob.AddSkillMod( mod1 );
						mob.AddSkillMod( mod2 );
						mob.AddSkillMod( mod3 );
						mob.AddSkillMod( mod4 );
						mob.AddSkillMod( mod5 );
						mob.AddSkillMod( mod6 );
						
						mob.SendMessage("You sprinkle some baby powder on your body and it makes your skin more resistant in combat.");
						}
						else
						{
						mob.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1019045 ); // I can't reach that.
						}
						}
				}
			}

			context.m_Timer = Timer.DelayCall( SkillGainPeriod, new TimerStateCallback( ClearSkillGain_Callback ), mob );
		}
Esempio n. 3
0
        public override void OnDoubleClick(Mobile mob)
        {
            SkillGainContext context = (SkillGainContext)m_SkillGain[mob];

            if (context != null)
            {
                return;
            }

            context          = new SkillGainContext();
            m_SkillGain[mob] = context;

            ArrayList mods = context.m_Mods = new ArrayList();

            for (int i = 0; i < mob.Skills.Length; ++i)
            {
                Skill  sk        = mob.Skills[i];
                double baseValue = sk.Base;

                if (mob.InRange(this.GetWorldLocation(), 2))
                {
                    Container pack     = mob.Backpack;
                    int       m_Amount = mob.Backpack.GetAmount(typeof(BabyPowder));

                    if (pack != null && pack.ConsumeTotal(typeof(BabyPowder), m_Amount))
                    {
                        if (m_Amount != 1)
                        {
                            mob.AddToBackpack(new BabyPowder(m_Amount - 1));
                        }


                        if (baseValue > 0)
                        {
                            SkillMod mod  = new DefaultSkillMod(SkillName.Fencing, true, +(baseValue * SkillGainFactor));
                            SkillMod mod1 = new DefaultSkillMod(SkillName.Parry, true, +(baseValue * SkillGainFactor));
                            SkillMod mod2 = new DefaultSkillMod(SkillName.Swords, true, +(baseValue * SkillGainFactor));
                            SkillMod mod3 = new DefaultSkillMod(SkillName.Archery, true, +(baseValue * SkillGainFactor));
                            SkillMod mod4 = new DefaultSkillMod(SkillName.Macing, true, +(baseValue * SkillGainFactor));
                            SkillMod mod5 = new DefaultSkillMod(SkillName.Tactics, true, +(baseValue * SkillGainFactor));
                            SkillMod mod6 = new DefaultSkillMod(SkillName.Wrestling, true, +(baseValue * SkillGainFactor));

                            mods.Add(mod);
                            mods.Add(mod1);
                            mods.Add(mod2);
                            mods.Add(mod3);
                            mods.Add(mod4);
                            mods.Add(mod5);
                            mods.Add(mod6);
                            mob.AddSkillMod(mod);
                            mob.AddSkillMod(mod1);
                            mob.AddSkillMod(mod2);
                            mob.AddSkillMod(mod3);
                            mob.AddSkillMod(mod4);
                            mob.AddSkillMod(mod5);
                            mob.AddSkillMod(mod6);

                            mob.SendMessage("You sprinkle some baby powder on your body and it makes your skin more resistant in combat.");
                        }
                        else
                        {
                            mob.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045);                       // I can't reach that.
                        }
                    }
                }
            }

            context.m_Timer = Timer.DelayCall(SkillGainPeriod, new TimerStateCallback(ClearSkillGain_Callback), mob);
        }