public virtual void AddLoot( LootPack pack )
{
if ( Summoned )
return;
Container backpack = Backpack;
if ( backpack == null )
{
backpack = new Backpack();
backpack.Movable = false;
AddItem( backpack );
}
pack.Generate( this, backpack, m_Spawning, m_KillersLuck );
}
BaseCreature::AddLoot ( |
public static void Convert(BaseCreature bc) { if (bc.IsParagon) { return; } bc.Hue = Hue; if (bc.HitsMaxSeed >= 0) { bc.HitsMaxSeed = (int)(bc.HitsMaxSeed * HitsBuff); } bc.RawStr = (int)(bc.RawStr * StrBuff); bc.RawInt = (int)(bc.RawInt * IntBuff); bc.RawDex = (int)(bc.RawDex * DexBuff); bc.Hits = bc.HitsMax; bc.Mana = bc.ManaMax; bc.Stam = bc.StamMax; for (int i = 0; i < bc.Skills.Length; i++) { Skill skill = (Skill)bc.Skills[i]; if (skill.Base > 0.0) { skill.Base *= SkillsBuff; } } bc.PassiveSpeed /= SpeedBuff; bc.ActiveSpeed /= SpeedBuff; bc.DamageMin += DamageBuff; bc.DamageMax += DamageBuff; if (bc.Fame > 0) { bc.Fame = (int)(bc.Fame * FameBuff); } if (bc.Fame > 32000) { bc.Fame = 32000; } // TODO: Mana regeneration rate = Sqrt( buffedFame ) / 4 if (bc.Karma != 0) { bc.Karma = (int)(bc.Karma * KarmaBuff); if (bc.TotalGold > 0) { bc.PackGold((int)(bc.TotalGold * 1.5)); } if (bc.Fame <= 500) { bc.AddLoot(LootPack.Poor); } if (bc.Fame <= 1700 && bc.Fame > 500) { bc.AddLoot(LootPack.Meager); } if (bc.Fame <= 4500 && bc.Fame > 1700) { bc.AddLoot(LootPack.Average); } if (bc.Fame <= 10000 && bc.Fame > 4500) { bc.AddLoot(LootPack.Rich); } if (bc.Fame <= 16000 && bc.Fame > 10000) { bc.AddLoot(LootPack.FilthyRich); } if (bc.Fame <= 26000 && bc.Fame > 16000) { bc.AddLoot(LootPack.UltraRich); } if (bc.Fame <= 32000 && bc.Fame > 26000) { bc.AddLoot(LootPack.SuperBoss); } if (Math.Abs(bc.Karma) > 32000) { bc.Karma = 32000 * Math.Sign(bc.Karma); } } }