示例#1
0
        public static BulletPatternBuilder GetInstance()
        {
            if (_instance == null)
            {
                _instance = new BulletPatternBuilder();
            }

            return(_instance);
        }
 private SceneActionBuilder(SceneActionBuilder parent)
 {
     _action         = new SceneAction();
     _parent         = parent;
     _patternManager = BulletPatternBuilder.GetInstance();
 }
示例#3
0
        private void InitPatterns()
        {
            _patternManager = BulletPatternBuilder.GetInstance();
            _patternManager.Clear();


            _patternManager.CreatePattern("p000").SetIntervalFrame(60);
            _patternManager.CreatePattern("p000_left")
            .SetPositionOffset(new Vector2(-2.0f, 0f));
            _patternManager.CreatePattern("p000_right")
            .SetPositionOffset(new Vector2(2.0f, 0f));
            _patternManager.CreatePattern("p001")
            .SetTriggerType(TriggerType.ONCE).SetDelayFrame(90);
            _patternManager.CreatePattern("p002")
            .SetLockedOnAvatar(false);
            _patternManager.CreatePattern("p003")
            .SetTrigger(new ShootEveryEightFrame());
            _patternManager.CreatePattern("p003_undestroyable")
            .SetTrigger(new ShootEveryEightFrame()).SetDestroyableProportion(0);
            _patternManager.CreatePattern("p004")
            .SetBulletCount(5).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("p005")
            .SetBulletCount(5);
            _patternManager.CreatePattern("p006")
            .SetBulletCount(3).SetTrigger(new ShootEveryFourFrame())
            .SetIntervalFrame(144)
            .SetAngleOffset(10).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("p007")
            .SetBulletCount(4).SetTrigger(new ShootEveryEightFrame())
            .SetCoolDownFrame(30);
            _patternManager.CreatePattern("p007_partial_destroyable")
            .SetBulletCount(4).SetTrigger(new ShootEveryTwelveFrame())
            .SetCoolDownFrame(60).SetDestroyableProportion(30);
            _patternManager.CreatePattern("never_shoot")
            .SetTrigger(new NeverShoots());
            _patternManager.CreatePattern("aim_once_after_2s")
            .SetTriggerType(TriggerType.ONCE).SetDelayFrame(120);
            _patternManager.CreatePattern("aim_once_after_1s")
            .SetTriggerType(TriggerType.ONCE).SetDelayFrame(60);
            _patternManager.CreatePattern("polar_spiral")
            .SetBulletCount(2).SetTrigger(new ShootEveryFourFrame())
            .SetIntervalFrame(144)
            .SetBulletAngle(180).SetAngleOffset(10).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("4_way_spiral")
            .SetBulletCount(4).SetTrigger(new ShootEveryFourFrame())
            .SetIntervalFrame(96)
            .SetBulletAngle(90).SetAngleOffset(13).SetLockedOnAvatar(false)
            .SetDestroyableProportion(0);
            _patternManager.CreatePattern("4_way_spiral_acc")
            .SetBulletCount(4).SetTrigger(new ShootEveryFourFrame())
            .SetIntervalFrame(144)
            .SetBulletAngle(90).SetAngleOffset(10).SetLockedOnAvatar(false)
            .SetDestroyableProportion(0).SetAngleOffsetStepper(0.1f);
            _patternManager.CreatePattern("8_way_blocking")
            .SetBulletCount(8).SetTrigger(new ShootEveryFourFrame())
            .SetBulletAngle(45).SetLockedOnAvatar(true)
            .SetDestroyableProportion(50);
            _patternManager.CreatePattern("1_way_aiming_randomized_CD")
            .SetTrigger(new ShootEveryTwelveFrame())
            .SetCoolDownFrame(240).SetIntervalFrame(30).SetDelayFrame(90)
            .SetAngleRandomRange(new Vector2(-10, 10)).SetDestroyableProportion(0)
            .SetSpeedCorrection(0.5f);
            _patternManager.CreatePattern("2_way_spiral_CD")
            .SetTrigger(new ShootEveryFourFrame()).SetBulletCount(2)
            .SetCoolDownFrame(16).SetIntervalFrame(90).SetAngle(-90)
            .SetBulletAngle(180).SetAngleOffset(16).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("2_way_spiral_CD_0deg")
            .SetTrigger(new ShootEveryFourFrame()).SetBulletCount(2)
            .SetCoolDownFrame(16).SetIntervalFrame(90).SetAngle(0)
            .SetBulletAngle(180).SetAngleOffset(16).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("chop_-150deg_down")
            .SetTrigger(new ShootEveryTwoFrame()).SetBulletCount(1).SetSpeedCorrection(0.7f)
            .SetCoolDownFrame(150).SetIntervalFrame(30).SetAngle(-150).SetDelayFrame(60)
            .SetAngleOffset(6).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("chop_-30deg_down")
            .SetTrigger(new ShootEveryTwoFrame()).SetBulletCount(1).SetSpeedCorrection(0.7f)
            .SetCoolDownFrame(150).SetIntervalFrame(30).SetAngle(-30).SetDelayFrame(60)
            .SetAngleOffset(-6).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("chop_boss")
            .SetTrigger(new ShootEveryTwoFrame()).SetBulletCount(1).SetSpeedCorrection(0.7f)
            .SetCoolDownFrame(210).SetIntervalFrame(30).SetAngle(-15)
            .SetAngleOffset(-6).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("3_way_acc")
            .SetTrigger(new ShootEveryTwelveFrame()).SetBulletCount(3).SetSpeedCorrection(0.5f)
            .SetLockedOnAvatar(true).SetIntervalFrame(30).SetCoolDownFrame(120)
            .SetSpeedCorrectionOffset(0.01f).SetDelayFrame(40).SetAngleRandomRange(new Vector2(-15, 15));
            _patternManager.CreatePattern("ring")
            .SetTrigger(new ShootEveryTwelveFrame()).SetBulletCount(20)
            .SetSpeedCorrection(0.5f).SetSpeedCorrectionOffset(0.01f).SetLoopAngleOffset(5)
            .SetBulletAngle(18).SetIntervalFrame(10).SetCoolDownFrame(30)
            .SetDestroyableProportion(5).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("random_shooting")
            .SetAngle(-90).SetAngleRandomRange(new Vector2(-180, 180)).SetSpeedRandomRange(new Vector2(5, 15))
            .SetTrigger(new ShootEveryTwoFrame()).SetBulletCount(1).SetDestroyableProportion(20).SetLockedOnAvatar(false);
            _patternManager.CreatePattern("backward_shooting")
            .SetAngle(90).SetAngleRandomRange(new Vector2(-60, 60)).SetSpeedRandomRange(new Vector2(3, 8))
            .SetTrigger(new ShootEveryTwoFrame()).SetBulletCount(1).SetDestroyableProportion(20).SetLockedOnAvatar(false)
            .SetSpeedCorrectionOffset(-.01f);
            _patternManager.CreatePattern("backward_ring")
            .SetTrigger(new ShootEveryTwelveFrame()).SetBulletCount(40).SetSpeedCorrection(0.5f)
            .SetSpeedCorrection(0.5f).SetSpeedCorrectionOffset(-0.01f).SetLoopAngleOffset(5)
            .SetBulletAngle(9).SetIntervalFrame(48).SetAngleOffset(5)
            .SetDestroyableProportion(5).SetLockedOnAvatar(false).SetDelayFrame(30);
            _patternManager.CreatePattern("7_way_acc")
            .SetTrigger(new ShootEveryTwelveFrame()).SetBulletCount(7).SetSpeedCorrection(0.5f)
            .SetBulletAngle(7).SetAngleRandomRange(new Vector2(-10, 10))
            .SetLockedOnAvatar(true).SetIntervalFrame(60).SetCoolDownFrame(10)
            .SetSpeedCorrectionOffset(0.01f);
        }