Example #1
0
    public override void ArriveAtMoveTarget()
    {
        m_player.m_toSkillInstance = ShootHelper.ShootByArea(m_player, m_match);
        m_player.m_bForceShoot     = true;

        m_bBeginShoot = true;
    }
    public override void OnEnter(AIState lastState)
    {
        base.OnEnter(lastState);

        m_player.m_toSkillInstance = ShootHelper.ShootByArea(m_player, m_match);
        m_player.m_bForceShoot     = true;
    }
Example #3
0
    public override void Play(ShootHelper user)
    {
        AudioHandler audioHandler = user.shooter.GetComponent <AudioHandler>();

        audioHandler.PlaySound("Shield");
        Ray        shieldDirection = user.GetOffsetRay();
        ShotObject shotBullet      = Instantiate(m_shieldPrefab, shieldDirection.origin + user.m_bulletSpawnPoint.rotation * m_shieldPositionOffset, Quaternion.LookRotation(shieldDirection.direction));

        shotBullet.shooter    = user.shooter;
        shotBullet.m_lifeTime = m_shieldLifeTime;
    }
Example #4
0
    public override void Play(ShootHelper user)
    {
        AudioHandler audioHandler = user.shooter.GetComponent <AudioHandler>();

        audioHandler.PlaySound("Shoot");
        Ray          bulletDirection = user.GetOffsetRay();
        NormalBullet shotBullet      = Instantiate(m_bulletPrefab, bulletDirection.origin, Quaternion.LookRotation(bulletDirection.direction));

        shotBullet.GetComponent <Rigidbody>().velocity = bulletDirection.direction * m_bulletSpeed;
        shotBullet.shooter = user.shooter;
    }
Example #5
0
    override public void Update(IM.Number fDeltaTime)
    {
        base.Update(fDeltaTime);

        if (m_player.m_ball == null)
        {
            m_system.SetTransaction(AIState.Type.eGrabZone_TraceBall);
            return;
        }

        if (shooted &&
            m_player.m_StateMachine.m_curState.m_eState != PlayerState.State.eShoot &&
            m_player.m_StateMachine.m_curState.m_eState != PlayerState.State.ePrepareToShoot)
        {
            if (m_player.m_bWithBall)
            {
                m_system.SetTransaction(AIState.Type.eGrabZone_Positioning);
            }
            else
            {
                m_system.SetTransaction(AIState.Type.eGrabZone_TraceBall);
            }
            return;
        }

        if (!shooted && m_player.m_toSkillInstance == null)
        {
            m_player.m_toSkillInstance = ShootHelper.ShootByArea(m_player, m_match);
            m_player.m_bForceShoot     = true;

            m_player.m_ball.onShoot     += OnShoot;
            m_player.m_ball.onShootGoal += OnShootOver;
            m_player.m_ball.onRebound   += OnShootOver;

            shooted = true;
        }
    }
 public override void Start()
 {
     base.Start();
     _sh = GetComponent <ShootHelper>();
 }
Example #7
0
 public abstract void Play(ShootHelper user);
Example #8
0
    protected void _UpdatePassiveStateTransaction(SkillInstance newSkill)
    {
        if (newSkill == null)
        {
            return;
        }

        //Debug.Log(m_player.m_id + " Execute skill " + newSkill.skill.id + " " + newSkill.skill.name);
        Command cmd = (Command)newSkill.skill.action_type;

        if (!IsCommandValid(cmd))
        {
            Debug.Log("Command " + cmd + " invalid. State: " + m_eState);
            return;
        }

        switch (cmd)
        {
        case Command.Shoot:
            ShootHelper.ShootByInput(m_player);
            break;

        case Command.Block:
            m_stateMachine.SetState(PlayerState.State.eBlock, true);
            break;

        case Command.CrossOver:
            m_stateMachine.SetState(PlayerState.State.eCrossOver, true);
            break;

        case Command.Dunk:
            m_stateMachine.SetState(PlayerState.State.eDunk, true);
            break;

        case Command.Layup:
            m_stateMachine.SetState(PlayerState.State.eLayup, true);
            break;

        case Command.MoveStep:
            m_stateMachine.SetState(PlayerState.State.eMoveStep, true);
            break;

        case Command.Boxout:
            m_stateMachine.SetState(PlayerState.State.eStand);
            break;

        case Command.Steal:
            m_stateMachine.SetState(PlayerState.State.eSteal, true);
            break;

        case Command.Pass:
        {
            if (m_player.m_passTarget == null)
            {
                m_player.m_passTarget = PassHelper.ChoosePassTarget(m_player);
            }
            if (m_player.m_passTarget != null)
            {
                m_stateMachine.SetState(PlayerState.State.ePass, true);
            }
        }
        break;

        case Command.Rebound:
            m_stateMachine.SetState(PlayerState.State.eRebound, true);
            break;

        case Command.RequireBall:
            m_stateMachine.SetState(PlayerState.State.eRequireBall);
            break;

        case Command.CutIn:
            m_stateMachine.SetState(PlayerState.State.eCutIn);
            break;

        case Command.BodyThrowCatch:
            m_stateMachine.SetState(PlayerState.State.eBodyThrowCatch);
            break;

        case Command.BackToBack:
            m_stateMachine.SetState(PlayerState.State.eBackToBack);
            break;

        case Command.PickAndRoll:
            m_stateMachine.SetState(PlayerState.State.ePickAndRoll);
            break;

        case Command.Defense:
            m_stateMachine.SetState(PlayerState.State.eDefense);
            break;

        case Command.Interception:
            m_stateMachine.SetState(PlayerState.State.eInterception);
            break;

        default:
            m_stateMachine.SetState(PlayerState.State.eStand);
            break;
        }
    }