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); }
public override void Fire() { mAudioSource.Play(); mBullet = FactoryManager.BulletFactory.CreateBullet <BulletShell>(TurretType, mHoldTime); //生成子弹: 子弹类型,预制件,数值属性 FiredBullet shell = FactoryManager.FiredBulletFactory.OpenFire(TurretType, mFireSpot, mBullet); //给发射点和子弹类,子弹发射动作 shell.Fire(); }
/// <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; }
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(); }
public void RemoveBullet(FiredBullet firedBullet) { mBulletSystem.RemoveBulletSystem(firedBullet); }
public void AddBullet(FiredBullet firedBullet) { mBulletSystem.AddBulletSystem(firedBullet); }
public void RemoveBulletSystem(FiredBullet firedBullet) { lFiredBullets.Remove(firedBullet); }
public void AddBulletSystem(FiredBullet firedBullet) { lFiredBullets.Add(firedBullet); }