Пример #1
0
    public FiredBullet OpenFire(TurretType turretType, Transform transform, Bullet bullet)
    {
        FiredBullet firedBullet = null;

        switch (turretType)
        {
        case TurretType.ShellTurret:
            firedBullet = new FireShell(transform, bullet);
            break;

        case TurretType.MissileLauncher:
            firedBullet = new FireMissile(transform, bullet);
            GameFacade.Instance.AddBullet(firedBullet);
            break;

        case TurretType.LaserBeamer:
            firedBullet = new FireLaser(transform, bullet);
            break;

        case TurretType.CanonTurret:
            firedBullet = new FireCanonBall(transform, bullet);
            break;
        }
        return(firedBullet);
    }
Пример #2
0
    public override void Fire()
    {
        mAudioSource.Play();
        mBullet = FactoryManager.BulletFactory.CreateBullet <BulletShell>(TurretType, mHoldTime);       //生成子弹: 子弹类型,预制件,数值属性
        FiredBullet shell = FactoryManager.FiredBulletFactory.OpenFire(TurretType, mFireSpot, mBullet); //给发射点和子弹类,子弹发射动作

        shell.Fire();
    }
Пример #3
0
    /// <summary>
    /// 发射卡农炮?
    /// </summary>
    private void FireBall()
    {
        mBullet = FactoryManager.BulletFactory.CreateBullet <BulletShell>(TurretType, mCanonTime); //生成子弹: 子弹类型,预制件,数值属性
        FiredBullet canonball = FactoryManager.FiredBulletFactory.OpenFire(TurretType, mFireSpot, mBullet);

        canonball.Fire();
        mNowBall++;
        mIsCanFire = false;
    }
Пример #4
0
    public override void Fire()
    {
        mBullet.SetBulletAttr(mHoldTime);
        mLaserValue           = (1 + mBullet.Size) / (20 + mBullet.Size * 5); // 1/20 => 1/5
        mOwner.Attr.MoveSpeed = mTankMoveSpeed / (mLaserValue * 5 + 1);       //坦克移动速度,会随着伤害增加而降低
        mLine.widthMultiplier = mLaserValue;                                  //渲染出来的宽度
        FiredBullet laser = FactoryManager.FiredBulletFactory.OpenFire(TurretType, mFireSpot, mBullet);

        laser.Update();
    }
Пример #5
0
 public void RemoveBullet(FiredBullet firedBullet)
 {
     mBulletSystem.RemoveBulletSystem(firedBullet);
 }
Пример #6
0
 public void AddBullet(FiredBullet firedBullet)
 {
     mBulletSystem.AddBulletSystem(firedBullet);
 }
Пример #7
0
 public void RemoveBulletSystem(FiredBullet firedBullet)
 {
     lFiredBullets.Remove(firedBullet);
 }
Пример #8
0
 public void AddBulletSystem(FiredBullet firedBullet)
 {
     lFiredBullets.Add(firedBullet);
 }