コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    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);
    }