Fixes code according to modern code style. Fixes a few expression bugs.
This commit is contained in:
parent
89eea25e5f
commit
970fd563b2
3324 changed files with 441118 additions and 433755 deletions
|
|
@ -1,51 +1,53 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Alchemist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Alchemist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
[Constructible]
|
||||
public Alchemist() : base("the alchemist")
|
||||
{
|
||||
SetSkill(SkillName.Alchemy, 85.0, 100.0);
|
||||
SetSkill(SkillName.TasteID, 65.0, 88.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Alchemist() : base( "the alchemist" )
|
||||
{
|
||||
SetSkill( SkillName.Alchemy, 85.0, 100.0 );
|
||||
SetSkill( SkillName.TasteID, 65.0, 88.0 );
|
||||
}
|
||||
public Alchemist(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBAlchemist() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
AddItem( new Items.Robe( Utility.RandomPinkHue() ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBAlchemist());
|
||||
}
|
||||
|
||||
public Alchemist( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new Robe(Utility.RandomPinkHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Gumps;
|
||||
|
|
@ -8,464 +7,472 @@ using Server.Targeting;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class AnimalTrainer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class AnimalTrainer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public AnimalTrainer() : base( "the animal trainer" )
|
||||
{
|
||||
SetSkill( SkillName.AnimalLore, 64.0, 100.0 );
|
||||
SetSkill( SkillName.AnimalTaming, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Veterinary, 65.0, 88.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public AnimalTrainer() : base("the animal trainer")
|
||||
{
|
||||
SetSkill(SkillName.AnimalLore, 64.0, 100.0);
|
||||
SetSkill(SkillName.AnimalTaming, 90.0, 100.0);
|
||||
SetSkill(SkillName.Veterinary, 65.0, 88.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBAnimalTrainer() );
|
||||
}
|
||||
public AnimalTrainer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBAnimalTrainer());
|
||||
}
|
||||
|
||||
AddItem( Utility.RandomBool() ? (Item)new QuarterStaff() : (Item)new ShepherdsCrook() );
|
||||
}
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private class StableEntry : ContextMenuEntry
|
||||
{
|
||||
private AnimalTrainer m_Trainer;
|
||||
private Mobile m_From;
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public StableEntry( AnimalTrainer trainer, Mobile from ) : base( 6126, 12 )
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
}
|
||||
AddItem(Utility.RandomBool() ? new QuarterStaff() : (Item)new ShepherdsCrook());
|
||||
}
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
m_Trainer.BeginStable( m_From );
|
||||
}
|
||||
}
|
||||
public override void AddCustomContextEntries(Mobile from, List<ContextMenuEntry> list)
|
||||
{
|
||||
if (from.Alive)
|
||||
{
|
||||
list.Add(new StableEntry(this, from));
|
||||
|
||||
private class ClaimListGump : Gump
|
||||
{
|
||||
private AnimalTrainer m_Trainer;
|
||||
private Mobile m_From;
|
||||
private List<BaseCreature> m_List;
|
||||
if (from.Stabled.Count > 0)
|
||||
list.Add(new ClaimAllEntry(this, from));
|
||||
}
|
||||
|
||||
public ClaimListGump( AnimalTrainer trainer, Mobile from, List<BaseCreature> list ) : base( 50, 50 )
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
m_List = list;
|
||||
base.AddCustomContextEntries(from, list);
|
||||
}
|
||||
|
||||
from.CloseGump( typeof( ClaimListGump ) );
|
||||
public static int GetMaxStabled(Mobile from)
|
||||
{
|
||||
double taming = from.Skills[SkillName.AnimalTaming].Value;
|
||||
double anlore = from.Skills[SkillName.AnimalLore].Value;
|
||||
double vetern = from.Skills[SkillName.Veterinary].Value;
|
||||
double sklsum = taming + anlore + vetern;
|
||||
|
||||
AddPage( 0 );
|
||||
int max;
|
||||
|
||||
AddBackground( 0, 0, 325, 50 + (list.Count * 20), 9250 );
|
||||
AddAlphaRegion( 5, 5, 315, 40 + (list.Count * 20) );
|
||||
if (sklsum >= 240.0)
|
||||
max = 5;
|
||||
else if (sklsum >= 200.0)
|
||||
max = 4;
|
||||
else if (sklsum >= 160.0)
|
||||
max = 3;
|
||||
else
|
||||
max = 2;
|
||||
|
||||
AddHtml( 15, 15, 275, 20, "<BASEFONT COLOR=#FFFFFF>Select a pet to retrieve from the stables:</BASEFONT>", false, false );
|
||||
if (taming >= 100.0)
|
||||
max += (int)((taming - 90.0) / 10);
|
||||
|
||||
for ( int i = 0; i < list.Count; ++i )
|
||||
{
|
||||
BaseCreature pet = list[i];
|
||||
if (anlore >= 100.0)
|
||||
max += (int)((anlore - 90.0) / 10);
|
||||
|
||||
if ( pet == null || pet.Deleted )
|
||||
continue;
|
||||
if (vetern >= 100.0)
|
||||
max += (int)((vetern - 90.0) / 10);
|
||||
|
||||
AddButton( 15, 39 + (i * 20), 10006, 10006, i + 1, GumpButtonType.Reply, 0 );
|
||||
AddHtml( 32, 35 + (i * 20), 275, 18, $"<BASEFONT COLOR=#C0C0EE>{pet.Name}</BASEFONT>", false, false );
|
||||
}
|
||||
}
|
||||
return max;
|
||||
}
|
||||
|
||||
public override void OnResponse( NetState sender, RelayInfo info )
|
||||
{
|
||||
int index = info.ButtonID - 1;
|
||||
private void CloseClaimList(Mobile from)
|
||||
{
|
||||
from.CloseGump(typeof(ClaimListGump));
|
||||
}
|
||||
|
||||
if ( index >= 0 && index < m_List.Count )
|
||||
m_Trainer.EndClaimList( m_From, m_List[index] );
|
||||
}
|
||||
}
|
||||
public void BeginClaimList(Mobile from)
|
||||
{
|
||||
if (Deleted || !from.CheckAlive())
|
||||
return;
|
||||
|
||||
private class ClaimAllEntry : ContextMenuEntry
|
||||
{
|
||||
private AnimalTrainer m_Trainer;
|
||||
private Mobile m_From;
|
||||
List<BaseCreature> list = new List<BaseCreature>();
|
||||
|
||||
public ClaimAllEntry( AnimalTrainer trainer, Mobile from ) : base( 6127, 12 )
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
}
|
||||
for (int i = 0; i < from.Stabled.Count; ++i)
|
||||
{
|
||||
BaseCreature pet = from.Stabled[i] as BaseCreature;
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
m_Trainer.Claim( m_From );
|
||||
}
|
||||
}
|
||||
if (pet == null || pet.Deleted)
|
||||
{
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
from.Stabled.RemoveAt(i);
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
|
||||
public override void AddCustomContextEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
if ( from.Alive )
|
||||
{
|
||||
list.Add( new StableEntry( this, from ) );
|
||||
list.Add(pet);
|
||||
}
|
||||
|
||||
if ( from.Stabled.Count > 0 )
|
||||
list.Add( new ClaimAllEntry( this, from ) );
|
||||
}
|
||||
if (list.Count > 0)
|
||||
from.SendGump(new ClaimListGump(this, from, list));
|
||||
else
|
||||
SayTo(from, 502671); // But I have no animals stabled with me at the moment!
|
||||
}
|
||||
|
||||
base.AddCustomContextEntries( from, list );
|
||||
}
|
||||
public void EndClaimList(Mobile from, BaseCreature pet)
|
||||
{
|
||||
if (pet == null || pet.Deleted || from.Map != Map || !from.Stabled.Contains(pet) || !from.CheckAlive())
|
||||
return;
|
||||
|
||||
public static int GetMaxStabled( Mobile from )
|
||||
{
|
||||
double taming = from.Skills[SkillName.AnimalTaming].Value;
|
||||
double anlore = from.Skills[SkillName.AnimalLore].Value;
|
||||
double vetern = from.Skills[SkillName.Veterinary].Value;
|
||||
double sklsum = taming + anlore + vetern;
|
||||
if (!from.InRange(this, 14))
|
||||
{
|
||||
from.SendLocalizedMessage(500446); // That is too far away.
|
||||
return;
|
||||
}
|
||||
|
||||
int max;
|
||||
if (CanClaim(from, pet))
|
||||
{
|
||||
DoClaim(from, pet);
|
||||
|
||||
if ( sklsum >= 240.0 )
|
||||
max = 5;
|
||||
else if ( sklsum >= 200.0 )
|
||||
max = 4;
|
||||
else if ( sklsum >= 160.0 )
|
||||
max = 3;
|
||||
else
|
||||
max = 2;
|
||||
from.Stabled.Remove(pet);
|
||||
|
||||
if ( taming >= 100.0 )
|
||||
max += (int)((taming - 90.0) / 10);
|
||||
(from as PlayerMobile)?.AutoStabled.Remove(pet);
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo(from, 1049612, pet.Name); // ~1_NAME~ remained in the stables because you have too many followers.
|
||||
}
|
||||
}
|
||||
|
||||
if ( anlore >= 100.0 )
|
||||
max += (int)((anlore - 90.0) / 10);
|
||||
public void BeginStable(Mobile from)
|
||||
{
|
||||
if (Deleted || !from.CheckAlive())
|
||||
return;
|
||||
|
||||
if ( vetern >= 100.0 )
|
||||
max += (int)((vetern - 90.0) / 10);
|
||||
Container bank = from.FindBankNoCreate();
|
||||
|
||||
return max;
|
||||
}
|
||||
if ((from.Backpack == null || from.Backpack.GetAmount(typeof(Gold)) < 30) &&
|
||||
(bank == null || bank.GetAmount(typeof(Gold)) < 30))
|
||||
{
|
||||
SayTo(from, 1042556); // Thou dost not have enough gold, not even in thy bank account.
|
||||
}
|
||||
else
|
||||
{
|
||||
/* I charge 30 gold per pet for a real week's stable time.
|
||||
* I will withdraw it from thy bank account.
|
||||
* Which animal wouldst thou like to stable here?
|
||||
*/
|
||||
from.SendLocalizedMessage(1042558);
|
||||
|
||||
private class StableTarget : Target
|
||||
{
|
||||
private AnimalTrainer m_Trainer;
|
||||
from.Target = new StableTarget(this);
|
||||
}
|
||||
}
|
||||
|
||||
public StableTarget( AnimalTrainer trainer ) : base( 12, false, TargetFlags.None )
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
}
|
||||
public void EndStable(Mobile from, BaseCreature pet)
|
||||
{
|
||||
if (Deleted || !from.CheckAlive())
|
||||
return;
|
||||
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
if ( targeted is BaseCreature )
|
||||
m_Trainer.EndStable( from, (BaseCreature)targeted );
|
||||
else if ( targeted == from )
|
||||
m_Trainer.SayTo( from, 502672 ); // HA HA HA! Sorry, I am not an inn.
|
||||
else
|
||||
m_Trainer.SayTo( from, 1048053 ); // You can't stable that!
|
||||
}
|
||||
}
|
||||
|
||||
private void CloseClaimList( Mobile from )
|
||||
{
|
||||
from.CloseGump( typeof( ClaimListGump ) );
|
||||
}
|
||||
|
||||
public void BeginClaimList( Mobile from )
|
||||
{
|
||||
if ( Deleted || !from.CheckAlive() )
|
||||
return;
|
||||
|
||||
List<BaseCreature> list = new List<BaseCreature>();
|
||||
|
||||
for ( int i = 0; i < from.Stabled.Count; ++i )
|
||||
{
|
||||
BaseCreature pet = from.Stabled[i] as BaseCreature;
|
||||
|
||||
if ( pet == null || pet.Deleted )
|
||||
{
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
from.Stabled.RemoveAt( i );
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
|
||||
list.Add( pet );
|
||||
}
|
||||
|
||||
if ( list.Count > 0 )
|
||||
from.SendGump( new ClaimListGump( this, from, list ) );
|
||||
else
|
||||
SayTo( from, 502671 ); // But I have no animals stabled with me at the moment!
|
||||
}
|
||||
|
||||
public void EndClaimList( Mobile from, BaseCreature pet )
|
||||
{
|
||||
if ( pet == null || pet.Deleted || from.Map != Map || !from.Stabled.Contains( pet ) || !from.CheckAlive() )
|
||||
return;
|
||||
|
||||
if ( !from.InRange( this, 14 ) )
|
||||
{
|
||||
from.SendLocalizedMessage( 500446 ); // That is too far away.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( CanClaim( from, pet ) )
|
||||
{
|
||||
DoClaim( from, pet );
|
||||
|
||||
from.Stabled.Remove( pet );
|
||||
|
||||
(from as PlayerMobile)?.AutoStabled.Remove( pet );
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo( from, 1049612, pet.Name ); // ~1_NAME~ remained in the stables because you have too many followers.
|
||||
}
|
||||
}
|
||||
|
||||
public void BeginStable( Mobile from )
|
||||
{
|
||||
if ( Deleted || !from.CheckAlive() )
|
||||
return;
|
||||
|
||||
Container bank = from.FindBankNoCreate();
|
||||
|
||||
if ( ( from.Backpack == null || from.Backpack.GetAmount( typeof( Gold ) ) < 30 ) && ( bank == null || bank.GetAmount( typeof( Gold ) ) < 30 ) )
|
||||
{
|
||||
SayTo( from, 1042556 ); // Thou dost not have enough gold, not even in thy bank account.
|
||||
}
|
||||
else
|
||||
{
|
||||
/* I charge 30 gold per pet for a real week's stable time.
|
||||
* I will withdraw it from thy bank account.
|
||||
* Which animal wouldst thou like to stable here?
|
||||
*/
|
||||
from.SendLocalizedMessage(1042558);
|
||||
|
||||
from.Target = new StableTarget( this );
|
||||
}
|
||||
}
|
||||
|
||||
public void EndStable( Mobile from, BaseCreature pet )
|
||||
{
|
||||
if ( Deleted || !from.CheckAlive() )
|
||||
return;
|
||||
|
||||
if ( pet.Body.IsHuman )
|
||||
{
|
||||
SayTo( from, 502672 ); // HA HA HA! Sorry, I am not an inn.
|
||||
}
|
||||
else if ( !pet.Controlled )
|
||||
{
|
||||
SayTo( from, 1048053 ); // You can't stable that!
|
||||
}
|
||||
else if ( pet.ControlMaster != from )
|
||||
{
|
||||
SayTo( from, 1042562 ); // You do not own that pet!
|
||||
}
|
||||
else if ( pet.IsDeadPet )
|
||||
{
|
||||
SayTo( from, 1049668 ); // Living pets only, please.
|
||||
}
|
||||
else if ( pet.Summoned )
|
||||
{
|
||||
SayTo( from, 502673 ); // I can not stable summoned creatures.
|
||||
}
|
||||
if (pet.Body.IsHuman)
|
||||
{
|
||||
SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
|
||||
}
|
||||
else if (!pet.Controlled)
|
||||
{
|
||||
SayTo(from, 1048053); // You can't stable that!
|
||||
}
|
||||
else if (pet.ControlMaster != from)
|
||||
{
|
||||
SayTo(from, 1042562); // You do not own that pet!
|
||||
}
|
||||
else if (pet.IsDeadPet)
|
||||
{
|
||||
SayTo(from, 1049668); // Living pets only, please.
|
||||
}
|
||||
else if (pet.Summoned)
|
||||
{
|
||||
SayTo(from, 502673); // I can not stable summoned creatures.
|
||||
}
|
||||
/*
|
||||
else if ( pet.Allured )
|
||||
{
|
||||
SayTo( from, 1048053 ); // You can't stable that!
|
||||
}
|
||||
*/
|
||||
else if ( (pet is PackLlama || pet is PackHorse || pet is Beetle) && (pet.Backpack != null && pet.Backpack.Items.Count > 0) )
|
||||
{
|
||||
SayTo( from, 1042563 ); // You need to unload your pet.
|
||||
}
|
||||
else if ( pet.Combatant != null && pet.InRange( pet.Combatant, 12 ) && pet.Map == pet.Combatant.Map )
|
||||
{
|
||||
SayTo( from, 1042564 ); // I'm sorry. Your pet seems to be busy.
|
||||
}
|
||||
else if ( from.Stabled.Count >= GetMaxStabled( from ) )
|
||||
{
|
||||
SayTo( from, 1042565 ); // You have too many pets in the stables!
|
||||
}
|
||||
else
|
||||
{
|
||||
Container bank = from.FindBankNoCreate();
|
||||
else if ((pet is PackLlama || pet is PackHorse || pet is Beetle) && pet.Backpack != null &&
|
||||
pet.Backpack.Items.Count > 0)
|
||||
{
|
||||
SayTo(from, 1042563); // You need to unload your pet.
|
||||
}
|
||||
else if (pet.Combatant != null && pet.InRange(pet.Combatant, 12) && pet.Map == pet.Combatant.Map)
|
||||
{
|
||||
SayTo(from, 1042564); // I'm sorry. Your pet seems to be busy.
|
||||
}
|
||||
else if (from.Stabled.Count >= GetMaxStabled(from))
|
||||
{
|
||||
SayTo(from, 1042565); // You have too many pets in the stables!
|
||||
}
|
||||
else
|
||||
{
|
||||
Container bank = from.FindBankNoCreate();
|
||||
|
||||
if ( ( from.Backpack != null && from.Backpack.ConsumeTotal( typeof( Gold ), 30 ) ) || ( bank != null && bank.ConsumeTotal( typeof( Gold ), 30 ) ) )
|
||||
{
|
||||
pet.ControlTarget = null;
|
||||
pet.ControlOrder = OrderType.Stay;
|
||||
pet.Internalize();
|
||||
if (from.Backpack != null && from.Backpack.ConsumeTotal(typeof(Gold), 30) ||
|
||||
bank != null && bank.ConsumeTotal(typeof(Gold), 30))
|
||||
{
|
||||
pet.ControlTarget = null;
|
||||
pet.ControlOrder = OrderType.Stay;
|
||||
pet.Internalize();
|
||||
|
||||
pet.SetControlMaster( null );
|
||||
pet.SummonMaster = null;
|
||||
pet.SetControlMaster(null);
|
||||
pet.SummonMaster = null;
|
||||
|
||||
pet.IsStabled = true;
|
||||
pet.StabledBy = from;
|
||||
pet.IsStabled = true;
|
||||
pet.StabledBy = from;
|
||||
|
||||
if ( Core.SE )
|
||||
pet.Loyalty = MaxLoyalty; // Wonderfully happy
|
||||
if (Core.SE)
|
||||
pet.Loyalty = MaxLoyalty; // Wonderfully happy
|
||||
|
||||
from.Stabled.Add( pet );
|
||||
from.Stabled.Add(pet);
|
||||
|
||||
SayTo( from, Core.AOS ? 1049677 : 502679 ); // [AOS: Your pet has been stabled.] Very well, thy pet is stabled. Thou mayst recover it by saying 'claim' to me. In one real world week, I shall sell it off if it is not claimed!
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo( from, 502677 ); // But thou hast not the funds in thy bank account!
|
||||
}
|
||||
}
|
||||
}
|
||||
SayTo(from,
|
||||
Core.AOS
|
||||
? 1049677
|
||||
: 502679); // [AOS: Your pet has been stabled.] Very well, thy pet is stabled. Thou mayst recover it by saying 'claim' to me. In one real world week, I shall sell it off if it is not claimed!
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo(from, 502677); // But thou hast not the funds in thy bank account!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Claim( Mobile from )
|
||||
{
|
||||
Claim( from, null );
|
||||
}
|
||||
public void Claim(Mobile from)
|
||||
{
|
||||
Claim(from, null);
|
||||
}
|
||||
|
||||
public void Claim( Mobile from, string petName )
|
||||
{
|
||||
if ( Deleted || !from.CheckAlive() )
|
||||
return;
|
||||
public void Claim(Mobile from, string petName)
|
||||
{
|
||||
if (Deleted || !from.CheckAlive())
|
||||
return;
|
||||
|
||||
bool claimed = false;
|
||||
int stabled = 0;
|
||||
bool claimed = false;
|
||||
int stabled = 0;
|
||||
|
||||
bool claimByName = ( petName != null );
|
||||
bool claimByName = petName != null;
|
||||
|
||||
for ( int i = 0; i < from.Stabled.Count; ++i )
|
||||
{
|
||||
BaseCreature pet = from.Stabled[i] as BaseCreature;
|
||||
for (int i = 0; i < from.Stabled.Count; ++i)
|
||||
{
|
||||
BaseCreature pet = from.Stabled[i] as BaseCreature;
|
||||
|
||||
if ( pet == null || pet.Deleted )
|
||||
{
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
from.Stabled.RemoveAt( i );
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
if (pet == null || pet.Deleted)
|
||||
{
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
from.Stabled.RemoveAt(i);
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
|
||||
++stabled;
|
||||
++stabled;
|
||||
|
||||
if ( claimByName && !Insensitive.Equals( pet.Name, petName ) )
|
||||
continue;
|
||||
if (claimByName && !Insensitive.Equals(pet.Name, petName))
|
||||
continue;
|
||||
|
||||
if ( CanClaim( from, pet ) )
|
||||
{
|
||||
DoClaim( from, pet );
|
||||
if (CanClaim(from, pet))
|
||||
{
|
||||
DoClaim(from, pet);
|
||||
|
||||
from.Stabled.RemoveAt( i );
|
||||
from.Stabled.RemoveAt(i);
|
||||
|
||||
(from as PlayerMobile)?.AutoStabled.Remove( pet );
|
||||
(from as PlayerMobile)?.AutoStabled.Remove(pet);
|
||||
|
||||
--i;
|
||||
--i;
|
||||
|
||||
claimed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo( from, 1049612, pet.Name ); // ~1_NAME~ remained in the stables because you have too many followers.
|
||||
}
|
||||
}
|
||||
claimed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo(from, 1049612, pet.Name); // ~1_NAME~ remained in the stables because you have too many followers.
|
||||
}
|
||||
}
|
||||
|
||||
if ( claimed )
|
||||
SayTo( from, 1042559 ); // Here you go... and good day to you!
|
||||
else if ( stabled == 0 )
|
||||
SayTo( from, 502671 ); // But I have no animals stabled with me at the moment!
|
||||
else if ( claimByName )
|
||||
BeginClaimList( from );
|
||||
}
|
||||
if (claimed)
|
||||
SayTo(from, 1042559); // Here you go... and good day to you!
|
||||
else if (stabled == 0)
|
||||
SayTo(from, 502671); // But I have no animals stabled with me at the moment!
|
||||
else if (claimByName)
|
||||
BeginClaimList(from);
|
||||
}
|
||||
|
||||
public bool CanClaim( Mobile from, BaseCreature pet )
|
||||
{
|
||||
return ((from.Followers + pet.ControlSlots) <= from.FollowersMax);
|
||||
}
|
||||
public bool CanClaim(Mobile from, BaseCreature pet)
|
||||
{
|
||||
return from.Followers + pet.ControlSlots <= from.FollowersMax;
|
||||
}
|
||||
|
||||
private void DoClaim( Mobile from, BaseCreature pet )
|
||||
{
|
||||
pet.SetControlMaster( from );
|
||||
private void DoClaim(Mobile from, BaseCreature pet)
|
||||
{
|
||||
pet.SetControlMaster(from);
|
||||
|
||||
if ( pet.Summoned )
|
||||
pet.SummonMaster = from;
|
||||
if (pet.Summoned)
|
||||
pet.SummonMaster = from;
|
||||
|
||||
pet.ControlTarget = from;
|
||||
pet.ControlOrder = OrderType.Follow;
|
||||
pet.ControlTarget = from;
|
||||
pet.ControlOrder = OrderType.Follow;
|
||||
|
||||
pet.MoveToWorld( from.Location, from.Map );
|
||||
pet.MoveToWorld(from.Location, from.Map);
|
||||
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
pet.IsStabled = false;
|
||||
pet.StabledBy = null;
|
||||
|
||||
if ( Core.SE )
|
||||
pet.Loyalty = MaxLoyalty; // Wonderfully Happy
|
||||
}
|
||||
if (Core.SE)
|
||||
pet.Loyalty = MaxLoyalty; // Wonderfully Happy
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech( Mobile from )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnSpeech( SpeechEventArgs e )
|
||||
{
|
||||
if ( !e.Handled && e.HasKeyword( 0x0008 ) ) // *stable*
|
||||
{
|
||||
e.Handled = true;
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
if (!e.Handled && e.HasKeyword(0x0008)) // *stable*
|
||||
{
|
||||
e.Handled = true;
|
||||
|
||||
CloseClaimList( e.Mobile );
|
||||
BeginStable( e.Mobile );
|
||||
}
|
||||
else if ( !e.Handled && e.HasKeyword( 0x0009 ) ) // *claim*
|
||||
{
|
||||
e.Handled = true;
|
||||
CloseClaimList(e.Mobile);
|
||||
BeginStable(e.Mobile);
|
||||
}
|
||||
else if (!e.Handled && e.HasKeyword(0x0009)) // *claim*
|
||||
{
|
||||
e.Handled = true;
|
||||
|
||||
CloseClaimList( e.Mobile );
|
||||
CloseClaimList(e.Mobile);
|
||||
|
||||
int index = e.Speech.IndexOf( ' ' );
|
||||
int index = e.Speech.IndexOf(' ');
|
||||
|
||||
if ( index != -1 )
|
||||
Claim( e.Mobile, e.Speech.Substring( index ).Trim() );
|
||||
else
|
||||
Claim( e.Mobile );
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnSpeech( e );
|
||||
}
|
||||
}
|
||||
if (index != -1)
|
||||
Claim(e.Mobile, e.Speech.Substring(index).Trim());
|
||||
else
|
||||
Claim(e.Mobile);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
}
|
||||
|
||||
public AnimalTrainer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
private class StableEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_From;
|
||||
private AnimalTrainer m_Trainer;
|
||||
|
||||
public StableEntry(AnimalTrainer trainer, Mobile from) : base(6126, 12)
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
}
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
m_Trainer.BeginStable(m_From);
|
||||
}
|
||||
}
|
||||
|
||||
private class ClaimListGump : Gump
|
||||
{
|
||||
private Mobile m_From;
|
||||
private List<BaseCreature> m_List;
|
||||
private AnimalTrainer m_Trainer;
|
||||
|
||||
public ClaimListGump(AnimalTrainer trainer, Mobile from, List<BaseCreature> list) : base(50, 50)
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
m_List = list;
|
||||
|
||||
from.CloseGump(typeof(ClaimListGump));
|
||||
|
||||
AddPage(0);
|
||||
|
||||
AddBackground(0, 0, 325, 50 + list.Count * 20, 9250);
|
||||
AddAlphaRegion(5, 5, 315, 40 + list.Count * 20);
|
||||
|
||||
AddHtml(15, 15, 275, 20, "<BASEFONT COLOR=#FFFFFF>Select a pet to retrieve from the stables:</BASEFONT>",
|
||||
false, false);
|
||||
|
||||
for (int i = 0; i < list.Count; ++i)
|
||||
{
|
||||
BaseCreature pet = list[i];
|
||||
|
||||
if (pet == null || pet.Deleted)
|
||||
continue;
|
||||
|
||||
AddButton(15, 39 + i * 20, 10006, 10006, i + 1, GumpButtonType.Reply, 0);
|
||||
AddHtml(32, 35 + i * 20, 275, 18, $"<BASEFONT COLOR=#C0C0EE>{pet.Name}</BASEFONT>", false, false);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnResponse(NetState sender, RelayInfo info)
|
||||
{
|
||||
int index = info.ButtonID - 1;
|
||||
|
||||
if (index >= 0 && index < m_List.Count)
|
||||
m_Trainer.EndClaimList(m_From, m_List[index]);
|
||||
}
|
||||
}
|
||||
|
||||
private class ClaimAllEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_From;
|
||||
private AnimalTrainer m_Trainer;
|
||||
|
||||
public ClaimAllEntry(AnimalTrainer trainer, Mobile from) : base(6127, 12)
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
m_From = from;
|
||||
}
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
m_Trainer.Claim(m_From);
|
||||
}
|
||||
}
|
||||
|
||||
private class StableTarget : Target
|
||||
{
|
||||
private AnimalTrainer m_Trainer;
|
||||
|
||||
public StableTarget(AnimalTrainer trainer) : base(12, false, TargetFlags.None)
|
||||
{
|
||||
m_Trainer = trainer;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (targeted is BaseCreature)
|
||||
m_Trainer.EndStable(from, (BaseCreature)targeted);
|
||||
else if (targeted == from)
|
||||
m_Trainer.SayTo(from, 502672); // HA HA HA! Sorry, I am not an inn.
|
||||
else
|
||||
m_Trainer.SayTo(from, 1048053); // You can't stable that!
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,42 +2,43 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Architect : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Architect : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
[Constructible]
|
||||
public Architect() : base("the architect")
|
||||
{
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Architect() : base( "the architect" )
|
||||
{
|
||||
}
|
||||
public Architect(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
if ( !Core.AOS )
|
||||
m_SBInfos.Add( new SBHouseDeed() );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
m_SBInfos.Add( new SBArchitect() );
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public Architect( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
if (!Core.AOS)
|
||||
m_SBInfos.Add(new SBHouseDeed());
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
m_SBInfos.Add(new SBArchitect());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,91 +1,94 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Armorer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Armorer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Armorer() : base( "the armorer" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Blacksmith, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Armorer() : base("the armorer")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 64.0, 100.0);
|
||||
SetSkill(SkillName.Blacksmith, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
switch ( Utility.Random( 4 ))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_SBInfos.Add( new SBLeatherArmor() );
|
||||
m_SBInfos.Add( new SBStuddedArmor() );
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBPlateArmor() );
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
m_SBInfos.Add( new SBChainmailArmor() );
|
||||
m_SBInfos.Add( new SBRingmailArmor() );
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
m_SBInfos.Add( new SBStuddedArmor() );
|
||||
m_SBInfos.Add( new SBLeatherArmor() );
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBPlateArmor() );
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
m_SBInfos.Add( new SBChainmailArmor() );
|
||||
m_SBInfos.Add( new SBRingmailArmor() );
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( IsTokunoVendor )
|
||||
{
|
||||
m_SBInfos.Add( new SBSELeatherArmor() );
|
||||
m_SBInfos.Add( new SBSEArmor() );
|
||||
}
|
||||
}
|
||||
public Armorer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Boots;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Boots;
|
||||
|
||||
AddItem( new Items.HalfApron( Utility.RandomYellowHue() ) );
|
||||
AddItem( new Items.Bascinet() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
switch (Utility.Random(4))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_SBInfos.Add(new SBLeatherArmor());
|
||||
m_SBInfos.Add(new SBStuddedArmor());
|
||||
m_SBInfos.Add(new SBMetalShields());
|
||||
m_SBInfos.Add(new SBPlateArmor());
|
||||
m_SBInfos.Add(new SBHelmetArmor());
|
||||
m_SBInfos.Add(new SBChainmailArmor());
|
||||
m_SBInfos.Add(new SBRingmailArmor());
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
m_SBInfos.Add(new SBStuddedArmor());
|
||||
m_SBInfos.Add(new SBLeatherArmor());
|
||||
m_SBInfos.Add(new SBMetalShields());
|
||||
m_SBInfos.Add(new SBHelmetArmor());
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
m_SBInfos.Add(new SBMetalShields());
|
||||
m_SBInfos.Add(new SBPlateArmor());
|
||||
m_SBInfos.Add(new SBHelmetArmor());
|
||||
m_SBInfos.Add(new SBChainmailArmor());
|
||||
m_SBInfos.Add(new SBRingmailArmor());
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
m_SBInfos.Add(new SBMetalShields());
|
||||
m_SBInfos.Add(new SBHelmetArmor());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public Armorer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
if (IsTokunoVendor)
|
||||
{
|
||||
m_SBInfos.Add(new SBSELeatherArmor());
|
||||
m_SBInfos.Add(new SBSEArmor());
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
AddItem(new HalfApron(Utility.RandomYellowHue()));
|
||||
AddItem(new Bascinet());
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,39 +2,40 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Baker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Baker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Baker() : base( "the baker" )
|
||||
{
|
||||
SetSkill( SkillName.Cooking, 75.0, 98.0 );
|
||||
SetSkill( SkillName.TasteID, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Baker() : base("the baker")
|
||||
{
|
||||
SetSkill(SkillName.Cooking, 75.0, 98.0);
|
||||
SetSkill(SkillName.TasteID, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBBaker() );
|
||||
}
|
||||
public Baker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Baker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBBaker());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,45 +2,46 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Bard : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Bard : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.BardsGuild;
|
||||
[Constructible]
|
||||
public Bard() : base("the bard")
|
||||
{
|
||||
SetSkill(SkillName.Discordance, 64.0, 100.0);
|
||||
SetSkill(SkillName.Musicianship, 64.0, 100.0);
|
||||
SetSkill(SkillName.Peacemaking, 65.0, 88.0);
|
||||
SetSkill(SkillName.Provocation, 60.0, 83.0);
|
||||
SetSkill(SkillName.Archery, 36.0, 68.0);
|
||||
SetSkill(SkillName.Swords, 36.0, 68.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Bard() : base( "the bard" )
|
||||
{
|
||||
SetSkill( SkillName.Discordance, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Musicianship, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Peacemaking, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Provocation, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Archery, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Swords, 36.0, 68.0 );
|
||||
}
|
||||
public Bard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBBard() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Bard( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.BardsGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBBard());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,46 +3,47 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Barkeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Barkeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBBarkeeper() );
|
||||
}
|
||||
[Constructible]
|
||||
public Barkeeper() : base("the barkeeper")
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
public Barkeeper(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new HalfApron( Utility.RandomBrightHue() ) );
|
||||
}
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
|
||||
[Constructible]
|
||||
public Barkeeper() : base( "the barkeeper" )
|
||||
{
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBBarkeeper());
|
||||
}
|
||||
|
||||
public Barkeeper( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron(Utility.RandomBrightHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,39 +2,40 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Beekeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Beekeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Beekeeper() : base( "the beekeeper" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public Beekeeper() : base("the beekeeper")
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBBeekeeper() );
|
||||
}
|
||||
public Beekeeper(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Boots;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Beekeeper( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Boots;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBBeekeeper());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,144 +1,148 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Engines.BulkOrders;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Blacksmith : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Blacksmith : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.BlacksmithsGuild;
|
||||
[Constructible]
|
||||
public Blacksmith() : base("the blacksmith")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 36.0, 68.0);
|
||||
SetSkill(SkillName.Blacksmith, 65.0, 88.0);
|
||||
SetSkill(SkillName.Fencing, 60.0, 83.0);
|
||||
SetSkill(SkillName.Macing, 61.0, 93.0);
|
||||
SetSkill(SkillName.Swords, 60.0, 83.0);
|
||||
SetSkill(SkillName.Tactics, 60.0, 83.0);
|
||||
SetSkill(SkillName.Parry, 61.0, 93.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Blacksmith() : base( "the blacksmith" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Blacksmith, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Fencing, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Macing, 61.0, 93.0 );
|
||||
SetSkill( SkillName.Swords, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Tactics, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Parry, 61.0, 93.0 );
|
||||
}
|
||||
public Blacksmith(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
/*m_SBInfos.Add( new SBSmithTools() );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBWoodenShields() );
|
||||
public override NpcGuild NpcGuild => NpcGuild.BlacksmithsGuild;
|
||||
|
||||
m_SBInfos.Add( new SBPlateArmor() );
|
||||
public override VendorShoeType ShoeType => VendorShoeType.None;
|
||||
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
m_SBInfos.Add( new SBChainmailArmor() );
|
||||
m_SBInfos.Add( new SBRingmailArmor() );
|
||||
m_SBInfos.Add( new SBAxeWeapon() );
|
||||
m_SBInfos.Add( new SBPoleArmWeapon() );
|
||||
m_SBInfos.Add( new SBRangedWeapon() );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
/*m_SBInfos.Add( new SBSmithTools() );
|
||||
|
||||
m_SBInfos.Add( new SBKnifeWeapon() );
|
||||
m_SBInfos.Add( new SBMaceWeapon() );
|
||||
m_SBInfos.Add( new SBSpearForkWeapon() );
|
||||
m_SBInfos.Add( new SBSwordWeapon() );*/
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
m_SBInfos.Add( new SBWoodenShields() );
|
||||
|
||||
m_SBInfos.Add( new SBBlacksmith() );
|
||||
if ( IsTokunoVendor )
|
||||
{
|
||||
m_SBInfos.Add( new SBSEArmor() );
|
||||
m_SBInfos.Add( new SBSEWeapons() );
|
||||
}
|
||||
}
|
||||
m_SBInfos.Add( new SBPlateArmor() );
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.None;
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
m_SBInfos.Add( new SBChainmailArmor() );
|
||||
m_SBInfos.Add( new SBRingmailArmor() );
|
||||
m_SBInfos.Add( new SBAxeWeapon() );
|
||||
m_SBInfos.Add( new SBPoleArmWeapon() );
|
||||
m_SBInfos.Add( new SBRangedWeapon() );
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
m_SBInfos.Add( new SBKnifeWeapon() );
|
||||
m_SBInfos.Add( new SBMaceWeapon() );
|
||||
m_SBInfos.Add( new SBSpearForkWeapon() );
|
||||
m_SBInfos.Add( new SBSwordWeapon() );*/
|
||||
|
||||
Item item = ( Utility.RandomBool() ? null : new Items.RingmailChest() );
|
||||
m_SBInfos.Add(new SBBlacksmith());
|
||||
if (IsTokunoVendor)
|
||||
{
|
||||
m_SBInfos.Add(new SBSEArmor());
|
||||
m_SBInfos.Add(new SBSEWeapons());
|
||||
}
|
||||
}
|
||||
|
||||
if ( item != null && !EquipItem( item ) )
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
if ( item == null )
|
||||
AddItem( new Items.FullApron() );
|
||||
Item item = Utility.RandomBool() ? null : new RingmailChest();
|
||||
|
||||
AddItem( new Items.Bascinet() );
|
||||
AddItem( new Items.SmithHammer() );
|
||||
}
|
||||
if (item != null && !EquipItem(item))
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
|
||||
#region Bulk Orders
|
||||
public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
if (item == null)
|
||||
AddItem(new FullApron());
|
||||
|
||||
if ( pm != null && pm.NextSmithBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) )
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Blacksmith].Base;
|
||||
AddItem(new Bascinet());
|
||||
AddItem(new SmithHammer());
|
||||
}
|
||||
|
||||
if ( theirSkill >= 70.1 )
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 6.0 );
|
||||
else if ( theirSkill >= 50.1 )
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 2.0 );
|
||||
else
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 1.0 );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
|
||||
return new LargeSmithBOD();
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
return SmallSmithBOD.CreateRandomFor( from );
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
return null;
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool IsValidBulkOrder( Item item )
|
||||
{
|
||||
return ( item is SmallSmithBOD || item is LargeSmithBOD );
|
||||
}
|
||||
#region Bulk Orders
|
||||
|
||||
public override bool SupportsBulkOrders( Mobile from )
|
||||
{
|
||||
return ( from is PlayerMobile && from.Skills[SkillName.Blacksmith].Base > 0 );
|
||||
}
|
||||
public override Item CreateBulkOrder(Mobile from, bool fromContextMenu)
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
public override TimeSpan GetNextBulkOrder( Mobile from )
|
||||
{
|
||||
if ( from is PlayerMobile )
|
||||
return ((PlayerMobile)from).NextSmithBulkOrder;
|
||||
if (pm != null && pm.NextSmithBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()))
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Blacksmith].Base;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
if (theirSkill >= 70.1)
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(6.0);
|
||||
else if (theirSkill >= 50.1)
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(2.0);
|
||||
else
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(1.0);
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive( Mobile from )
|
||||
{
|
||||
if ( Core.SE && from is PlayerMobile )
|
||||
((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
#endregion
|
||||
if (theirSkill >= 70.1 && (theirSkill - 40.0) / 300.0 > Utility.RandomDouble())
|
||||
return new LargeSmithBOD();
|
||||
|
||||
public Blacksmith( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
return SmallSmithBOD.CreateRandomFor(from);
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
return null;
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override bool IsValidBulkOrder(Item item)
|
||||
{
|
||||
return item is SmallSmithBOD || item is LargeSmithBOD;
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override bool SupportsBulkOrders(Mobile from)
|
||||
{
|
||||
return from is PlayerMobile && from.Skills[SkillName.Blacksmith].Base > 0;
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override TimeSpan GetNextBulkOrder(Mobile from)
|
||||
{
|
||||
if (from is PlayerMobile)
|
||||
return ((PlayerMobile)from).NextSmithBulkOrder;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive(Mobile from)
|
||||
{
|
||||
if (Core.SE && from is PlayerMobile)
|
||||
((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -1,60 +1,62 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias( "Server.Mobiles.Bower" )]
|
||||
public class Bowyer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
[TypeAlias("Server.Mobiles.Bower")]
|
||||
public class Bowyer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Bowyer() : base( "the bowyer" )
|
||||
{
|
||||
SetSkill( SkillName.Fletching, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Archery, 80.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Bowyer() : base("the bowyer")
|
||||
{
|
||||
SetSkill(SkillName.Fletching, 80.0, 100.0);
|
||||
SetSkill(SkillName.Archery, 80.0, 100.0);
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
public Bowyer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
|
||||
AddItem( new Items.Bow() );
|
||||
AddItem( new Items.LeatherGorget() );
|
||||
}
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBBowyer() );
|
||||
m_SBInfos.Add( new SBRangedWeapon() );
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSEBowyer() );
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public Bowyer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
AddItem(new Bow());
|
||||
AddItem(new LeatherGorget());
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBBowyer());
|
||||
m_SBInfos.Add(new SBRangedWeapon());
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSEBowyer());
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +1,49 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Butcher : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Butcher : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Butcher() : base( "the butcher" )
|
||||
{
|
||||
SetSkill( SkillName.Anatomy, 45.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Butcher() : base("the butcher")
|
||||
{
|
||||
SetSkill(SkillName.Anatomy, 45.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBButcher() );
|
||||
}
|
||||
public Butcher(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
AddItem( new Items.Cleaver() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBButcher());
|
||||
}
|
||||
|
||||
public Butcher( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron());
|
||||
AddItem(new Cleaver());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,54 +1,56 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Carpenter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Carpenter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
[Constructible]
|
||||
public Carpenter() : base("the carpenter")
|
||||
{
|
||||
SetSkill(SkillName.Carpentry, 85.0, 100.0);
|
||||
SetSkill(SkillName.Lumberjacking, 60.0, 83.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Carpenter() : base( "the carpenter" )
|
||||
{
|
||||
SetSkill( SkillName.Carpentry, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Lumberjacking, 60.0, 83.0 );
|
||||
}
|
||||
public Carpenter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBStavesWeapon() );
|
||||
m_SBInfos.Add( new SBCarpenter() );
|
||||
m_SBInfos.Add( new SBWoodenShields() );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSECarpenter() );
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBStavesWeapon());
|
||||
m_SBInfos.Add(new SBCarpenter());
|
||||
m_SBInfos.Add(new SBWoodenShields());
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
}
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSECarpenter());
|
||||
}
|
||||
|
||||
public Carpenter( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,41 +1,42 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Cobbler : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Cobbler : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Cobbler() : base( "the cobbler" )
|
||||
{
|
||||
SetSkill( SkillName.Tailoring, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Cobbler() : base("the cobbler")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBCobbler() );
|
||||
}
|
||||
public Cobbler(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Cobbler( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBCobbler());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,52 +1,54 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Cook : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Cook : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Cook() : base( "the cook" )
|
||||
{
|
||||
SetSkill( SkillName.Cooking, 90.0, 100.0 );
|
||||
SetSkill( SkillName.TasteID, 75.0, 98.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Cook() : base("the cook")
|
||||
{
|
||||
SetSkill(SkillName.Cooking, 90.0, 100.0);
|
||||
SetSkill(SkillName.TasteID, 75.0, 98.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBCook() );
|
||||
public Cook(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSECook() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBCook());
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
}
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSECook());
|
||||
}
|
||||
|
||||
public Cook( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,55 +1,57 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Farmer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Farmer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Farmer() : base( "the farmer" )
|
||||
{
|
||||
SetSkill( SkillName.Lumberjacking, 36.0, 68.0 );
|
||||
SetSkill( SkillName.TasteID, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Cooking, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Farmer() : base("the farmer")
|
||||
{
|
||||
SetSkill(SkillName.Lumberjacking, 36.0, 68.0);
|
||||
SetSkill(SkillName.TasteID, 36.0, 68.0);
|
||||
SetSkill(SkillName.Cooking, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBFarmer() );
|
||||
}
|
||||
public Farmer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.ThighBoots;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public override VendorShoeType ShoeType => VendorShoeType.ThighBoots;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBFarmer());
|
||||
}
|
||||
|
||||
AddItem( new Items.WideBrimHat( Utility.RandomNeutralHue() ) );
|
||||
}
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public Farmer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new WideBrimHat(Utility.RandomNeutralHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,48 +1,50 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Fisherman : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Fisherman : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.FishermensGuild;
|
||||
[Constructible]
|
||||
public Fisherman() : base("the fisher")
|
||||
{
|
||||
SetSkill(SkillName.Fishing, 75.0, 98.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Fisherman() : base( "the fisher" )
|
||||
{
|
||||
SetSkill( SkillName.Fishing, 75.0, 98.0 );
|
||||
}
|
||||
public Fisherman(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBFisherman() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override NpcGuild NpcGuild => NpcGuild.FishermensGuild;
|
||||
|
||||
AddItem( new Items.FishingPole() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBFisherman());
|
||||
}
|
||||
|
||||
public Fisherman( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new FishingPole());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,42 +2,43 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Furtrader : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Furtrader : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Furtrader() : base( "the furtrader" )
|
||||
{
|
||||
SetSkill( SkillName.Camping, 55.0, 78.0 );
|
||||
//SetSkill( SkillName.Alchemy, 60.0, 83.0 );
|
||||
SetSkill( SkillName.AnimalLore, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Cooking, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Tracking, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Furtrader() : base("the furtrader")
|
||||
{
|
||||
SetSkill(SkillName.Camping, 55.0, 78.0);
|
||||
//SetSkill( SkillName.Alchemy, 60.0, 83.0 );
|
||||
SetSkill(SkillName.AnimalLore, 85.0, 100.0);
|
||||
SetSkill(SkillName.Cooking, 45.0, 68.0);
|
||||
SetSkill(SkillName.Tracking, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBFurtrader() );
|
||||
}
|
||||
public Furtrader(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Furtrader( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBFurtrader());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,46 +2,47 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias( "Server.Mobiles.GargoyleAlchemist" )]
|
||||
public class Glassblower : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
[TypeAlias("Server.Mobiles.GargoyleAlchemist")]
|
||||
public class Glassblower : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
[Constructible]
|
||||
public Glassblower() : base("the alchemist")
|
||||
{
|
||||
SetSkill(SkillName.Alchemy, 85.0, 100.0);
|
||||
SetSkill(SkillName.TasteID, 85.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Glassblower() : base( "the alchemist" )
|
||||
{
|
||||
SetSkill( SkillName.Alchemy, 85.0, 100.0 );
|
||||
SetSkill( SkillName.TasteID, 85.0, 100.0 );
|
||||
}
|
||||
public Glassblower(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBGlassblower() );
|
||||
m_SBInfos.Add( new SBAlchemist() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Glassblower( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBGlassblower());
|
||||
m_SBInfos.Add(new SBAlchemist());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
if ( Body == 0x2F2 )
|
||||
Body = 0x2F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (Body == 0x2F2)
|
||||
Body = 0x2F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,41 +2,42 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class GolemCrafter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class GolemCrafter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public GolemCrafter() : base( "the golem crafter" )
|
||||
{
|
||||
SetSkill( SkillName.Lockpicking, 60.0, 83.0 );
|
||||
SetSkill( SkillName.RemoveTrap, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Tinkering, 64.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public GolemCrafter() : base("the golem crafter")
|
||||
{
|
||||
SetSkill(SkillName.Lockpicking, 60.0, 83.0);
|
||||
SetSkill(SkillName.RemoveTrap, 75.0, 98.0);
|
||||
SetSkill(SkillName.Tinkering, 64.0, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTinker() );
|
||||
m_SBInfos.Add( new SBVagabond() );
|
||||
}
|
||||
public GolemCrafter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public GolemCrafter( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTinker());
|
||||
m_SBInfos.Add(new SBVagabond());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +1,36 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class BardGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.BardsGuild;
|
||||
public class BardGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public BardGuildmaster() : base("bard")
|
||||
{
|
||||
SetSkill(SkillName.Archery, 80.0, 100.0);
|
||||
SetSkill(SkillName.Discordance, 80.0, 100.0);
|
||||
SetSkill(SkillName.Musicianship, 80.0, 100.0);
|
||||
SetSkill(SkillName.Peacemaking, 80.0, 100.0);
|
||||
SetSkill(SkillName.Provocation, 80.0, 100.0);
|
||||
SetSkill(SkillName.Swords, 80.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public BardGuildmaster() : base( "bard" )
|
||||
{
|
||||
SetSkill( SkillName.Archery, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Discordance, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Musicianship, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Peacemaking, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Provocation, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Swords, 80.0, 100.0 );
|
||||
}
|
||||
public BardGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public BardGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.BardsGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,161 +5,163 @@ using Server.Network;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public abstract class BaseGuildmaster : BaseVendor
|
||||
{
|
||||
protected override List<SBInfo> SBInfos { get; } = new List<SBInfo>();
|
||||
public abstract class BaseGuildmaster : BaseVendor
|
||||
{
|
||||
public BaseGuildmaster(string title) : base(title)
|
||||
{
|
||||
Title = $"the {title} {(Female ? "guildmistress" : "guildmaster")}";
|
||||
}
|
||||
|
||||
public override bool IsActiveVendor => false;
|
||||
public BaseGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool ClickTitle => false;
|
||||
protected override List<SBInfo> SBInfos{ get; } = new List<SBInfo>();
|
||||
|
||||
public virtual int JoinCost => 500;
|
||||
public override bool IsActiveVendor => false;
|
||||
|
||||
public virtual TimeSpan JoinAge => TimeSpan.FromDays( 0.0 );
|
||||
public virtual TimeSpan JoinGameAge => TimeSpan.FromDays( 2.0 );
|
||||
public virtual TimeSpan QuitAge => TimeSpan.FromDays( 7.0 );
|
||||
public virtual TimeSpan QuitGameAge => TimeSpan.FromDays( 4.0 );
|
||||
public override bool ClickTitle => false;
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
}
|
||||
public virtual int JoinCost => 500;
|
||||
|
||||
public virtual bool CheckCustomReqs( PlayerMobile pm )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
public virtual TimeSpan JoinAge => TimeSpan.FromDays(0.0);
|
||||
public virtual TimeSpan JoinGameAge => TimeSpan.FromDays(2.0);
|
||||
public virtual TimeSpan QuitAge => TimeSpan.FromDays(7.0);
|
||||
public virtual TimeSpan QuitGameAge => TimeSpan.FromDays(4.0);
|
||||
|
||||
public virtual void SayGuildTo( Mobile m )
|
||||
{
|
||||
SayTo( m, 1008055 + (int)NpcGuild );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void SayWelcomeTo( Mobile m )
|
||||
{
|
||||
SayTo( m, 1008054 ); // Welcome to the guild! Thou shalt find that fellow members shall grant thee lower prices in shops.
|
||||
}
|
||||
public virtual bool CheckCustomReqs(PlayerMobile pm)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public virtual void SayPriceTo( Mobile m )
|
||||
{
|
||||
m.Send( new MessageLocalizedAffix( Serial, Body, MessageType.Regular, SpeechHue, 3, 1008052, Name, AffixType.Append, JoinCost.ToString(), "" ) );
|
||||
}
|
||||
public virtual void SayGuildTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008055 + (int)NpcGuild);
|
||||
}
|
||||
|
||||
public virtual bool WasNamed( string speech )
|
||||
{
|
||||
string name = Name;
|
||||
public virtual void SayWelcomeTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008054); // Welcome to the guild! Thou shalt find that fellow members shall grant thee lower prices in shops.
|
||||
}
|
||||
|
||||
return ( name != null && Insensitive.StartsWith( speech, name ) );
|
||||
}
|
||||
public virtual void SayPriceTo(Mobile m)
|
||||
{
|
||||
m.Send(new MessageLocalizedAffix(Serial, Body, MessageType.Regular, SpeechHue, 3, 1008052, Name,
|
||||
AffixType.Append, JoinCost.ToString(), ""));
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech( Mobile from )
|
||||
{
|
||||
if ( from.InRange( Location, 2 ) )
|
||||
return true;
|
||||
public virtual bool WasNamed(string speech)
|
||||
{
|
||||
string name = Name;
|
||||
|
||||
return base.HandlesOnSpeech( from );
|
||||
}
|
||||
return name != null && Insensitive.StartsWith(speech, name);
|
||||
}
|
||||
|
||||
public override void OnSpeech( SpeechEventArgs e )
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
if (from.InRange(Location, 2))
|
||||
return true;
|
||||
|
||||
if ( !e.Handled && from is PlayerMobile && from.InRange( Location, 2 ) && WasNamed( e.Speech ) )
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
return base.HandlesOnSpeech(from);
|
||||
}
|
||||
|
||||
if ( e.HasKeyword( 0x0004 ) ) // *join* | *member*
|
||||
{
|
||||
if ( pm.NpcGuild == NpcGuild )
|
||||
SayTo( from, 501047 ); // Thou art already a member of our guild.
|
||||
else if ( pm.NpcGuild != NpcGuild.None )
|
||||
SayTo( from, 501046 ); // Thou must resign from thy other guild first.
|
||||
else if ( pm.GameTime < JoinGameAge || (pm.CreationTime + JoinAge) > DateTime.UtcNow )
|
||||
SayTo( from, 501048 ); // You are too young to join my guild...
|
||||
else if ( CheckCustomReqs( pm ) )
|
||||
SayPriceTo( from );
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
else if ( e.HasKeyword( 0x0005 ) ) // *resign* | *quit*
|
||||
{
|
||||
if ( pm.NpcGuild != NpcGuild )
|
||||
{
|
||||
SayTo( from, 501052 ); // Thou dost not belong to my guild!
|
||||
}
|
||||
else if ( (pm.NpcGuildJoinTime + QuitAge) > DateTime.UtcNow || (pm.NpcGuildGameTime + QuitGameAge) > pm.GameTime )
|
||||
{
|
||||
SayTo( from, 501053 ); // You just joined my guild! You must wait a week to resign.
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo( from, 501054 ); // I accept thy resignation.
|
||||
pm.NpcGuild = NpcGuild.None;
|
||||
}
|
||||
if (!e.Handled && from is PlayerMobile && from.InRange(Location, 2) && WasNamed(e.Speech))
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
if (e.HasKeyword(0x0004)) // *join* | *member*
|
||||
{
|
||||
if (pm.NpcGuild == NpcGuild)
|
||||
SayTo(from, 501047); // Thou art already a member of our guild.
|
||||
else if (pm.NpcGuild != NpcGuild.None)
|
||||
SayTo(from, 501046); // Thou must resign from thy other guild first.
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
SayTo(from, 501048); // You are too young to join my guild...
|
||||
else if (CheckCustomReqs(pm))
|
||||
SayPriceTo(from);
|
||||
|
||||
base.OnSpeech( e );
|
||||
}
|
||||
e.Handled = true;
|
||||
}
|
||||
else if (e.HasKeyword(0x0005)) // *resign* | *quit*
|
||||
{
|
||||
if (pm.NpcGuild != NpcGuild)
|
||||
{
|
||||
SayTo(from, 501052); // Thou dost not belong to my guild!
|
||||
}
|
||||
else if (pm.NpcGuildJoinTime + QuitAge > DateTime.UtcNow ||
|
||||
pm.NpcGuildGameTime + QuitGameAge > pm.GameTime)
|
||||
{
|
||||
SayTo(from, 501053); // You just joined my guild! You must wait a week to resign.
|
||||
}
|
||||
else
|
||||
{
|
||||
SayTo(from, 501054); // I accept thy resignation.
|
||||
pm.NpcGuild = NpcGuild.None;
|
||||
}
|
||||
|
||||
public override bool OnGoldGiven( Mobile from, Gold dropped )
|
||||
{
|
||||
if ( from is PlayerMobile && dropped.Amount == JoinCost )
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( pm.NpcGuild == NpcGuild )
|
||||
{
|
||||
SayTo( from, 501047 ); // Thou art already a member of our guild.
|
||||
}
|
||||
else if ( pm.NpcGuild != NpcGuild.None )
|
||||
{
|
||||
SayTo( from, 501046 ); // Thou must resign from thy other guild first.
|
||||
}
|
||||
else if ( pm.GameTime < JoinGameAge || (pm.CreationTime + JoinAge) > DateTime.UtcNow )
|
||||
{
|
||||
SayTo( from, 501048 ); // You are too young to join my guild...
|
||||
}
|
||||
else if ( CheckCustomReqs( pm ) )
|
||||
{
|
||||
SayWelcomeTo( from );
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
|
||||
pm.NpcGuild = NpcGuild;
|
||||
pm.NpcGuildJoinTime = DateTime.UtcNow;
|
||||
pm.NpcGuildGameTime = pm.GameTime;
|
||||
public override bool OnGoldGiven(Mobile from, Gold dropped)
|
||||
{
|
||||
if (from is PlayerMobile && dropped.Amount == JoinCost)
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
if (pm.NpcGuild == NpcGuild)
|
||||
{
|
||||
SayTo(from, 501047); // Thou art already a member of our guild.
|
||||
}
|
||||
else if (pm.NpcGuild != NpcGuild.None)
|
||||
{
|
||||
SayTo(from, 501046); // Thou must resign from thy other guild first.
|
||||
}
|
||||
else if (pm.GameTime < JoinGameAge || pm.CreationTime + JoinAge > DateTime.UtcNow)
|
||||
{
|
||||
SayTo(from, 501048); // You are too young to join my guild...
|
||||
}
|
||||
else if (CheckCustomReqs(pm))
|
||||
{
|
||||
SayWelcomeTo(from);
|
||||
|
||||
return false;
|
||||
}
|
||||
pm.NpcGuild = NpcGuild;
|
||||
pm.NpcGuildJoinTime = DateTime.UtcNow;
|
||||
pm.NpcGuildGameTime = pm.GameTime;
|
||||
|
||||
return base.OnGoldGiven( from, dropped );
|
||||
}
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
|
||||
public BaseGuildmaster( string title ) : base( title )
|
||||
{
|
||||
Title = $"the {title} {(Female ? "guildmistress" : "guildmaster")}";
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public BaseGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
return base.OnGoldGiven(from, dropped);
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,63 +1,66 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class BlacksmithGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.BlacksmithsGuild;
|
||||
public class BlacksmithGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public BlacksmithGuildmaster() : base("blacksmith")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 65.0, 88.0);
|
||||
SetSkill(SkillName.Blacksmith, 90.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 36.0, 68.0);
|
||||
SetSkill(SkillName.Parry, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override bool IsActiveVendor => true;
|
||||
public BlacksmithGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool ClickTitle => true;
|
||||
public override NpcGuild NpcGuild => NpcGuild.BlacksmithsGuild;
|
||||
|
||||
[Constructible]
|
||||
public BlacksmithGuildmaster() : base( "blacksmith" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Blacksmith, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Macing, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Parry, 36.0, 68.0 );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
SBInfos.Add( new SBBlacksmith() );
|
||||
}
|
||||
public override bool IsActiveVendor => true;
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.ThighBoots;
|
||||
public override bool ClickTitle => true;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => VendorShoeType.ThighBoots;
|
||||
|
||||
Item item = ( Utility.RandomBool() ? null : new Items.RingmailChest() );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
SBInfos.Add(new SBBlacksmith());
|
||||
}
|
||||
|
||||
if ( item != null && !EquipItem( item ) )
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
if ( item == null )
|
||||
AddItem( new Items.FullApron() );
|
||||
Item item = Utility.RandomBool() ? null : new RingmailChest();
|
||||
|
||||
AddItem( new Items.Bascinet() );
|
||||
AddItem( new Items.SmithHammer() );
|
||||
}
|
||||
if (item != null && !EquipItem(item))
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
|
||||
public BlacksmithGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
if (item == null)
|
||||
AddItem(new FullApron());
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new Bascinet());
|
||||
AddItem(new SmithHammer());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +1,31 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class FisherGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.FishermensGuild;
|
||||
public class FisherGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public FisherGuildmaster() : base("fisher")
|
||||
{
|
||||
SetSkill(SkillName.Fishing, 80.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public FisherGuildmaster() : base( "fisher" )
|
||||
{
|
||||
SetSkill( SkillName.Fishing, 80.0, 100.0 );
|
||||
}
|
||||
public FisherGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public FisherGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.FishermensGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,44 +1,46 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HealerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.HealersGuild;
|
||||
public class HealerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public HealerGuildmaster() : base("healer")
|
||||
{
|
||||
SetSkill(SkillName.Anatomy, 85.0, 100.0);
|
||||
SetSkill(SkillName.Healing, 90.0, 100.0);
|
||||
SetSkill(SkillName.Forensics, 75.0, 98.0);
|
||||
SetSkill(SkillName.MagicResist, 75.0, 98.0);
|
||||
SetSkill(SkillName.SpiritSpeak, 65.0, 88.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public HealerGuildmaster() : base( "healer" )
|
||||
{
|
||||
SetSkill( SkillName.Anatomy, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Healing, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Forensics, 75.0, 98.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 98.0 );
|
||||
SetSkill( SkillName.SpiritSpeak, 65.0, 88.0 );
|
||||
}
|
||||
public HealerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.HealersGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Sandals;
|
||||
|
||||
AddItem( new Items.Robe( Utility.RandomYellowHue() ) );
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public HealerGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
AddItem(new Robe(Utility.RandomYellowHue()));
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +1,49 @@
|
|||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class MageGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
public class MageGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MageGuildmaster() : base("mage")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 85.0, 100.0);
|
||||
SetSkill(SkillName.Inscribe, 65.0, 88.0);
|
||||
SetSkill(SkillName.MagicResist, 64.0, 100.0);
|
||||
SetSkill(SkillName.Magery, 90.0, 100.0);
|
||||
SetSkill(SkillName.Wrestling, 60.0, 83.0);
|
||||
SetSkill(SkillName.Meditation, 85.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 36.0, 68.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public MageGuildmaster() : base( "mage" )
|
||||
{
|
||||
SetSkill( SkillName.EvalInt, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Inscribe, 65.0, 88.0 );
|
||||
SetSkill( SkillName.MagicResist, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Meditation, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Macing, 36.0, 68.0 );
|
||||
}
|
||||
public MageGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
AddItem( new Items.Robe( Utility.RandomBlueHue() ) );
|
||||
AddItem( new Items.GnarledStaff() );
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public MageGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
AddItem(new Robe(Utility.RandomBlueHue()));
|
||||
AddItem(new GnarledStaff());
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,32 +1,32 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class MerchantGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.MerchantsGuild;
|
||||
public class MerchantGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MerchantGuildmaster() : base("merchant")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 85.0, 100.0);
|
||||
SetSkill(SkillName.ArmsLore, 85.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public MerchantGuildmaster() : base( "merchant" )
|
||||
{
|
||||
SetSkill( SkillName.ItemID, 85.0, 100.0 );
|
||||
SetSkill( SkillName.ArmsLore, 85.0, 100.0 );
|
||||
}
|
||||
public MerchantGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public MerchantGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.MerchantsGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,32 +1,32 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class MinerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.MinersGuild;
|
||||
public class MinerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public MinerGuildmaster() : base("miner")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 60.0, 83.0);
|
||||
SetSkill(SkillName.Mining, 90.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public MinerGuildmaster() : base( "miner" )
|
||||
{
|
||||
SetSkill( SkillName.ItemID, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Mining, 90.0, 100.0 );
|
||||
}
|
||||
public MinerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public MinerGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.MinersGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,41 +1,41 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class RangerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.RangersGuild;
|
||||
public class RangerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public RangerGuildmaster() : base("ranger")
|
||||
{
|
||||
SetSkill(SkillName.AnimalLore, 64.0, 100.0);
|
||||
SetSkill(SkillName.Camping, 75.0, 98.0);
|
||||
SetSkill(SkillName.Hiding, 75.0, 98.0);
|
||||
SetSkill(SkillName.MagicResist, 75.0, 98.0);
|
||||
SetSkill(SkillName.Tactics, 65.0, 88.0);
|
||||
SetSkill(SkillName.Archery, 90.0, 100.0);
|
||||
SetSkill(SkillName.Tracking, 90.0, 100.0);
|
||||
SetSkill(SkillName.Stealth, 60.0, 83.0);
|
||||
SetSkill(SkillName.Fencing, 36.0, 68.0);
|
||||
SetSkill(SkillName.Herding, 36.0, 68.0);
|
||||
SetSkill(SkillName.Swords, 45.0, 68.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public RangerGuildmaster() : base( "ranger" )
|
||||
{
|
||||
SetSkill( SkillName.AnimalLore, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Camping, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Hiding, 75.0, 98.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Archery, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Tracking, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Stealth, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Fencing, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Herding, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Swords, 45.0, 68.0 );
|
||||
}
|
||||
public RangerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public RangerGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.RangersGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +1,31 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class TailorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
public class TailorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public TailorGuildmaster() : base("tailor")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 90.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public TailorGuildmaster() : base( "tailor" )
|
||||
{
|
||||
SetSkill( SkillName.Tailoring, 90.0, 100.0 );
|
||||
}
|
||||
public TailorGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public TailorGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,124 +3,125 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class ThiefGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.ThievesGuild;
|
||||
public class ThiefGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public ThiefGuildmaster() : base("thief")
|
||||
{
|
||||
SetSkill(SkillName.DetectHidden, 75.0, 98.0);
|
||||
SetSkill(SkillName.Hiding, 65.0, 88.0);
|
||||
SetSkill(SkillName.Lockpicking, 85.0, 100.0);
|
||||
SetSkill(SkillName.Snooping, 90.0, 100.0);
|
||||
SetSkill(SkillName.Poisoning, 60.0, 83.0);
|
||||
SetSkill(SkillName.Stealing, 90.0, 100.0);
|
||||
SetSkill(SkillName.Fencing, 75.0, 98.0);
|
||||
SetSkill(SkillName.Stealth, 85.0, 100.0);
|
||||
SetSkill(SkillName.RemoveTrap, 85.0, 100.0);
|
||||
}
|
||||
|
||||
public override TimeSpan JoinAge => TimeSpan.FromDays( 7.0 );
|
||||
public ThiefGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public ThiefGuildmaster() : base( "thief" )
|
||||
{
|
||||
SetSkill( SkillName.DetectHidden, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Hiding, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Lockpicking, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Snooping, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Poisoning, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Stealing, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Fencing, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Stealth, 85.0, 100.0 );
|
||||
SetSkill( SkillName.RemoveTrap, 85.0, 100.0 );
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.ThievesGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override TimeSpan JoinAge => TimeSpan.FromDays(7.0);
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
AddItem( new Kryss() );
|
||||
else
|
||||
AddItem( new Dagger() );
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override bool CheckCustomReqs( PlayerMobile pm )
|
||||
{
|
||||
if ( pm.Young )
|
||||
{
|
||||
SayTo( pm, 502089 ); // You cannot be a member of the Thieves' Guild while you are Young.
|
||||
return false;
|
||||
}
|
||||
if (Utility.RandomBool())
|
||||
AddItem(new Kryss());
|
||||
else
|
||||
AddItem(new Dagger());
|
||||
}
|
||||
|
||||
if ( pm.Kills > 0 )
|
||||
{
|
||||
SayTo( pm, 501050 ); // This guild is for cunning thieves, not oafish cutthroats.
|
||||
return false;
|
||||
}
|
||||
if ( pm.Skills[SkillName.Stealing].Base < 60.0 )
|
||||
{
|
||||
SayTo( pm, 501051 ); // You must be at least a journeyman pickpocket to join this elite organization.
|
||||
return false;
|
||||
}
|
||||
public override bool CheckCustomReqs(PlayerMobile pm)
|
||||
{
|
||||
if (pm.Young)
|
||||
{
|
||||
SayTo(pm, 502089); // You cannot be a member of the Thieves' Guild while you are Young.
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (pm.Kills > 0)
|
||||
{
|
||||
SayTo(pm, 501050); // This guild is for cunning thieves, not oafish cutthroats.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void SayWelcomeTo( Mobile m )
|
||||
{
|
||||
SayTo( m, 1008053 ); // Welcome to the guild! Stay to the shadows, friend.
|
||||
}
|
||||
if (pm.Skills[SkillName.Stealing].Base < 60.0)
|
||||
{
|
||||
SayTo(pm, 501051); // You must be at least a journeyman pickpocket to join this elite organization.
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech( Mobile from )
|
||||
{
|
||||
if ( from.InRange( Location, 2 ) )
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
return base.HandlesOnSpeech( from );
|
||||
}
|
||||
public override void SayWelcomeTo(Mobile m)
|
||||
{
|
||||
SayTo(m, 1008053); // Welcome to the guild! Stay to the shadows, friend.
|
||||
}
|
||||
|
||||
public override void OnSpeech( SpeechEventArgs e )
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
if (from.InRange(Location, 2))
|
||||
return true;
|
||||
|
||||
if ( !e.Handled && from is PlayerMobile && from.InRange( Location, 2 ) && e.HasKeyword( 0x1F ) ) // *disguise*
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
return base.HandlesOnSpeech(from);
|
||||
}
|
||||
|
||||
if ( pm.NpcGuild == NpcGuild.ThievesGuild )
|
||||
SayTo( from, 501839 ); // That particular item costs 700 gold pieces.
|
||||
else
|
||||
SayTo( from, 501838 ); // I don't know what you're talking about.
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
Mobile from = e.Mobile;
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
if (!e.Handled && from is PlayerMobile && from.InRange(Location, 2) && e.HasKeyword(0x1F)) // *disguise*
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
|
||||
base.OnSpeech( e );
|
||||
}
|
||||
if (pm.NpcGuild == NpcGuild.ThievesGuild)
|
||||
SayTo(from, 501839); // That particular item costs 700 gold pieces.
|
||||
else
|
||||
SayTo(from, 501838); // I don't know what you're talking about.
|
||||
|
||||
public override bool OnGoldGiven( Mobile from, Gold dropped )
|
||||
{
|
||||
if ( from is PlayerMobile && dropped.Amount == 700 )
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
if ( pm.NpcGuild == NpcGuild.ThievesGuild )
|
||||
{
|
||||
from.AddToBackpack( new DisguiseKit() );
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
public override bool OnGoldGiven(Mobile from, Gold dropped)
|
||||
{
|
||||
if (from is PlayerMobile && dropped.Amount == 700)
|
||||
{
|
||||
PlayerMobile pm = (PlayerMobile)from;
|
||||
|
||||
return base.OnGoldGiven( from, dropped );
|
||||
}
|
||||
if (pm.NpcGuild == NpcGuild.ThievesGuild)
|
||||
{
|
||||
from.AddToBackpack(new DisguiseKit());
|
||||
|
||||
public ThiefGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
dropped.Delete();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
return base.OnGoldGiven(from, dropped);
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,82 +1,85 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TinkerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
public class TinkerGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public TinkerGuildmaster() : base("tinker")
|
||||
{
|
||||
SetSkill(SkillName.Lockpicking, 65.0, 88.0);
|
||||
SetSkill(SkillName.Tinkering, 90.0, 100.0);
|
||||
SetSkill(SkillName.RemoveTrap, 85.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public TinkerGuildmaster() : base( "tinker" )
|
||||
{
|
||||
SetSkill( SkillName.Lockpicking, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Tinkering, 90.0, 100.0 );
|
||||
SetSkill( SkillName.RemoveTrap, 85.0, 100.0 );
|
||||
}
|
||||
public TinkerGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public TinkerGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override void AddCustomContextEntries( Mobile from, List<ContextMenuEntry> list )
|
||||
{
|
||||
if ( Core.ML && from.Alive )
|
||||
{
|
||||
RechargeEntry entry = new RechargeEntry( from, this );
|
||||
public override void AddCustomContextEntries(Mobile from, List<ContextMenuEntry> list)
|
||||
{
|
||||
if (Core.ML && from.Alive)
|
||||
{
|
||||
RechargeEntry entry = new RechargeEntry(from, this);
|
||||
|
||||
if ( WeaponEngravingTool.Find( from ) == null )
|
||||
entry.Enabled = false;
|
||||
if (WeaponEngravingTool.Find(from) == null)
|
||||
entry.Enabled = false;
|
||||
|
||||
list.Add( entry );
|
||||
}
|
||||
list.Add(entry);
|
||||
}
|
||||
|
||||
base.AddCustomContextEntries( from, list );
|
||||
}
|
||||
base.AddCustomContextEntries(from, list);
|
||||
}
|
||||
|
||||
private class RechargeEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_From;
|
||||
private Mobile m_Vendor;
|
||||
private class RechargeEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_From;
|
||||
private Mobile m_Vendor;
|
||||
|
||||
public RechargeEntry( Mobile from, Mobile vendor ) : base( 6271, 6 )
|
||||
{
|
||||
m_From = from;
|
||||
m_Vendor = vendor;
|
||||
}
|
||||
public RechargeEntry(Mobile from, Mobile vendor) : base(6271, 6)
|
||||
{
|
||||
m_From = from;
|
||||
m_Vendor = vendor;
|
||||
}
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
if ( !Core.ML || m_Vendor == null || m_Vendor.Deleted )
|
||||
return;
|
||||
public override void OnClick()
|
||||
{
|
||||
if (!Core.ML || m_Vendor == null || m_Vendor.Deleted)
|
||||
return;
|
||||
|
||||
WeaponEngravingTool tool = WeaponEngravingTool.Find( m_From );
|
||||
WeaponEngravingTool tool = WeaponEngravingTool.Find(m_From);
|
||||
|
||||
if ( tool != null && tool.UsesRemaining <= 0 )
|
||||
{
|
||||
if ( Banker.GetBalance( m_From ) >= 100000 )
|
||||
m_From.SendGump( new WeaponEngravingTool.ConfirmGump( tool, m_Vendor ) );
|
||||
else
|
||||
m_Vendor.Say( 1076167 ); // You need a 100,000 gold and a blue diamond to recharge the weapon engraver.
|
||||
}
|
||||
else
|
||||
m_Vendor.Say( 1076164 ); // I can only help with this if you are carrying an engraving tool that needs repair.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tool != null && tool.UsesRemaining <= 0)
|
||||
{
|
||||
if (Banker.GetBalance(m_From) >= 100000)
|
||||
m_From.SendGump(new WeaponEngravingTool.ConfirmGump(tool, m_Vendor));
|
||||
else
|
||||
m_Vendor.Say(1076167); // You need a 100,000 gold and a blue diamond to recharge the weapon engraver.
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Vendor.Say(
|
||||
1076164); // I can only help with this if you are carrying an engraving tool that needs repair.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,37 +1,37 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class WarriorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
public override NpcGuild NpcGuild => NpcGuild.WarriorsGuild;
|
||||
public class WarriorGuildmaster : BaseGuildmaster
|
||||
{
|
||||
[Constructible]
|
||||
public WarriorGuildmaster() : base("warrior")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 75.0, 98.0);
|
||||
SetSkill(SkillName.Parry, 85.0, 100.0);
|
||||
SetSkill(SkillName.MagicResist, 60.0, 83.0);
|
||||
SetSkill(SkillName.Tactics, 85.0, 100.0);
|
||||
SetSkill(SkillName.Swords, 90.0, 100.0);
|
||||
SetSkill(SkillName.Macing, 60.0, 83.0);
|
||||
SetSkill(SkillName.Fencing, 60.0, 83.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public WarriorGuildmaster() : base( "warrior" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Parry, 85.0, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Tactics, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Swords, 90.0, 100.0 );
|
||||
SetSkill( SkillName.Macing, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Fencing, 60.0, 83.0 );
|
||||
}
|
||||
public WarriorGuildmaster(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public WarriorGuildmaster( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.WarriorsGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,74 +1,74 @@
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
public class GypsyAnimalTrainer : AnimalTrainer
|
||||
{
|
||||
[Constructible]
|
||||
public GypsyAnimalTrainer()
|
||||
{
|
||||
if ( Utility.RandomBool() )
|
||||
Title = "the gypsy animal trainer";
|
||||
else
|
||||
Title = "the gypsy animal herder";
|
||||
}
|
||||
public class GypsyAnimalTrainer : AnimalTrainer
|
||||
{
|
||||
[Constructible]
|
||||
public GypsyAnimalTrainer()
|
||||
{
|
||||
if (Utility.RandomBool())
|
||||
Title = "the gypsy animal trainer";
|
||||
else
|
||||
Title = "the gypsy animal herder";
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
public GypsyAnimalTrainer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public override VendorShoeType ShoeType => Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
Item item = FindItemOnLayer( Layer.Pants );
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
Item item = FindItemOnLayer(Layer.Pants);
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterLegs );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.OuterLegs);
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerLegs );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.InnerLegs);
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterTorso );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.OuterTorso);
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerTorso );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.InnerTorso);
|
||||
|
||||
item = FindItemOnLayer( Layer.Shirt );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
item = FindItemOnLayer(Layer.Shirt);
|
||||
|
||||
public GypsyAnimalTrainer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,81 +2,87 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class GypsyBanker : Banker
|
||||
{
|
||||
public override bool IsActiveVendor => false;
|
||||
public override NpcGuild NpcGuild => NpcGuild.None;
|
||||
public override bool ClickTitle => false;
|
||||
public class GypsyBanker : Banker
|
||||
{
|
||||
[Constructible]
|
||||
public GypsyBanker()
|
||||
{
|
||||
Title = "the gypsy banker";
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public GypsyBanker()
|
||||
{
|
||||
Title = "the gypsy banker";
|
||||
}
|
||||
public GypsyBanker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override bool IsActiveVendor => false;
|
||||
public override NpcGuild NpcGuild => NpcGuild.None;
|
||||
public override bool ClickTitle => false;
|
||||
|
||||
switch ( Utility.Random( 4 ) )
|
||||
{
|
||||
case 0: AddItem( new JesterHat( Utility.RandomBrightHue() ) ); break;
|
||||
case 1: AddItem( new Bandana( Utility.RandomBrightHue() ) ); break;
|
||||
case 2: AddItem( new SkullCap( Utility.RandomBrightHue() ) ); break;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
Item item = FindItemOnLayer( Layer.Pants );
|
||||
switch (Utility.Random(4))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new JesterHat(Utility.RandomBrightHue()));
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new Bandana(Utility.RandomBrightHue()));
|
||||
break;
|
||||
case 2:
|
||||
AddItem(new SkullCap(Utility.RandomBrightHue()));
|
||||
break;
|
||||
}
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
Item item = FindItemOnLayer(Layer.Pants);
|
||||
|
||||
item = FindItemOnLayer( Layer.Shoes );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.Shoes);
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterLegs );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.OuterLegs);
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerLegs );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.InnerLegs);
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterTorso );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.OuterTorso);
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerTorso );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
item = FindItemOnLayer(Layer.InnerTorso);
|
||||
|
||||
item = FindItemOnLayer( Layer.Shirt );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
item = FindItemOnLayer(Layer.Shirt);
|
||||
|
||||
public GypsyBanker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,72 +3,79 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class GypsyMaiden : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class GypsyMaiden : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public GypsyMaiden() : base( "the gypsy maiden" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public GypsyMaiden() : base("the gypsy maiden")
|
||||
{
|
||||
}
|
||||
|
||||
public override bool GetGender()
|
||||
{
|
||||
return true; // always female
|
||||
}
|
||||
public GypsyMaiden(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBProvisioner() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override bool GetGender()
|
||||
{
|
||||
return true; // always female
|
||||
}
|
||||
|
||||
switch ( Utility.Random( 4 ) )
|
||||
{
|
||||
case 0: AddItem( new JesterHat( Utility.RandomBrightHue() ) ); break;
|
||||
case 1: AddItem( new Bandana( Utility.RandomBrightHue() ) ); break;
|
||||
case 2: AddItem( new SkullCap( Utility.RandomBrightHue() ) ); break;
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBProvisioner());
|
||||
}
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
AddItem( new HalfApron( Utility.RandomBrightHue() ) );
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
Item item = FindItemOnLayer( Layer.Pants );
|
||||
switch (Utility.Random(4))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new JesterHat(Utility.RandomBrightHue()));
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new Bandana(Utility.RandomBrightHue()));
|
||||
break;
|
||||
case 2:
|
||||
AddItem(new SkullCap(Utility.RandomBrightHue()));
|
||||
break;
|
||||
}
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (Utility.RandomBool())
|
||||
AddItem(new HalfApron(Utility.RandomBrightHue()));
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterLegs );
|
||||
Item item = FindItemOnLayer(Layer.Pants);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerLegs );
|
||||
item = FindItemOnLayer(Layer.OuterLegs);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
public GypsyMaiden( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
item = FindItemOnLayer(Layer.InnerLegs);
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,41 +1,42 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HairStylist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HairStylist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public HairStylist() : base( "the hair stylist" )
|
||||
{
|
||||
SetSkill( SkillName.Alchemy, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.0, 110.0 );
|
||||
SetSkill( SkillName.TasteID, 85.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public HairStylist() : base("the hair stylist")
|
||||
{
|
||||
SetSkill(SkillName.Alchemy, 80.0, 100.0);
|
||||
SetSkill(SkillName.Magery, 90.0, 110.0);
|
||||
SetSkill(SkillName.TasteID, 85.0, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBHairStylist() );
|
||||
}
|
||||
public HairStylist(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public HairStylist( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBHairStylist());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,44 +2,45 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Herbalist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Herbalist : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
[Constructible]
|
||||
public Herbalist() : base("the herbalist")
|
||||
{
|
||||
SetSkill(SkillName.Alchemy, 80.0, 100.0);
|
||||
SetSkill(SkillName.Cooking, 80.0, 100.0);
|
||||
SetSkill(SkillName.TasteID, 80.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Herbalist() : base( "the herbalist" )
|
||||
{
|
||||
SetSkill( SkillName.Alchemy, 80.0, 100.0 );
|
||||
SetSkill( SkillName.Cooking, 80.0, 100.0 );
|
||||
SetSkill( SkillName.TasteID, 80.0, 100.0 );
|
||||
}
|
||||
public Herbalist(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBHerbalist() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public Herbalist( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBHerbalist());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,78 +3,83 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HolyMage : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class HolyMage : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public HolyMage() : base( "the Holy Mage" )
|
||||
{
|
||||
SetSkill( SkillName.EvalInt, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Inscribe, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Magery, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 60.0, 83.0 );
|
||||
SetSkill( SkillName.MagicResist, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Wrestling, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public HolyMage() : base("the Holy Mage")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 65.0, 88.0);
|
||||
SetSkill(SkillName.Inscribe, 60.0, 83.0);
|
||||
SetSkill(SkillName.Magery, 64.0, 100.0);
|
||||
SetSkill(SkillName.Meditation, 60.0, 83.0);
|
||||
SetSkill(SkillName.MagicResist, 65.0, 88.0);
|
||||
SetSkill(SkillName.Wrestling, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBHolyMage() );
|
||||
}
|
||||
public HolyMage(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Item ApplyHue( Item item, int hue )
|
||||
{
|
||||
item.Hue = hue;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
return item;
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBHolyMage());
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem( ApplyHue( new Robe(), 0x47E ) );
|
||||
AddItem( ApplyHue( new ThighBoots(), 0x47E ) );
|
||||
AddItem( ApplyHue( new BlackStaff(), 0x47E ) );
|
||||
public Item ApplyHue(Item item, int hue)
|
||||
{
|
||||
item.Hue = hue;
|
||||
|
||||
if ( Female )
|
||||
{
|
||||
AddItem( ApplyHue( new LeatherGloves(), 0x47E ) );
|
||||
AddItem( ApplyHue( new GoldNecklace(), 0x47E ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
AddItem( ApplyHue( new PlateGloves(), 0x47E ) );
|
||||
AddItem( ApplyHue( new PlateGorget(), 0x47E ) );
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
switch ( Utility.Random( Female ? 2 : 1 ) )
|
||||
{
|
||||
case 0: HairItemID = 0x203C; break;
|
||||
case 1: HairItemID = 0x203D; break;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem(ApplyHue(new Robe(), 0x47E));
|
||||
AddItem(ApplyHue(new ThighBoots(), 0x47E));
|
||||
AddItem(ApplyHue(new BlackStaff(), 0x47E));
|
||||
|
||||
HairHue = 0x47E;
|
||||
if (Female)
|
||||
{
|
||||
AddItem(ApplyHue(new LeatherGloves(), 0x47E));
|
||||
AddItem(ApplyHue(new GoldNecklace(), 0x47E));
|
||||
}
|
||||
else
|
||||
{
|
||||
AddItem(ApplyHue(new PlateGloves(), 0x47E));
|
||||
AddItem(ApplyHue(new PlateGorget(), 0x47E));
|
||||
}
|
||||
|
||||
PackGold( 100, 200 );
|
||||
}
|
||||
switch (Utility.Random(Female ? 2 : 1))
|
||||
{
|
||||
case 0:
|
||||
HairItemID = 0x203C;
|
||||
break;
|
||||
case 1:
|
||||
HairItemID = 0x203D;
|
||||
break;
|
||||
}
|
||||
|
||||
public HolyMage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
HairHue = 0x47E;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
PackGold(100, 200);
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,43 +1,44 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class InnKeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class InnKeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public InnKeeper() : base( "the innkeeper" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public InnKeeper() : base("the innkeeper")
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBInnKeeper() );
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSEFood() );
|
||||
}
|
||||
public InnKeeper(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public InnKeeper( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBInnKeeper());
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSEFood());
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,117 +3,122 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class IronWorker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class IronWorker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public IronWorker() : base( "the iron worker" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 36.0, 68.0 );
|
||||
SetSkill( SkillName.Blacksmith, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Fencing, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Macing, 61.0, 93.0 );
|
||||
SetSkill( SkillName.Swords, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Tactics, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Parry, 61.0, 93.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public IronWorker() : base("the iron worker")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 36.0, 68.0);
|
||||
SetSkill(SkillName.Blacksmith, 65.0, 88.0);
|
||||
SetSkill(SkillName.Fencing, 60.0, 83.0);
|
||||
SetSkill(SkillName.Macing, 61.0, 93.0);
|
||||
SetSkill(SkillName.Swords, 60.0, 83.0);
|
||||
SetSkill(SkillName.Tactics, 60.0, 83.0);
|
||||
SetSkill(SkillName.Parry, 61.0, 93.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBAxeWeapon() );
|
||||
m_SBInfos.Add( new SBKnifeWeapon() );
|
||||
m_SBInfos.Add( new SBMaceWeapon() );
|
||||
m_SBInfos.Add( new SBSmithTools() );
|
||||
m_SBInfos.Add( new SBPoleArmWeapon() );
|
||||
m_SBInfos.Add( new SBSpearForkWeapon() );
|
||||
m_SBInfos.Add( new SBSwordWeapon() );
|
||||
public IronWorker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
m_SBInfos.Add( new SBMetalShields() );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
m_SBInfos.Add( new SBHelmetArmor() );
|
||||
m_SBInfos.Add( new SBPlateArmor() );
|
||||
m_SBInfos.Add( new SBChainmailArmor() );
|
||||
m_SBInfos.Add( new SBRingmailArmor() );
|
||||
m_SBInfos.Add( new SBStuddedArmor() );
|
||||
m_SBInfos.Add( new SBLeatherArmor() );
|
||||
}
|
||||
public override VendorShoeType ShoeType => VendorShoeType.None;
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.None;
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBAxeWeapon());
|
||||
m_SBInfos.Add(new SBKnifeWeapon());
|
||||
m_SBInfos.Add(new SBMaceWeapon());
|
||||
m_SBInfos.Add(new SBSmithTools());
|
||||
m_SBInfos.Add(new SBPoleArmWeapon());
|
||||
m_SBInfos.Add(new SBSpearForkWeapon());
|
||||
m_SBInfos.Add(new SBSwordWeapon());
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
m_SBInfos.Add(new SBMetalShields());
|
||||
|
||||
Item item = ( Utility.RandomBool() ? null : new RingmailChest() );
|
||||
m_SBInfos.Add(new SBHelmetArmor());
|
||||
m_SBInfos.Add(new SBPlateArmor());
|
||||
m_SBInfos.Add(new SBChainmailArmor());
|
||||
m_SBInfos.Add(new SBRingmailArmor());
|
||||
m_SBInfos.Add(new SBStuddedArmor());
|
||||
m_SBInfos.Add(new SBLeatherArmor());
|
||||
}
|
||||
|
||||
if ( item != null && !EquipItem( item ) )
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
switch ( Utility.Random( 3 ) )
|
||||
{
|
||||
case 0:
|
||||
case 1: AddItem( new JesterHat( Utility.RandomBrightHue() ) ); break;
|
||||
case 2: AddItem( new Bandana( Utility.RandomBrightHue() ) ); break;
|
||||
}
|
||||
Item item = Utility.RandomBool() ? null : new RingmailChest();
|
||||
|
||||
if ( item == null )
|
||||
AddItem( new FullApron( Utility.RandomBrightHue() ) );
|
||||
if (item != null && !EquipItem(item))
|
||||
{
|
||||
item.Delete();
|
||||
item = null;
|
||||
}
|
||||
|
||||
AddItem( new Bascinet() );
|
||||
AddItem( new SmithHammer() );
|
||||
switch (Utility.Random(3))
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
AddItem(new JesterHat(Utility.RandomBrightHue()));
|
||||
break;
|
||||
case 2:
|
||||
AddItem(new Bandana(Utility.RandomBrightHue()));
|
||||
break;
|
||||
}
|
||||
|
||||
item = FindItemOnLayer( Layer.Pants );
|
||||
if (item == null)
|
||||
AddItem(new FullApron(Utility.RandomBrightHue()));
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
AddItem(new Bascinet());
|
||||
AddItem(new SmithHammer());
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterLegs );
|
||||
item = FindItemOnLayer(Layer.Pants);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerLegs );
|
||||
item = FindItemOnLayer(Layer.OuterLegs);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
item = FindItemOnLayer( Layer.OuterTorso );
|
||||
item = FindItemOnLayer(Layer.InnerLegs);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
item = FindItemOnLayer( Layer.InnerTorso );
|
||||
item = FindItemOnLayer(Layer.OuterTorso);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
item = FindItemOnLayer( Layer.Shirt );
|
||||
item = FindItemOnLayer(Layer.InnerTorso);
|
||||
|
||||
if ( item != null )
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
|
||||
public IronWorker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
item = FindItemOnLayer(Layer.Shirt);
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
if (item != null)
|
||||
item.Hue = Utility.RandomBrightHue();
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,38 +2,39 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Jeweler : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Jeweler : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Jeweler() : base( "the jeweler" )
|
||||
{
|
||||
SetSkill( SkillName.ItemID, 64.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Jeweler() : base("the jeweler")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 64.0, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBJewel() );
|
||||
}
|
||||
public Jeweler(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Jeweler( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBJewel());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,81 +3,100 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class KeeperOfChivalry : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class KeeperOfChivalry : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public KeeperOfChivalry() : base( "the Keeper of Chivalry" )
|
||||
{
|
||||
SetSkill( SkillName.Fencing, 75.0, 85.0 );
|
||||
SetSkill( SkillName.Macing, 75.0, 85.0 );
|
||||
SetSkill( SkillName.Swords, 75.0, 85.0 );
|
||||
SetSkill( SkillName.Chivalry, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public KeeperOfChivalry() : base("the Keeper of Chivalry")
|
||||
{
|
||||
SetSkill(SkillName.Fencing, 75.0, 85.0);
|
||||
SetSkill(SkillName.Macing, 75.0, 85.0);
|
||||
SetSkill(SkillName.Swords, 75.0, 85.0);
|
||||
SetSkill(SkillName.Chivalry, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBKeeperOfChivalry() );
|
||||
}
|
||||
public KeeperOfChivalry(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem( new PlateArms() );
|
||||
AddItem( new PlateChest() );
|
||||
AddItem( new PlateGloves() );
|
||||
AddItem( new StuddedGorget() );
|
||||
AddItem( new PlateLegs() );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
switch ( Utility.Random( 4 ) )
|
||||
{
|
||||
case 0: AddItem( new PlateHelm() ); break;
|
||||
case 1: AddItem( new NorseHelm() ); break;
|
||||
case 2: AddItem( new CloseHelm() ); break;
|
||||
case 3: AddItem( new Helmet() ); break;
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBKeeperOfChivalry());
|
||||
}
|
||||
|
||||
switch ( Utility.Random( 3 ) )
|
||||
{
|
||||
case 0: AddItem( new BodySash( 0x482 ) ); break;
|
||||
case 1: AddItem( new Doublet( 0x482 ) ); break;
|
||||
case 2: AddItem( new Tunic( 0x482 ) ); break;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem(new PlateArms());
|
||||
AddItem(new PlateChest());
|
||||
AddItem(new PlateGloves());
|
||||
AddItem(new StuddedGorget());
|
||||
AddItem(new PlateLegs());
|
||||
|
||||
AddItem( new Broadsword() );
|
||||
switch (Utility.Random(4))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new PlateHelm());
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new NorseHelm());
|
||||
break;
|
||||
case 2:
|
||||
AddItem(new CloseHelm());
|
||||
break;
|
||||
case 3:
|
||||
AddItem(new Helmet());
|
||||
break;
|
||||
}
|
||||
|
||||
Item shield = new MetalKiteShield();
|
||||
switch (Utility.Random(3))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new BodySash(0x482));
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new Doublet(0x482));
|
||||
break;
|
||||
case 2:
|
||||
AddItem(new Tunic(0x482));
|
||||
break;
|
||||
}
|
||||
|
||||
shield.Hue = Utility.RandomNondyedHue();
|
||||
AddItem(new Broadsword());
|
||||
|
||||
AddItem( shield );
|
||||
Item shield = new MetalKiteShield();
|
||||
|
||||
switch ( Utility.Random( 2 ) )
|
||||
{
|
||||
case 0: AddItem( new Boots() ); break;
|
||||
case 1: AddItem( new ThighBoots() ); break;
|
||||
}
|
||||
shield.Hue = Utility.RandomNondyedHue();
|
||||
|
||||
PackGold( 100, 200 );
|
||||
}
|
||||
AddItem(shield);
|
||||
|
||||
public KeeperOfChivalry( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
switch (Utility.Random(2))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new Boots());
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new ThighBoots());
|
||||
break;
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
PackGold(100, 200);
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,38 +1,41 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class LeatherWorker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class LeatherWorker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public LeatherWorker() : base( "the leather worker" )
|
||||
{
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBLeatherArmor() );
|
||||
m_SBInfos.Add( new SBStuddedArmor() );
|
||||
m_SBInfos.Add( new SBLeatherWorker() );
|
||||
}
|
||||
public LeatherWorker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public LeatherWorker() : base("the leather worker")
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public LeatherWorker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBLeatherArmor());
|
||||
m_SBInfos.Add(new SBStuddedArmor());
|
||||
m_SBInfos.Add(new SBLeatherWorker());
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,55 +1,57 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Mage : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Mage : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
[Constructible]
|
||||
public Mage() : base("the mage")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 65.0, 88.0);
|
||||
SetSkill(SkillName.Inscribe, 60.0, 83.0);
|
||||
SetSkill(SkillName.Magery, 64.0, 100.0);
|
||||
SetSkill(SkillName.Meditation, 60.0, 83.0);
|
||||
SetSkill(SkillName.MagicResist, 65.0, 88.0);
|
||||
SetSkill(SkillName.Wrestling, 36.0, 68.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Mage() : base( "the mage" )
|
||||
{
|
||||
SetSkill( SkillName.EvalInt, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Inscribe, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Magery, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 60.0, 83.0 );
|
||||
SetSkill( SkillName.MagicResist, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Wrestling, 36.0, 68.0 );
|
||||
}
|
||||
public Mage(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBMage() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
AddItem( new Items.Robe( Utility.RandomBlueHue() ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMage());
|
||||
}
|
||||
|
||||
public Mage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new Robe(Utility.RandomBlueHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,38 +2,39 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Mapmaker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Mapmaker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Mapmaker() : base( "the mapmaker" )
|
||||
{
|
||||
SetSkill( SkillName.Cartography, 90.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Mapmaker() : base("the mapmaker")
|
||||
{
|
||||
SetSkill(SkillName.Cartography, 90.0, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBMapmaker() );
|
||||
}
|
||||
public Mapmaker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Mapmaker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMapmaker());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,38 +2,38 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Miller : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Miller : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Miller() : base( "the miller" )
|
||||
{
|
||||
|
||||
}
|
||||
[Constructible]
|
||||
public Miller() : base("the miller")
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBMiller() );
|
||||
}
|
||||
public Miller(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Miller( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMiller());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,49 +1,51 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Miner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Miner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Miner() : base( "the miner" )
|
||||
{
|
||||
SetSkill( SkillName.Mining, 65.0, 88.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Miner() : base("the miner")
|
||||
{
|
||||
SetSkill(SkillName.Mining, 65.0, 88.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBMiner() );
|
||||
}
|
||||
public Miner(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.FancyShirt( 0x3E4 ) );
|
||||
AddItem( new Items.LongPants( 0x192 ) );
|
||||
AddItem( new Items.Pickaxe() );
|
||||
AddItem( new Items.ThighBoots( 0x283 ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMiner());
|
||||
}
|
||||
|
||||
public Miner( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new FancyShirt(0x3E4));
|
||||
AddItem(new LongPants(0x192));
|
||||
AddItem(new Pickaxe());
|
||||
AddItem(new ThighBoots(0x283));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,48 +3,49 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Monk : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Monk : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Monk() : base( "the Monk" )
|
||||
{
|
||||
SetSkill( SkillName.EvalInt, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 70.0, 90.0 );
|
||||
SetSkill( SkillName.Wrestling, 70.0, 90.0 );
|
||||
SetSkill( SkillName.MagicResist, 70.0, 90.0 );
|
||||
SetSkill( SkillName.Macing, 70.0, 90.0 );
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBMonk() );
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem( new Sandals() );
|
||||
AddItem( new MonkRobe() );
|
||||
}
|
||||
[Constructible]
|
||||
public Monk() : base("the Monk")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 100.0);
|
||||
SetSkill(SkillName.Tactics, 70.0, 90.0);
|
||||
SetSkill(SkillName.Wrestling, 70.0, 90.0);
|
||||
SetSkill(SkillName.MagicResist, 70.0, 90.0);
|
||||
SetSkill(SkillName.Macing, 70.0, 90.0);
|
||||
}
|
||||
|
||||
public Monk( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public Monk(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMonk());
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem(new Sandals());
|
||||
AddItem(new MonkRobe());
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
}
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,42 +2,43 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Provisioner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Provisioner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Provisioner() : base( "the provisioner" )
|
||||
{
|
||||
SetSkill( SkillName.Camping, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Tactics, 45.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Provisioner() : base("the provisioner")
|
||||
{
|
||||
SetSkill(SkillName.Camping, 45.0, 68.0);
|
||||
SetSkill(SkillName.Tactics, 45.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBProvisioner() );
|
||||
public Provisioner(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSEHats() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Provisioner( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBProvisioner());
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSEHats());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,41 +2,42 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Rancher : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Rancher : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Rancher() : base( "the rancher" )
|
||||
{
|
||||
SetSkill( SkillName.AnimalLore, 55.0, 78.0 );
|
||||
SetSkill( SkillName.AnimalTaming, 55.0, 78.0 );
|
||||
SetSkill( SkillName.Herding, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Veterinary, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Rancher() : base("the rancher")
|
||||
{
|
||||
SetSkill(SkillName.AnimalLore, 55.0, 78.0);
|
||||
SetSkill(SkillName.AnimalTaming, 55.0, 78.0);
|
||||
SetSkill(SkillName.Herding, 64.0, 100.0);
|
||||
SetSkill(SkillName.Veterinary, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBRancher() );
|
||||
}
|
||||
public Rancher(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Rancher( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBRancher());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,54 +1,56 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Ranger : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Ranger : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Ranger() : base( "the ranger" )
|
||||
{
|
||||
SetSkill( SkillName.Camping, 55.0, 78.0 );
|
||||
SetSkill( SkillName.DetectHidden, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Hiding, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Archery, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Tracking, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Veterinary, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Ranger() : base("the ranger")
|
||||
{
|
||||
SetSkill(SkillName.Camping, 55.0, 78.0);
|
||||
SetSkill(SkillName.DetectHidden, 65.0, 88.0);
|
||||
SetSkill(SkillName.Hiding, 45.0, 68.0);
|
||||
SetSkill(SkillName.Archery, 65.0, 88.0);
|
||||
SetSkill(SkillName.Tracking, 65.0, 88.0);
|
||||
SetSkill(SkillName.Veterinary, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBRanger() );
|
||||
}
|
||||
public Ranger(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.Shirt( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new Items.LongPants( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new Items.Bow() );
|
||||
AddItem( new Items.ThighBoots( Utility.RandomNeutralHue() ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBRanger());
|
||||
}
|
||||
|
||||
public Ranger( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new Shirt(Utility.RandomNeutralHue()));
|
||||
AddItem(new LongPants(Utility.RandomNeutralHue()));
|
||||
AddItem(new Bow());
|
||||
AddItem(new ThighBoots(Utility.RandomNeutralHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,180 +2,183 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.Multis.Deeds;
|
||||
using Server.Targeting;
|
||||
using Server.Network;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class RealEstateBroker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class RealEstateBroker : BaseVendor
|
||||
{
|
||||
private DateTime m_NextCheckPack;
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public RealEstateBroker() : base( "the real estate broker" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public RealEstateBroker() : base("the real estate broker")
|
||||
{
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech( Mobile from )
|
||||
{
|
||||
if ( from.Alive && from.InRange( this, 3 ) )
|
||||
return true;
|
||||
public RealEstateBroker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
return base.HandlesOnSpeech( from );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
private DateTime m_NextCheckPack;
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
if (from.Alive && from.InRange(this, 3))
|
||||
return true;
|
||||
|
||||
public override void OnMovement( Mobile m, Point3D oldLocation )
|
||||
{
|
||||
if ( DateTime.UtcNow > m_NextCheckPack && InRange( m, 4 ) && !InRange( oldLocation, 4 ) && m.Player )
|
||||
{
|
||||
Container pack = m.Backpack;
|
||||
return base.HandlesOnSpeech(from);
|
||||
}
|
||||
|
||||
if ( pack != null )
|
||||
{
|
||||
m_NextCheckPack = DateTime.UtcNow + TimeSpan.FromSeconds( 2.0 );
|
||||
public override void OnMovement(Mobile m, Point3D oldLocation)
|
||||
{
|
||||
if (DateTime.UtcNow > m_NextCheckPack && InRange(m, 4) && !InRange(oldLocation, 4) && m.Player)
|
||||
{
|
||||
Container pack = m.Backpack;
|
||||
|
||||
Item deed = pack.FindItemByType( typeof( HouseDeed ), false );
|
||||
if (pack != null)
|
||||
{
|
||||
m_NextCheckPack = DateTime.UtcNow + TimeSpan.FromSeconds(2.0);
|
||||
|
||||
if ( deed != null )
|
||||
{
|
||||
// If you have a deed, I can appraise it or buy it from you...
|
||||
PrivateOverheadMessage( MessageType.Regular, 0x3B2, 500605, m.NetState );
|
||||
Item deed = pack.FindItemByType(typeof(HouseDeed), false);
|
||||
|
||||
// Simply hand me a deed to sell it.
|
||||
PrivateOverheadMessage( MessageType.Regular, 0x3B2, 500606, m.NetState );
|
||||
}
|
||||
}
|
||||
}
|
||||
if (deed != null)
|
||||
{
|
||||
// If you have a deed, I can appraise it or buy it from you...
|
||||
PrivateOverheadMessage(MessageType.Regular, 0x3B2, 500605, m.NetState);
|
||||
|
||||
base.OnMovement( m, oldLocation );
|
||||
}
|
||||
// Simply hand me a deed to sell it.
|
||||
PrivateOverheadMessage(MessageType.Regular, 0x3B2, 500606, m.NetState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnSpeech( SpeechEventArgs e )
|
||||
{
|
||||
if ( !e.Handled && e.Mobile.Alive && e.HasKeyword( 0x38 ) ) // *appraise*
|
||||
{
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500608 ); // Which deed would you like appraised?
|
||||
e.Mobile.BeginTarget( 12, false, TargetFlags.None, Appraise_OnTarget );
|
||||
e.Handled = true;
|
||||
}
|
||||
base.OnMovement(m, oldLocation);
|
||||
}
|
||||
|
||||
base.OnSpeech( e );
|
||||
}
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
if (!e.Handled && e.Mobile.Alive && e.HasKeyword(0x38)) // *appraise*
|
||||
{
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 500608); // Which deed would you like appraised?
|
||||
e.Mobile.BeginTarget(12, false, TargetFlags.None, Appraise_OnTarget);
|
||||
e.Handled = true;
|
||||
}
|
||||
|
||||
public override bool OnDragDrop( Mobile from, Item dropped )
|
||||
{
|
||||
if ( dropped is HouseDeed )
|
||||
{
|
||||
HouseDeed deed = (HouseDeed)dropped;
|
||||
int price = ComputePriceFor( deed );
|
||||
base.OnSpeech(e);
|
||||
}
|
||||
|
||||
if ( price > 0 )
|
||||
{
|
||||
if ( Banker.Deposit( from, price ) )
|
||||
{
|
||||
// For the deed I have placed gold in your bankbox :
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1008000, AffixType.Append, price.ToString(), "" );
|
||||
public override bool OnDragDrop(Mobile from, Item dropped)
|
||||
{
|
||||
if (dropped is HouseDeed)
|
||||
{
|
||||
HouseDeed deed = (HouseDeed)dropped;
|
||||
int price = ComputePriceFor(deed);
|
||||
|
||||
deed.Delete();
|
||||
return true;
|
||||
}
|
||||
if (price > 0)
|
||||
{
|
||||
if (Banker.Deposit(from, price))
|
||||
{
|
||||
// For the deed I have placed gold in your bankbox :
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1008000, AffixType.Append, price.ToString(), "");
|
||||
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500390 ); // Your bank box is full.
|
||||
return false;
|
||||
}
|
||||
deed.Delete();
|
||||
return true;
|
||||
}
|
||||
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500607 ); // I'm not interested in that.
|
||||
return false;
|
||||
}
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 500390); // Your bank box is full.
|
||||
return false;
|
||||
}
|
||||
|
||||
return base.OnDragDrop (from, dropped);
|
||||
}
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 500607); // I'm not interested in that.
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Appraise_OnTarget( Mobile from, object obj )
|
||||
{
|
||||
if ( obj is HouseDeed )
|
||||
{
|
||||
HouseDeed deed = (HouseDeed)obj;
|
||||
int price = ComputePriceFor( deed );
|
||||
return base.OnDragDrop(from, dropped);
|
||||
}
|
||||
|
||||
if ( price > 0 )
|
||||
{
|
||||
// I will pay you gold for this deed :
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 1008001, AffixType.Append, price.ToString(), "" );
|
||||
public void Appraise_OnTarget(Mobile from, object obj)
|
||||
{
|
||||
if (obj is HouseDeed)
|
||||
{
|
||||
HouseDeed deed = (HouseDeed)obj;
|
||||
int price = ComputePriceFor(deed);
|
||||
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500610 ); // Simply hand me the deed if you wish to sell it.
|
||||
}
|
||||
else
|
||||
{
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500607 ); // I'm not interested in that.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PublicOverheadMessage( MessageType.Regular, 0x3B2, 500609 ); // I can't appraise things I know nothing about...
|
||||
}
|
||||
}
|
||||
if (price > 0)
|
||||
{
|
||||
// I will pay you gold for this deed :
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1008001, AffixType.Append, price.ToString(), "");
|
||||
|
||||
public int ComputePriceFor( HouseDeed deed )
|
||||
{
|
||||
int price = 0;
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2,
|
||||
500610); // Simply hand me the deed if you wish to sell it.
|
||||
}
|
||||
else
|
||||
{
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 500607); // I'm not interested in that.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 500609); // I can't appraise things I know nothing about...
|
||||
}
|
||||
}
|
||||
|
||||
if ( deed is SmallBrickHouseDeed || deed is StonePlasterHouseDeed || deed is FieldStoneHouseDeed || deed is SmallBrickHouseDeed || deed is WoodHouseDeed || deed is WoodPlasterHouseDeed || deed is ThatchedRoofCottageDeed )
|
||||
price = 43800;
|
||||
else if ( deed is BrickHouseDeed )
|
||||
price = 144500;
|
||||
else if ( deed is TwoStoryWoodPlasterHouseDeed || deed is TwoStoryStonePlasterHouseDeed )
|
||||
price = 192400;
|
||||
else if ( deed is TowerDeed )
|
||||
price = 433200;
|
||||
else if ( deed is KeepDeed )
|
||||
price = 665200;
|
||||
else if ( deed is CastleDeed )
|
||||
price = 1022800;
|
||||
else if ( deed is LargePatioDeed )
|
||||
price = 152800;
|
||||
else if ( deed is LargeMarbleDeed )
|
||||
price = 192800;
|
||||
else if ( deed is SmallTowerDeed )
|
||||
price = 88500;
|
||||
else if ( deed is LogCabinDeed )
|
||||
price = 97800;
|
||||
else if ( deed is SandstonePatioDeed )
|
||||
price = 90900;
|
||||
else if ( deed is VillaDeed )
|
||||
price = 136500;
|
||||
else if ( deed is StoneWorkshopDeed )
|
||||
price = 60600;
|
||||
else if ( deed is MarbleWorkshopDeed )
|
||||
price = 60300;
|
||||
public int ComputePriceFor(HouseDeed deed)
|
||||
{
|
||||
int price = 0;
|
||||
|
||||
return AOS.Scale( price, 80 ); // refunds 80% of the purchase price
|
||||
}
|
||||
if (deed is SmallBrickHouseDeed || deed is StonePlasterHouseDeed || deed is FieldStoneHouseDeed ||
|
||||
deed is SmallBrickHouseDeed || deed is WoodHouseDeed || deed is WoodPlasterHouseDeed ||
|
||||
deed is ThatchedRoofCottageDeed)
|
||||
price = 43800;
|
||||
else if (deed is BrickHouseDeed)
|
||||
price = 144500;
|
||||
else if (deed is TwoStoryWoodPlasterHouseDeed || deed is TwoStoryStonePlasterHouseDeed)
|
||||
price = 192400;
|
||||
else if (deed is TowerDeed)
|
||||
price = 433200;
|
||||
else if (deed is KeepDeed)
|
||||
price = 665200;
|
||||
else if (deed is CastleDeed)
|
||||
price = 1022800;
|
||||
else if (deed is LargePatioDeed)
|
||||
price = 152800;
|
||||
else if (deed is LargeMarbleDeed)
|
||||
price = 192800;
|
||||
else if (deed is SmallTowerDeed)
|
||||
price = 88500;
|
||||
else if (deed is LogCabinDeed)
|
||||
price = 97800;
|
||||
else if (deed is SandstonePatioDeed)
|
||||
price = 90900;
|
||||
else if (deed is VillaDeed)
|
||||
price = 136500;
|
||||
else if (deed is StoneWorkshopDeed)
|
||||
price = 60600;
|
||||
else if (deed is MarbleWorkshopDeed)
|
||||
price = 60300;
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBRealEstateBroker() );
|
||||
}
|
||||
return AOS.Scale(price, 80); // refunds 80% of the purchase price
|
||||
}
|
||||
|
||||
public RealEstateBroker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBRealEstateBroker());
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,76 +1,79 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Scribe : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Scribe : BaseVendor
|
||||
{
|
||||
public static readonly TimeSpan ShushDelay = TimeSpan.FromMinutes(1);
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
private DateTime m_NextShush;
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
private DateTime m_NextShush;
|
||||
public static readonly TimeSpan ShushDelay = TimeSpan.FromMinutes( 1 );
|
||||
[Constructible]
|
||||
public Scribe() : base("the scribe")
|
||||
{
|
||||
SetSkill(SkillName.EvalInt, 60.0, 83.0);
|
||||
SetSkill(SkillName.Inscribe, 90.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Scribe() : base( "the scribe" )
|
||||
{
|
||||
SetSkill( SkillName.EvalInt, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Inscribe, 90.0, 100.0 );
|
||||
}
|
||||
public Scribe(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBScribe() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
AddItem( new Items.Robe( Utility.RandomNeutralHue() ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBScribe());
|
||||
}
|
||||
|
||||
public override bool HandlesOnSpeech( Mobile from )
|
||||
{
|
||||
return from.Player;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void OnSpeech( SpeechEventArgs e )
|
||||
{
|
||||
base.OnSpeech( e );
|
||||
AddItem(new Robe(Utility.RandomNeutralHue()));
|
||||
}
|
||||
|
||||
if ( !e.Handled && m_NextShush <= DateTime.UtcNow && InLOS( e.Mobile ) )
|
||||
{
|
||||
Direction = GetDirectionTo( e.Mobile );
|
||||
public override bool HandlesOnSpeech(Mobile from)
|
||||
{
|
||||
return from.Player;
|
||||
}
|
||||
|
||||
PlaySound( Female ? 0x32F : 0x441 );
|
||||
PublicOverheadMessage( Network.MessageType.Regular, 0x3B2, 1073990 ); // Shhhh!
|
||||
public override void OnSpeech(SpeechEventArgs e)
|
||||
{
|
||||
base.OnSpeech(e);
|
||||
|
||||
m_NextShush = DateTime.UtcNow + ShushDelay;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
if (!e.Handled && m_NextShush <= DateTime.UtcNow && InLOS(e.Mobile))
|
||||
{
|
||||
Direction = GetDirectionTo(e.Mobile);
|
||||
|
||||
public Scribe( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
PlaySound(Female ? 0x32F : 0x441);
|
||||
PublicOverheadMessage(MessageType.Regular, 0x3B2, 1073990); // Shhhh!
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
m_NextShush = DateTime.UtcNow + ShushDelay;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +1,49 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Shipwright : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Shipwright : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Shipwright() : base( "the shipwright" )
|
||||
{
|
||||
SetSkill( SkillName.Carpentry, 60.0, 83.0 );
|
||||
SetSkill( SkillName.Macing, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Shipwright() : base("the shipwright")
|
||||
{
|
||||
SetSkill(SkillName.Carpentry, 60.0, 83.0);
|
||||
SetSkill(SkillName.Macing, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBShipwright() );
|
||||
}
|
||||
public Shipwright(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.SmithHammer() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBShipwright());
|
||||
}
|
||||
|
||||
public Shipwright( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new SmithHammer());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,47 +2,48 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias( "Server.Mobiles.GargoyleStonecrafter" )]
|
||||
public class StoneCrafter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
[TypeAlias("Server.Mobiles.GargoyleStonecrafter")]
|
||||
public class StoneCrafter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
[Constructible]
|
||||
public StoneCrafter() : base("the stone crafter")
|
||||
{
|
||||
SetSkill(SkillName.Carpentry, 85.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public StoneCrafter() : base( "the stone crafter" )
|
||||
{
|
||||
SetSkill( SkillName.Carpentry, 85.0, 100.0 );
|
||||
}
|
||||
public StoneCrafter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBStoneCrafter() );
|
||||
m_SBInfos.Add( new SBStavesWeapon() );
|
||||
m_SBInfos.Add( new SBCarpenter() );
|
||||
m_SBInfos.Add( new SBWoodenShields() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public StoneCrafter( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBStoneCrafter());
|
||||
m_SBInfos.Add(new SBStavesWeapon());
|
||||
m_SBInfos.Add(new SBCarpenter());
|
||||
m_SBInfos.Add(new SBWoodenShields());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
if ( Title == "the stonecrafter" )
|
||||
Title = "the stone crafter";
|
||||
}
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (Title == "the stonecrafter")
|
||||
Title = "the stone crafter";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,92 +4,95 @@ using Server.Engines.BulkOrders;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Tailor : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Tailor : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
[Constructible]
|
||||
public Tailor() : base("the tailor")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 64.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Tailor() : base( "the tailor" )
|
||||
{
|
||||
SetSkill( SkillName.Tailoring, 64.0, 100.0 );
|
||||
}
|
||||
public Tailor(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTailor() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
|
||||
#region Bulk Orders
|
||||
public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes;
|
||||
|
||||
if ( pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) )
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Tailoring].Base;
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTailor());
|
||||
}
|
||||
|
||||
if ( theirSkill >= 70.1 )
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 6.0 );
|
||||
else if ( theirSkill >= 50.1 )
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 2.0 );
|
||||
else
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 1.0 );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
|
||||
return new LargeTailorBOD();
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
return SmallTailorBOD.CreateRandomFor( from );
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
return null;
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool IsValidBulkOrder( Item item )
|
||||
{
|
||||
return ( item is SmallTailorBOD || item is LargeTailorBOD );
|
||||
}
|
||||
#region Bulk Orders
|
||||
|
||||
public override bool SupportsBulkOrders( Mobile from )
|
||||
{
|
||||
return ( from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0 );
|
||||
}
|
||||
public override Item CreateBulkOrder(Mobile from, bool fromContextMenu)
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
public override TimeSpan GetNextBulkOrder( Mobile from )
|
||||
{
|
||||
if ( from is PlayerMobile )
|
||||
return ((PlayerMobile)from).NextTailorBulkOrder;
|
||||
if (pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()))
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Tailoring].Base;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
if (theirSkill >= 70.1)
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(6.0);
|
||||
else if (theirSkill >= 50.1)
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(2.0);
|
||||
else
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(1.0);
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive( Mobile from )
|
||||
{
|
||||
if ( Core.SE && from is PlayerMobile )
|
||||
((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
#endregion
|
||||
if (theirSkill >= 70.1 && (theirSkill - 40.0) / 300.0 > Utility.RandomDouble())
|
||||
return new LargeTailorBOD();
|
||||
|
||||
public Tailor( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
return SmallTailorBOD.CreateRandomFor(from);
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
return null;
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override bool IsValidBulkOrder(Item item)
|
||||
{
|
||||
return item is SmallTailorBOD || item is LargeTailorBOD;
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override bool SupportsBulkOrders(Mobile from)
|
||||
{
|
||||
return from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0;
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override TimeSpan GetNextBulkOrder(Mobile from)
|
||||
{
|
||||
if (from is PlayerMobile)
|
||||
return ((PlayerMobile)from).NextTailorBulkOrder;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive(Mobile from)
|
||||
{
|
||||
if (Core.SE && from is PlayerMobile)
|
||||
((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -2,38 +2,39 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Tanner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Tanner : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Tanner() : base( "the tanner" )
|
||||
{
|
||||
SetSkill( SkillName.Tailoring, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Tanner() : base("the tanner")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTanner() );
|
||||
}
|
||||
public Tanner(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Tanner( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTanner());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,45 +1,47 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TavernKeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TavernKeeper : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public TavernKeeper() : base( "the tavern keeper" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public TavernKeeper() : base("the tavern keeper")
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTavernKeeper() );
|
||||
}
|
||||
public TavernKeeper(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTavernKeeper());
|
||||
}
|
||||
|
||||
public TavernKeeper( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,54 +1,56 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Thief : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Thief : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Thief() : base( "the thief" )
|
||||
{
|
||||
SetSkill( SkillName.Camping, 55.0, 78.0 );
|
||||
SetSkill( SkillName.DetectHidden, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Hiding, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Archery, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Tracking, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Veterinary, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Thief() : base("the thief")
|
||||
{
|
||||
SetSkill(SkillName.Camping, 55.0, 78.0);
|
||||
SetSkill(SkillName.DetectHidden, 65.0, 88.0);
|
||||
SetSkill(SkillName.Hiding, 45.0, 68.0);
|
||||
SetSkill(SkillName.Archery, 65.0, 88.0);
|
||||
SetSkill(SkillName.Tracking, 65.0, 88.0);
|
||||
SetSkill(SkillName.Veterinary, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBThief() );
|
||||
}
|
||||
public Thief(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.Shirt( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new Items.LongPants( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new Items.Dagger() );
|
||||
AddItem( new Items.ThighBoots( Utility.RandomNeutralHue() ) );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBThief());
|
||||
}
|
||||
|
||||
public Thief( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new Shirt(Utility.RandomNeutralHue()));
|
||||
AddItem(new LongPants(Utility.RandomNeutralHue()));
|
||||
AddItem(new Dagger());
|
||||
AddItem(new ThighBoots(Utility.RandomNeutralHue()));
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,42 +2,43 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Tinker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Tinker : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
[Constructible]
|
||||
public Tinker() : base("the tinker")
|
||||
{
|
||||
SetSkill(SkillName.Lockpicking, 60.0, 83.0);
|
||||
SetSkill(SkillName.RemoveTrap, 75.0, 98.0);
|
||||
SetSkill(SkillName.Tinkering, 64.0, 100.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Tinker() : base( "the tinker" )
|
||||
{
|
||||
SetSkill( SkillName.Lockpicking, 60.0, 83.0 );
|
||||
SetSkill( SkillName.RemoveTrap, 75.0, 98.0 );
|
||||
SetSkill( SkillName.Tinkering, 64.0, 100.0 );
|
||||
}
|
||||
public Tinker(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTinker() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public Tinker( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override NpcGuild NpcGuild => NpcGuild.TinkersGuild;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTinker());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,61 +3,66 @@ using Server.Items;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Vagabond : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Vagabond : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Vagabond() : base( "the vagabond" )
|
||||
{
|
||||
SetSkill( SkillName.ItemID, 60.0, 83.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Vagabond() : base("the vagabond")
|
||||
{
|
||||
SetSkill(SkillName.ItemID, 60.0, 83.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBTinker() );
|
||||
m_SBInfos.Add( new SBVagabond() );
|
||||
}
|
||||
public Vagabond(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem( new FancyShirt( Utility.RandomBrightHue() ) );
|
||||
AddItem( new Shoes( GetShoeHue() ) );
|
||||
AddItem( new LongPants( GetRandomHue() ) );
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
AddItem( new Cloak( Utility.RandomBrightHue() ) );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBTinker());
|
||||
m_SBInfos.Add(new SBVagabond());
|
||||
}
|
||||
|
||||
switch ( Utility.Random( 2 ) )
|
||||
{
|
||||
case 0: AddItem( new SkullCap( Utility.RandomNeutralHue() ) ); break;
|
||||
case 1: AddItem( new Bandana( Utility.RandomNeutralHue() ) ); break;
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
AddItem(new FancyShirt(Utility.RandomBrightHue()));
|
||||
AddItem(new Shoes(GetShoeHue()));
|
||||
AddItem(new LongPants(GetRandomHue()));
|
||||
|
||||
if (Utility.RandomBool())
|
||||
AddItem(new Cloak(Utility.RandomBrightHue()));
|
||||
|
||||
switch (Utility.Random(2))
|
||||
{
|
||||
case 0:
|
||||
AddItem(new SkullCap(Utility.RandomNeutralHue()));
|
||||
break;
|
||||
case 1:
|
||||
AddItem(new Bandana(Utility.RandomNeutralHue()));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Utility.AssignRandomHair( this );
|
||||
Utility.AssignRandomFacialHair( this, HairHue );
|
||||
Utility.AssignRandomHair(this);
|
||||
Utility.AssignRandomFacialHair(this, HairHue);
|
||||
|
||||
PackGold( 100, 200 );
|
||||
}
|
||||
PackGold(100, 200);
|
||||
}
|
||||
|
||||
public Vagabond( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,37 +2,38 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class VarietyDealer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class VarietyDealer : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public VarietyDealer() : base( "the variety dealer" )
|
||||
{
|
||||
}
|
||||
[Constructible]
|
||||
public VarietyDealer() : base("the variety dealer")
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBVarietyDealer() );
|
||||
}
|
||||
public VarietyDealer(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public VarietyDealer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBVarietyDealer());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,39 +2,40 @@ using System.Collections.Generic;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Veterinarian : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Veterinarian : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Veterinarian() : base( "the vet" )
|
||||
{
|
||||
SetSkill( SkillName.AnimalLore, 85.0, 100.0 );
|
||||
SetSkill( SkillName.Veterinary, 90.0, 100.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Veterinarian() : base("the vet")
|
||||
{
|
||||
SetSkill(SkillName.AnimalLore, 85.0, 100.0);
|
||||
SetSkill(SkillName.Veterinary, 90.0, 100.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBVeterinarian() );
|
||||
}
|
||||
public Veterinarian(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public Veterinarian( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBVeterinarian());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +1,48 @@
|
|||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Waiter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Waiter : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Waiter() : base( "the waiter" )
|
||||
{
|
||||
SetSkill( SkillName.Discordance, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Waiter() : base("the waiter")
|
||||
{
|
||||
SetSkill(SkillName.Discordance, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBWaiter() );
|
||||
}
|
||||
public Waiter(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBWaiter());
|
||||
}
|
||||
|
||||
public Waiter( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
AddItem(new HalfApron());
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,113 +1,117 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Server.Engines.BulkOrders;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Weaponsmith : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Weaponsmith : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
[Constructible]
|
||||
public Weaponsmith() : base( "the weaponsmith" )
|
||||
{
|
||||
SetSkill( SkillName.ArmsLore, 64.0, 100.0 );
|
||||
SetSkill( SkillName.Blacksmith, 65.0, 88.0 );
|
||||
SetSkill( SkillName.Fencing, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Macing, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Swords, 45.0, 68.0 );
|
||||
SetSkill( SkillName.Tactics, 36.0, 68.0 );
|
||||
}
|
||||
[Constructible]
|
||||
public Weaponsmith() : base("the weaponsmith")
|
||||
{
|
||||
SetSkill(SkillName.ArmsLore, 64.0, 100.0);
|
||||
SetSkill(SkillName.Blacksmith, 65.0, 88.0);
|
||||
SetSkill(SkillName.Fencing, 45.0, 68.0);
|
||||
SetSkill(SkillName.Macing, 45.0, 68.0);
|
||||
SetSkill(SkillName.Swords, 45.0, 68.0);
|
||||
SetSkill(SkillName.Tactics, 36.0, 68.0);
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBWeaponSmith() );
|
||||
public Weaponsmith(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
if ( IsTokunoVendor )
|
||||
m_SBInfos.Add( new SBSEWeapons() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Boots : VendorShoeType.ThighBoots;
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Boots : VendorShoeType.ThighBoots;
|
||||
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBWeaponSmith());
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
if (IsTokunoVendor)
|
||||
m_SBInfos.Add(new SBSEWeapons());
|
||||
}
|
||||
|
||||
AddItem( new Items.HalfApron() );
|
||||
}
|
||||
public override int GetShoeHue()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#region Bulk Orders
|
||||
public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
if ( pm != null && pm.NextSmithBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) )
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Blacksmith].Base;
|
||||
AddItem(new HalfApron());
|
||||
}
|
||||
|
||||
if ( theirSkill >= 70.1 )
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 6.0 );
|
||||
else if ( theirSkill >= 50.1 )
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 2.0 );
|
||||
else
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours( 1.0 );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
|
||||
return new LargeSmithBOD();
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
return SmallSmithBOD.CreateRandomFor( from );
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
return null;
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool IsValidBulkOrder( Item item )
|
||||
{
|
||||
return ( item is SmallSmithBOD || item is LargeSmithBOD );
|
||||
}
|
||||
#region Bulk Orders
|
||||
|
||||
public override bool SupportsBulkOrders( Mobile from )
|
||||
{
|
||||
return ( from is PlayerMobile && Core.AOS && from.Skills[SkillName.Blacksmith].Base > 0 );
|
||||
}
|
||||
public override Item CreateBulkOrder(Mobile from, bool fromContextMenu)
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
public override TimeSpan GetNextBulkOrder( Mobile from )
|
||||
{
|
||||
if ( from is PlayerMobile )
|
||||
return ((PlayerMobile)from).NextSmithBulkOrder;
|
||||
if (pm != null && pm.NextSmithBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()))
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Blacksmith].Base;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
if (theirSkill >= 70.1)
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(6.0);
|
||||
else if (theirSkill >= 50.1)
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(2.0);
|
||||
else
|
||||
pm.NextSmithBulkOrder = TimeSpan.FromHours(1.0);
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive( Mobile from )
|
||||
{
|
||||
if ( Core.SE && from is PlayerMobile )
|
||||
((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
#endregion
|
||||
if (theirSkill >= 70.1 && (theirSkill - 40.0) / 300.0 > Utility.RandomDouble())
|
||||
return new LargeSmithBOD();
|
||||
|
||||
public Weaponsmith( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
return SmallSmithBOD.CreateRandomFor(from);
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
return null;
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override bool IsValidBulkOrder(Item item)
|
||||
{
|
||||
return item is SmallSmithBOD || item is LargeSmithBOD;
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override bool SupportsBulkOrders(Mobile from)
|
||||
{
|
||||
return from is PlayerMobile && Core.AOS && from.Skills[SkillName.Blacksmith].Base > 0;
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override TimeSpan GetNextBulkOrder(Mobile from)
|
||||
{
|
||||
if (from is PlayerMobile)
|
||||
return ((PlayerMobile)from).NextSmithBulkOrder;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive(Mobile from)
|
||||
{
|
||||
if (Core.SE && from is PlayerMobile)
|
||||
((PlayerMobile)from).NextSmithBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -4,92 +4,95 @@ using Server.Engines.BulkOrders;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Weaver : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
public class Weaver : BaseVendor
|
||||
{
|
||||
private List<SBInfo> m_SBInfos = new List<SBInfo>();
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
[Constructible]
|
||||
public Weaver() : base("the weaver")
|
||||
{
|
||||
SetSkill(SkillName.Tailoring, 65.0, 88.0);
|
||||
}
|
||||
|
||||
[Constructible]
|
||||
public Weaver() : base( "the weaver" )
|
||||
{
|
||||
SetSkill( SkillName.Tailoring, 65.0, 88.0 );
|
||||
}
|
||||
public Weaver(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add( new SBWeaver() );
|
||||
}
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Sandals;
|
||||
public override NpcGuild NpcGuild => NpcGuild.TailorsGuild;
|
||||
|
||||
#region Bulk Orders
|
||||
public override Item CreateBulkOrder( Mobile from, bool fromContextMenu )
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
public override VendorShoeType ShoeType => VendorShoeType.Sandals;
|
||||
|
||||
if ( pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) )
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Tailoring].Base;
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBWeaver());
|
||||
}
|
||||
|
||||
if ( theirSkill >= 70.1 )
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 6.0 );
|
||||
else if ( theirSkill >= 50.1 )
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 2.0 );
|
||||
else
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours( 1.0 );
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() )
|
||||
return new LargeTailorBOD();
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
return SmallTailorBOD.CreateRandomFor( from );
|
||||
}
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
return null;
|
||||
}
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool IsValidBulkOrder( Item item )
|
||||
{
|
||||
return ( item is SmallTailorBOD || item is LargeTailorBOD );
|
||||
}
|
||||
#region Bulk Orders
|
||||
|
||||
public override bool SupportsBulkOrders( Mobile from )
|
||||
{
|
||||
return ( from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0 );
|
||||
}
|
||||
public override Item CreateBulkOrder(Mobile from, bool fromContextMenu)
|
||||
{
|
||||
PlayerMobile pm = from as PlayerMobile;
|
||||
|
||||
public override TimeSpan GetNextBulkOrder( Mobile from )
|
||||
{
|
||||
if ( from is PlayerMobile )
|
||||
return ((PlayerMobile)from).NextTailorBulkOrder;
|
||||
if (pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()))
|
||||
{
|
||||
double theirSkill = pm.Skills[SkillName.Tailoring].Base;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
if (theirSkill >= 70.1)
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(6.0);
|
||||
else if (theirSkill >= 50.1)
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(2.0);
|
||||
else
|
||||
pm.NextTailorBulkOrder = TimeSpan.FromHours(1.0);
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive( Mobile from )
|
||||
{
|
||||
if ( Core.SE && from is PlayerMobile )
|
||||
((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
#endregion
|
||||
if (theirSkill >= 70.1 && (theirSkill - 40.0) / 300.0 > Utility.RandomDouble())
|
||||
return new LargeTailorBOD();
|
||||
|
||||
public Weaver( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
return SmallTailorBOD.CreateRandomFor(from);
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
return null;
|
||||
}
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
public override bool IsValidBulkOrder(Item item)
|
||||
{
|
||||
return item is SmallTailorBOD || item is LargeTailorBOD;
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
public override bool SupportsBulkOrders(Mobile from)
|
||||
{
|
||||
return from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0;
|
||||
}
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
public override TimeSpan GetNextBulkOrder(Mobile from)
|
||||
{
|
||||
if (from is PlayerMobile)
|
||||
return ((PlayerMobile)from).NextTailorBulkOrder;
|
||||
|
||||
return TimeSpan.Zero;
|
||||
}
|
||||
|
||||
public override void OnSuccessfulBulkOrderReceive(Mobile from)
|
||||
{
|
||||
if (Core.SE && from is PlayerMobile)
|
||||
((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue