#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-04 10:35:30 -04:00
commit 5df497787a
7510 changed files with 416048 additions and 0 deletions

View file

@ -0,0 +1,100 @@
using System;
namespace Server.Engines.Harvest
{
public class HarvestBank
{
private int m_Current;
private int m_Maximum;
private DateTime m_NextRespawn;
private HarvestVein m_Vein, m_DefaultVein;
HarvestDefinition m_Definition;
public HarvestDefinition Definition
{
get { return m_Definition; }
}
public int Current
{
get
{
CheckRespawn();
return m_Current;
}
}
public HarvestVein Vein
{
get
{
CheckRespawn();
return m_Vein;
}
set
{
m_Vein = value;
}
}
public HarvestVein DefaultVein
{
get
{
CheckRespawn();
return m_DefaultVein;
}
}
public void CheckRespawn()
{
if ( m_Current == m_Maximum || m_NextRespawn > DateTime.Now )
return;
m_Current = m_Maximum;
if ( m_Definition.RandomizeVeins )
{
m_DefaultVein = m_Definition.GetVeinFrom( Utility.RandomDouble() );
}
m_Vein = m_DefaultVein;
}
public void Consume( int amount, Mobile from )
{
CheckRespawn();
if ( m_Current == m_Maximum )
{
double min = m_Definition.MinRespawn.TotalMinutes;
double max = m_Definition.MaxRespawn.TotalMinutes;
double rnd = Utility.RandomDouble();
m_Current = m_Maximum - amount;
double minutes = min + (rnd * (max - min));
m_NextRespawn = DateTime.Now + TimeSpan.FromMinutes( minutes );
}
else
{
m_Current -= amount;
}
if ( m_Current < 0 )
m_Current = 0;
}
public HarvestBank( HarvestDefinition def, HarvestVein defaultVein )
{
m_Maximum = Utility.RandomMinMax( def.MinTotal, def.MaxTotal );
m_Current = m_Maximum;
m_DefaultVein = defaultVein;
m_Vein = m_DefaultVein;
m_Definition = def;
}
}
}