public float PreStep(Shooter p_shooter) { if (!m_active) { return(-1); } if (m_shotsFired == m_shots) { if (AddLoop(p_shooter)) { return(-1); } } if (!p_shooter.CanLoop(this)) { return(Time.time - (m_lastLoopTime + m_patternCooldown)); } if (!m_instant && !p_shooter.ConsumeMana(this)) { p_shooter.StopShooting(this); return(-1); } Step(p_shooter); m_shotsFired++; return(m_stepDelay); }
public float PreStep(Shooter p_shooter) { if (!((bool)p_shooter.GetPatternInfo(this, "active"))) { return(-1); } int shotsFired = (int)p_shooter.GetPatternInfo(this, "shotsFired"); if (shotsFired == m_shots) { if (AddLoop(p_shooter)) { return(-1); } } if (!p_shooter.CanLoop(this)) { return((Time.time * 1000 - ((float)p_shooter.GetPatternInfo(this, "lastLoopTime") + m_patternCooldown * 1000)) / 1000); } Step(p_shooter); shotsFired++; p_shooter.SetPatternInfo(this, "shotsFired", shotsFired); return(m_stepDelay); }
public float Instant(Shooter p_shooter) { for (int i = 0; i < m_shots; ++i) { PreStep(p_shooter); } if ((int)p_shooter.GetPatternInfo(this, "shotsFired") == m_shots) { AddLoop(p_shooter); } if (!p_shooter.CanLoop(this)) { return((Time.time * 1000 - ((float)p_shooter.GetPatternInfo(this, "lastLoopTime") + m_patternCooldown * 1000)) / 1000); } return(m_patternCooldown); }
public float Instant(Shooter p_shooter) { if (!p_shooter.ConsumeMana(this)) { p_shooter.StopShooting(this); return(-1); } for (int i = 0; i < m_shots; ++i) { PreStep(p_shooter); } if (m_shotsFired == m_shots) { AddLoop(p_shooter); } if (!p_shooter.CanLoop(this)) { return(Time.time - (m_lastLoopTime + m_patternCooldown)); } return(m_patternCooldown); }