Heritage items, talismans
This commit is contained in:
parent
e7db1fd9f7
commit
129cac945b
109 changed files with 11659 additions and 188 deletions
|
|
@ -303,7 +303,14 @@ namespace Server
|
|||
|
||||
if( attrs != null )
|
||||
value += attrs[attribute];
|
||||
}
|
||||
}
|
||||
else if ( obj is BaseTalisman )
|
||||
{
|
||||
AosAttributes attrs = ((BaseTalisman)obj).Attributes;
|
||||
|
||||
if (attrs != null)
|
||||
value += attrs[attribute];
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
|
|
|
|||
|
|
@ -630,6 +630,44 @@ namespace Server
|
|||
{
|
||||
return Construct( m_LibraryBookTypes ) as BaseBook;
|
||||
}
|
||||
|
||||
public static BaseTalisman RandomTalisman()
|
||||
{
|
||||
BaseTalisman talisman = new BaseTalisman( BaseTalisman.GetRandomItemID() );
|
||||
|
||||
talisman.Summoner = BaseTalisman.GetRandomSummoner();
|
||||
|
||||
if ( talisman.Summoner.IsEmpty )
|
||||
{
|
||||
talisman.Removal = BaseTalisman.GetRandomRemoval();
|
||||
|
||||
if ( talisman.Removal != TalismanRemoval.None )
|
||||
{
|
||||
talisman.MaxCharges = BaseTalisman.GetRandomCharges();
|
||||
talisman.MaxChargeTime = 1200;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
talisman.MaxCharges = Utility.RandomMinMax( 10, 50 );
|
||||
|
||||
if ( talisman.Summoner.IsItem )
|
||||
talisman.MaxChargeTime = 60;
|
||||
else
|
||||
talisman.MaxChargeTime = 1800;
|
||||
}
|
||||
|
||||
talisman.Blessed = BaseTalisman.GetRandomBlessed();
|
||||
talisman.Slayer = BaseTalisman.GetRandomSlayer();
|
||||
talisman.Protection = BaseTalisman.GetRandomProtection();
|
||||
talisman.Killer = BaseTalisman.GetRandomKiller();
|
||||
talisman.Skill = BaseTalisman.GetRandomSkill();
|
||||
talisman.ExceptionalBonus = BaseTalisman.GetRandomExceptional();
|
||||
talisman.SuccessBonus = BaseTalisman.GetRandomSuccessful();
|
||||
talisman.Charges = talisman.MaxCharges;
|
||||
|
||||
return talisman;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Construction methods
|
||||
|
|
|
|||
|
|
@ -24,6 +24,18 @@ namespace Server
|
|||
m_String = text;
|
||||
}
|
||||
|
||||
public TextDefinition( GenericReader reader )
|
||||
{
|
||||
int type = reader.ReadEncodedInt();
|
||||
|
||||
switch ( type )
|
||||
{
|
||||
case 1: m_Number = reader.ReadEncodedInt(); m_String = null; break;
|
||||
case 2: m_Number = 0; m_String = reader.ReadString(); break;
|
||||
default: m_Number = 0; m_String = null; break;
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if ( m_Number > 0 )
|
||||
|
|
@ -34,6 +46,22 @@ namespace Server
|
|||
return "(empty)";
|
||||
}
|
||||
|
||||
public virtual void Serialize( GenericWriter writer )
|
||||
{
|
||||
if ( m_Number > 0 )
|
||||
{
|
||||
writer.WriteEncodedInt( 1 );
|
||||
writer.WriteEncodedInt( m_Number );
|
||||
}
|
||||
else if ( m_String != null )
|
||||
{
|
||||
writer.WriteEncodedInt( 2 );
|
||||
writer.Write( m_String );
|
||||
}
|
||||
else
|
||||
writer.WriteEncodedInt( 0 );
|
||||
}
|
||||
|
||||
public static void AddTo( ObjectPropertyList list, TextDefinition def )
|
||||
{
|
||||
if ( def != null && def.m_Number > 0 )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue