status/MoreDamageShrinkingBulletsStatus.cs
using System;
using System.Collections.Generic;
using System.Linq;
using Sandbox;
[Status(7, 0, 1f, 0, false )]
public class MoreDamageShrinkingBulletsStatus : Status
{
public MoreDamageShrinkingBulletsStatus()
{
Title = "Frontloaded";
IconPath = "textures/icons/more_damage_shrinking_bullets.png";
}
public override void Init(Player player)
{
base.Init(player);
}
public override void Refresh()
{
Description = GetDescription(Level);
Player.Modify(this, PlayerStat.BulletFlatDamageAddition, GetDamageAdd(Level), ModifierType.Add);
Player.Modify(this, PlayerStat.BulletDamageShrink, GetShrinkForLevel(Level), ModifierType.Add);
}
public override string GetDescription(int newLevel)
{
return string.Format("Your bullets do +{0} damage but shrink by {1} damage per second", GetDamageAddPrint(Level), GetShrinkPrintForLevel(Level));
}
public override string GetUpgradeDescription(int newLevel)
{
return newLevel > 1 ? string.Format(" Your bullets do +{0}→+{1} damage but shrink by {2}→{3} damage per second", GetDamageAddPrint(newLevel - 1), GetDamageAddPrint(newLevel), GetShrinkPrintForLevel(newLevel - 1), GetShrinkPrintForLevel(newLevel)) : GetDescription(newLevel);
}
public float GetDamageAdd(int level)
{
return 1.3f * level;
}
public string GetDamageAddPrint(int level)
{
return string.Format( "{0:0.0}", GetDamageAdd( level ) );
}
public float GetShrinkForLevel(int level)
{
return 1.8f * level;
}
public string GetShrinkPrintForLevel(int level)
{
return string.Format("{0:0.0}", GetShrinkForLevel(level));
}
}