#W# Getting things ready for the Virtue system. Added Virtue Tome.
This commit is contained in:
parent
a274b44658
commit
1e2b82b64b
2 changed files with 64 additions and 33 deletions
|
|
@ -3295,6 +3295,15 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public virtual void OnKilledBy( Mobile mob )
|
public virtual void OnKilledBy( Mobile mob )
|
||||||
{
|
{
|
||||||
|
if ( mob is PlayerMobile && this.Karma < 0 )
|
||||||
|
{
|
||||||
|
PlayerMobile pm = (PlayerMobile)mob;
|
||||||
|
int pointsToAward = Math.Abs( this.Karma ) / 1000;
|
||||||
|
if ( pointsToAward < 1 )
|
||||||
|
pointsToAward = 1;
|
||||||
|
pm.VirtuePoints += pointsToAward;
|
||||||
|
pm.SendMessage( 63, "You have gained {0} Virtue Points for vanquishing evil!", pointsToAward );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnDeath( Container c )
|
public override void OnDeath( Container c )
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
private int m_QuestLevel;
|
private int m_QuestLevel;
|
||||||
private string m_MapMarkers;
|
private string m_MapMarkers;
|
||||||
|
private int m_VirtuePoints;
|
||||||
|
|
||||||
#region Getters & Setters
|
#region Getters & Setters
|
||||||
|
|
||||||
|
|
@ -278,6 +279,13 @@ namespace Server.Mobiles
|
||||||
set{ SetFlag( PlayerFlag.AcceptGuildInvites, value ); }
|
set{ SetFlag( PlayerFlag.AcceptGuildInvites, value ); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CommandProperty( AccessLevel.GameMaster )]
|
||||||
|
public int VirtuePoints
|
||||||
|
{
|
||||||
|
get { return m_VirtuePoints; }
|
||||||
|
set { m_VirtuePoints = value; }
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Auto Arrow Recovery
|
#region Auto Arrow Recovery
|
||||||
|
|
@ -1824,40 +1832,53 @@ namespace Server.Mobiles
|
||||||
base.Deserialize( reader );
|
base.Deserialize( reader );
|
||||||
int version = reader.ReadInt();
|
int version = reader.ReadInt();
|
||||||
|
|
||||||
m_PeacedUntil = reader.ReadDateTime();
|
switch ( version )
|
||||||
m_AnkhNextUse = reader.ReadDateTime();
|
|
||||||
m_AllianceMessageHue = reader.ReadEncodedInt();
|
|
||||||
m_GuildMessageHue = reader.ReadEncodedInt();
|
|
||||||
m_QuestLevel = reader.ReadInt();
|
|
||||||
m_MapMarkers = reader.ReadString();
|
|
||||||
|
|
||||||
int rank = reader.ReadEncodedInt();
|
|
||||||
int maxRank = Guilds.RankDefinition.Ranks.Length -1;
|
|
||||||
if( rank > maxRank )
|
|
||||||
rank = maxRank;
|
|
||||||
|
|
||||||
m_GuildRank = Guilds.RankDefinition.Ranks[rank];
|
|
||||||
m_LastOnline = reader.ReadDateTime();
|
|
||||||
m_Profession = reader.ReadEncodedInt();
|
|
||||||
|
|
||||||
if ( reader.ReadBool() )
|
|
||||||
{
|
{
|
||||||
m_HairModID = reader.ReadInt();
|
case 1:
|
||||||
m_HairModHue = reader.ReadInt();
|
{
|
||||||
m_BeardModID = reader.ReadInt();
|
m_VirtuePoints = reader.ReadInt();
|
||||||
m_BeardModHue = reader.ReadInt();
|
goto case 0;
|
||||||
}
|
}
|
||||||
|
case 0:
|
||||||
|
{
|
||||||
|
m_PeacedUntil = reader.ReadDateTime();
|
||||||
|
m_AnkhNextUse = reader.ReadDateTime();
|
||||||
|
m_AllianceMessageHue = reader.ReadEncodedInt();
|
||||||
|
m_GuildMessageHue = reader.ReadEncodedInt();
|
||||||
|
m_QuestLevel = reader.ReadInt();
|
||||||
|
m_MapMarkers = reader.ReadString();
|
||||||
|
|
||||||
m_NpcGuild = (NpcGuild)reader.ReadInt();
|
int rank = reader.ReadEncodedInt();
|
||||||
m_NpcGuildJoinTime = reader.ReadDateTime();
|
int maxRank = Guilds.RankDefinition.Ranks.Length -1;
|
||||||
m_NpcGuildGameTime = reader.ReadTimeSpan();
|
if( rank > maxRank )
|
||||||
m_Camp = reader.ReadDateTime();
|
rank = maxRank;
|
||||||
m_Bedroll = reader.ReadDateTime();
|
|
||||||
m_PermaFlags = reader.ReadStrongMobileList();
|
m_GuildRank = Guilds.RankDefinition.Ranks[rank];
|
||||||
m_Flags = (PlayerFlag)reader.ReadInt();
|
m_LastOnline = reader.ReadDateTime();
|
||||||
m_LongTermElapse = reader.ReadTimeSpan();
|
m_Profession = reader.ReadEncodedInt();
|
||||||
m_ShortTermElapse = reader.ReadTimeSpan();
|
|
||||||
m_GameTime = reader.ReadTimeSpan();
|
if ( reader.ReadBool() )
|
||||||
|
{
|
||||||
|
m_HairModID = reader.ReadInt();
|
||||||
|
m_HairModHue = reader.ReadInt();
|
||||||
|
m_BeardModID = reader.ReadInt();
|
||||||
|
m_BeardModHue = reader.ReadInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_NpcGuild = (NpcGuild)reader.ReadInt();
|
||||||
|
m_NpcGuildJoinTime = reader.ReadDateTime();
|
||||||
|
m_NpcGuildGameTime = reader.ReadTimeSpan();
|
||||||
|
m_Camp = reader.ReadDateTime();
|
||||||
|
m_Bedroll = reader.ReadDateTime();
|
||||||
|
m_PermaFlags = reader.ReadStrongMobileList();
|
||||||
|
m_Flags = (PlayerFlag)reader.ReadInt();
|
||||||
|
m_LongTermElapse = reader.ReadTimeSpan();
|
||||||
|
m_ShortTermElapse = reader.ReadTimeSpan();
|
||||||
|
m_GameTime = reader.ReadTimeSpan();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StatCap = 200;
|
StatCap = 200;
|
||||||
Skills.Cap = 7000;
|
Skills.Cap = 7000;
|
||||||
|
|
@ -1911,7 +1932,8 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
base.Serialize( writer );
|
base.Serialize( writer );
|
||||||
|
|
||||||
writer.Write( (int) 0 ); // version
|
writer.Write( (int) 1 ); // version
|
||||||
|
writer.Write( (int) m_VirtuePoints );
|
||||||
|
|
||||||
writer.Write( (DateTime) m_PeacedUntil );
|
writer.Write( (DateTime) m_PeacedUntil );
|
||||||
writer.Write( (DateTime) m_AnkhNextUse );
|
writer.Write( (DateTime) m_AnkhNextUse );
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue