예제 #1
0
 public Reloads(Actor self, ReloadsInfo info)
 {
     Info           = info;
     remainingTicks = info.Period;
     la             = self.Trait <LimitedAmmo>();
     previousAmmo   = la.GetAmmoCount();
 }
예제 #2
0
        public void Tick(Actor self)
        {
            if (!la.FullAmmo() && --remainingTicks == 0)
            {
                remainingTicks = Info.Period;

                for (var i = 0; i < Info.Count; i++)
                {
                    la.GiveAmmo();
                }

                previousAmmo = la.GetAmmoCount();
            }

            // Resets the tick counter if ammo was fired.
            if (Info.ResetOnFire && la.GetAmmoCount() < previousAmmo)
            {
                remainingTicks = Info.Period;
                previousAmmo   = la.GetAmmoCount();
            }
        }