Exemplo n.º 1
0
    public void Eexecute0(GameActor actor, float deltaTime)
    {
        PositiveActor positiveActor = (PositiveActor)actor;

        if (positiveActor.HaveTarget)
        {
            if (positiveActor.TrackTarget())
            {
                float dt = Time.deltaTime;
                positiveActor.ShootProgress += dt;
                if (positiveActor.ShootProgress >= positiveActor.ShootDuration * 1000)
                {
                    positiveActor.Shoot();
                    actor.TurnNextState();
                }
            }
            else
            {
                positiveActor.loseTarget();
                actor.TurnNextState();
            }
        }
        else
        {
            if (positiveActor.AcquireTarget())
            {
                positiveActor.StartAttackTime = Time.time;
            }
            else
            {
                actor.TurnNextState();
            }
        }
    }
Exemplo n.º 2
0
    protected override bool CanEnter0(GameActor actor)
    {
        if (!(actor is PositiveActor))
        {
            return(false);
        }
        PositiveActor positiveActor = (PositiveActor)actor;
        float         now           = Time.time;

        return((now - positiveActor.LastAttackTime) >= positiveActor.ShootInterval && positiveActor.AcquireTarget());
    }
Exemplo n.º 3
0
    public void Enter0(GameActor actor)
    {
        PositiveActor positiveActor = (PositiveActor)actor;

        positiveActor.LastAttackTime = Time.time;
    }