コード例 #1
0
ファイル: MovePattern.cs プロジェクト: ClazzX1/BussStopOCD
	public void StartPattern(int moveCount, float patternLengthTime)
	{
		lengthTime = patternLengthTime;
		GenerateNewPattern(moveCount);
		patternState = PatternState.OTHERS_DO_MOVES;
		RestartPattern();
	}
コード例 #2
0
 protected override bool OnExecute(PatternState state)
 {
     state.End(Destination);
     return(true);
 }
コード例 #3
0
ファイル: MovePattern.cs プロジェクト: ClazzX1/BussStopOCD
	public void StopPattern()
	{
		patternState = PatternState.FINISHED;
	}
コード例 #4
0
ファイル: MovePattern.cs プロジェクト: ClazzX1/BussStopOCD
	private void PatternComplete()
	{
		patternState = PatternState.FINISHED;

		if (OnPatternComplete != null)
			OnPatternComplete();
	}
コード例 #5
0
 private void OnBackSlash() {
     if (InEscapeSequence) {
         AppendEscapedChar('\\');
     } else {
         _state |= PatternState.InEscapeSequence;
     }
 }
コード例 #6
0
 private void OnCloseBracket() {
     if (InEscapeSequence) {
         AppendEscapedChar(']');
     } else {
         _sb.Append(']');
         _state &= ~PatternState.InCharacterClass;
     }
 }
コード例 #7
0
ファイル: PatternParser.cs プロジェクト: nguyenkien/api
        private void EvalGroupState(char token, bool escaped)
        {
            if (!escaped)
            {
                if (patternState != PatternState.StartCharacterClass && patternState != PatternState.CharacterClass)
                {
                    switch (token)
                    {
                        case '(':
                            previousPatternState = patternState;
                            patternState = PatternState.StartGroup;
                            previousStartGroupIndex = startGroupIndex;
                            startGroupIndex = currentIndex;
                            groupLevel++;
                            if (previousPatternState == PatternState.StartGroup) // (( 
                            {
                                NumberedCaptureGroupFound(previousStartGroupIndex, currentIndex);
                            }
                            return;
                        case ')':
                            groupLevel--;
                            return;
                        default:
                            //see switch below
                            break;
                    }
                }

                switch (patternState)
                {
                    case PatternState.Other: // Pattern, Modifiers
                        switch (token)
                        {
                            case '[':
                                patternState = PatternState.StartCharacterClass;
                                break;
                        }
                        break;
                    case PatternState.StartCharacterClass:
                        if (token != '^') patternState = PatternState.CharacterClass;
                        break;
                    case PatternState.CharacterClass:
                        if (token == ']') patternState = PatternState.Other;
                        break;
                    case PatternState.StartGroup: // (
                        if (token == '?')
                        {
                            patternState = PatternState.StartExtendedGroup;
                        }
                        else
                        {
                            if (previousPatternState == PatternState.StartExtendedGroup)
                            {
                                ConditionFound(currentIndex);
                            }
                            else
                            {
                                NumberedCaptureGroupFound(startGroupIndex, currentIndex);
                            }
                            patternState = token == '[' ? PatternState.StartCharacterClass : PatternState.Other;
                        }
                        break;
                    case PatternState.StartExtendedGroup: // (?
                        // NonCaptureGroup:                        // (?: -> Other
                        switch (token)
                        {
                            case '\'':
                                patternState = PatternState.NamedCaptureGroupQuote;
                                startNamedIndex = currentIndex + 1;
                                break;
                            case '<':
                                patternState = PatternState.StartNamedCaptureGroupAngleBracket;
                                startNamedIndex = currentIndex + 1;
                                break;
                            default:
                                patternState = PatternState.Other;
                                break;
                        }
                        break;
                    case PatternState.NamedCaptureGroupQuote: // (?'
                        if (token == '\'')
                        {
                            NamedCaptureGroupFound(startGroupIndex, currentIndex + 1, GetName(startNamedIndex, currentIndex));
                            patternState = PatternState.Other;
                        } //else we are inside the name
                        break;
                    case PatternState.StartNamedCaptureGroupAngleBracket: // (?<
                        // PositiveLookBehind:                          // (?<= -> Other
                        // NegativeLookBehind:                          // (?<! -> Other
                        if (token == '=' || token == '!')
                        {
                            patternState = PatternState.Other;
                        }
                        else
                        {
                            patternState = PatternState.NamedCaptureGroupAngleBracket;
                        }
                        break;
                    case PatternState.NamedCaptureGroupAngleBracket:
                        if (token == '>')
                        {
                            NamedCaptureGroupFound(startGroupIndex, currentIndex + 1, GetName(startNamedIndex, currentIndex));
                            patternState = PatternState.Other;
                        } //else we are inside the name
                        break;
                    default:
                        throw new NotSupportedException("Unknown group state");
                }
            }
            else
            {
                switch (patternState)
                {
                    case PatternState.StartCharacterClass:
                        patternState = PatternState.CharacterClass;
                        break;
                    case PatternState.StartExtendedGroup:
                        patternState = PatternState.Other;
                        break;
                    case PatternState.StartGroup:
                        if (previousPatternState == PatternState.StartExtendedGroup)
                        {
                            ConditionFound(currentIndex-1);
                        }
                        else
                        {
                            NumberedCaptureGroupFound(startGroupIndex, currentIndex-1);
                        }
                        patternState = PatternState.Other;
                        break;
                    case PatternState.StartNamedCaptureGroupAngleBracket:
                        patternState = PatternState.NamedCaptureGroupAngleBracket;
                        break;
                }
            }
        }
コード例 #8
0
 protected override bool OnCanExecute(PatternState state)
 {
     return(state.Enumerator.HasCurrent &&
            state.Enumerator.Current.Type == Type &&
            state.Enumerator.Current.Content == Content);
 }
コード例 #9
0
    protected override void createPattern()
    {
        PatternPackage newPs = null;

        PatternState newPattern;

        newPattern = new PatternState();

        newPattern.setPattern
        (
            true,                        //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.CIRCULAR,       //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.9f,                        //    float   ||      XScale      ||  X Scale 값 조정.
            0.9f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
            3.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                        //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                        //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            0.0f,                        //    float   ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            1.5f,                        //    float     ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
            10.0f,                       //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            8,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정. ShotGun은 한개 넘게
            0.0f,                        //    float  ||  MinInterval      || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                        //    float   ||  RotateAngle       || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.STOP_AND_PLAY,   //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET4_1, //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                        //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                       //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.25f,                       //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            1.2f                         //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)
        );
        newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[3]);

        m_curPatternList.Add(newPs);

        newPattern = new PatternState();

        newPattern.setPattern
        (
            true,                        //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.CIRCULAR,       //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.9f,                        //    float   ||      XScale      ||  X Scale 값 조정.
            0.9f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
            3.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            18.0f,                       //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                        //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            0.0f,                        //    float   ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            1.6f,                        //    float     ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
            10.0f,                       //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            8,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정. ShotGun은 한개 넘게
            0.0f,                        //    float  ||  MinInterval      || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                        //    float   ||  RotateAngle       || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.STOP_AND_PLAY,   //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET4_1, //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                        //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                       //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.35f,                       //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            1.1f                         //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)
        );
        newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[3]);

        m_curPatternList.Add(newPs);



        newPattern = new PatternState();
        newPattern.setPattern
        (
            false,                        //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.ROTATE_CIRCULAR, //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.5f,                         //    float   ||      XScale      ||  X Scale 값 조정.
            0.5f,                         //    flaot   ||      YScale      ||  Y Scale 값 조정.
            0.0f,                         //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                         //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                         //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            20.0f,                        //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            0.08f,                        //    float  ||    Interval      || 탄환 사이의 간격 (시간)
            3.5f,                         //    float   ||  BulletSpeedRate || 탄환이 가속도
            0.0f,                         //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            6,                            //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                         //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                         //    float  ||  RotateAngle   || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            2.00f,                        //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                         //    float  ||    MaxAngle        || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                            //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,             //    enum      ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET4_3,  //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                         //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                        //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.0f,                         //    float   ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            0.0f                          //    float   ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)
        );

        newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[3]);
        m_curPatternList.Add(newPs);



        ///////////////////////////////////////////////////////////////////////
        //                               페이즈 2
        ////////////////////////////////////////////////////////////////////////
        for (int i = 0; i < 3; i++)
        {
            newPattern = new PatternState();
            newPattern.setPattern
            (
                true,                                  //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.AIMING_DIRECT,            //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
                2.5f,                                  //    float   ||      XScale      ||  X Scale 값 조정.
                2.5f,                                  //    flaot   ||      YScale      ||  Y Scale 값 조정.
                3.5f,                                  //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                0.0f,                                  //    float    ||      Angle       || 탄환 첫 발사 각도
                00.0f,                                 //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                0.0f,                                  //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                3.0f,                                  //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                                  //    float   ||  BulletSpeedRate || 탄환이 가속도
                0.0f,                                  //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                1,                                     //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.0f,                                  //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                                  //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                0.00f,                                 //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                                  //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                0,                                     //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.BASE,                      //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET4_3,           //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                                  //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false                                  //    bool    ||   isHoming       || 유도탄으로 발사할건가?
            );

            newPs           = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[2]);
            newPs.m_PPDelay = 1.2f * i;
            m_curPatternList.Add(newPs);
        }

        for (int i = 0; i < 3; i++)
        {
            newPattern = new PatternState();
            newPattern.setPattern
            (
                true,                                 //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.AIMING_DIRECT,           //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
                3.2f,                                 //    float   ||      XScale      ||  X Scale 값 조정.
                3.2f,                                 //    flaot   ||      YScale      ||  Y Scale 값 조정.
                3f,                                   //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                0.0f,                                 //    float    ||      Angle       || 탄환 첫 발사 각도
                00.0f,                                //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                0.0f,                                 //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                3.0f,                                 //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                                 //    float   ||  BulletSpeedRate || 탄환이 가속도
                0.0f,                                 //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                1,                                    //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.0f,                                 //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                                 //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                0.00f,                                //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                                 //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                0,                                    //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.BASE,                     //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET4_3,          //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                                 //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false                                 //    bool    ||   isHoming       || 유도탄으로 발사할건가?
            );

            newPs           = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[2]);
            newPs.m_PPDelay = 0.7f * i;
            m_curPatternList.Add(newPs);
        }

        newPattern = new PatternState();
        newPattern.setPattern
        (
            false,                                 //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.AIMING_DIRECT,            //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
            4.2f,                                  //    float   ||      XScale      ||  X Scale 값 조정.
            4.2f,                                  //    flaot   ||      YScale      ||  Y Scale 값 조정.
            1.8f,                                  //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                                  //    float    ||      Angle       || 탄환 첫 발사 각도
            00.0f,                                 //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            0.0f,                                  //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            2.1f,                                  //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                                  //    float   ||  BulletSpeedRate || 탄환이 가속도
            0.0f,                                  //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            1,                                     //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.0f,                                  //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                                  //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                                 //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                                  //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                                     //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,                      //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET4_3,           //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                                  //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false                                  //    bool    ||   isHoming       || 유도탄으로 발사할건가?
        );

        newPs           = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[2]);
        newPs.m_PPDelay = 2.1f;
        m_curPatternList.Add(newPs);



        ///////////////////////////////////////////////////////////////////////
        //                               페이즈 3
        ////////////////////////////////////////////////////////////////////////


        for (int i = 0; i < 10; i++)
        {
            newPattern = new PatternState();
            newPattern.setPattern
            (
                true,                                  //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.AIMING_DIRECT,            //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
                0.6f,                                  //    float   ||      XScale      ||  X Scale 값 조정.
                0.6f,                                  //    flaot   ||      YScale      ||  Y Scale 값 조정.
                2.0f,                                  //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                0.0f,                                  //    float    ||      Angle       || 탄환 첫 발사 각도
                00.0f,                                 //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                0.0f,                                  //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                4.0f,                                  //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                                  //    float   ||  BulletSpeedRate || 탄환이 가속도
                0.0f,                                  //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                1,                                     //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.0f,                                  //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                                  //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                0.00f,                                 //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                                  //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                0,                                     //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.STOP_AND_PLAY,             //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET4_3,           //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                                  //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false,                                 //    bool    ||   isHoming       || 유도탄으로 발사할건가?
                0.0f,
                2.0f,
                true,
                0.0f + Mathf.Cos((36.0f * i) * Mathf.Deg2Rad) * 0.8f,
                0.0f + Mathf.Sin((36.0f * i) * Mathf.Deg2Rad) * 0.8f
            );

            newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[4]);
            m_curPatternList.Add(newPs);
        }


        for (int i = 0; i < 11; i++)
        {
            newPattern = new PatternState();
            newPattern.setPattern
            (
                true,                        //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.DIRECT,         //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
                0.6f,                        //    float   ||      XScale      ||  X Scale 값 조정.
                0.6f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
                2.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                0.0f,                        //    float    ||      Angle       || 탄환 첫 발사 각도
                00.0f,                       //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                0.0f,                        //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                Random.Range(0.9f, 1.0f),    //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
                0.0f,                        //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                1,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.0f,                        //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                        //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                3,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.BASE,            //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET4_2, //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                        //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false,                       //    bool    ||   isHoming       || 유도탄으로 발사할건가?
                0.0f,
                0.0f,
                false,
                -3.0f,
                -4.70f + (0.9f * i)
            );

            newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[4]);
            m_curPatternList.Add(newPs);
        }


        for (int i = 0; i < 11; i++)
        {
            newPattern = new PatternState();
            newPattern.setPattern
            (
                true,                        //    bool   ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.DIRECT,         //    enum      ||     PatternName  || 무슨 패턴을 쓸건지?
                0.7f,                        //    float   ||      XScale      ||  X Scale 값 조정.
                0.7f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
                1.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                180.0f,                      //    float    ||      Angle       || 탄환 첫 발사 각도
                00.0f,                       //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                0.0f,                        //    float   ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                Random.Range(1.2f, 1.3f),    //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
                0.0f,                        //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                1,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.3f,                        //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                        //    float  ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                3,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.STOP_AND_PLAY,   //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET4_1, //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                        //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false,                       //    bool    ||   isHoming       || 유도탄으로 발사할건가?
                0.0f,
                0.0f,
                false,
                3.0f,
                -4.2f + (0.9f * i)
            );

            newPs = new PatternPackage(newPattern, "B_SBrown", "E_6", "E_6", "M_5", m_moveList[4]);
            m_curPatternList.Add(newPs);
        }
    }
コード例 #10
0
ファイル: PatternParser.cs プロジェクト: slagusev/api
        private void EvalGroupState(char token, bool escaped)
        {
            if (!escaped)
            {
                if (patternState != PatternState.StartCharacterClass && patternState != PatternState.CharacterClass)
                {
                    switch (token)
                    {
                    case '(':
                        previousPatternState    = patternState;
                        patternState            = PatternState.StartGroup;
                        previousStartGroupIndex = startGroupIndex;
                        startGroupIndex         = currentIndex;
                        groupLevel++;
                        if (previousPatternState == PatternState.StartGroup)     // ((
                        {
                            NumberedCaptureGroupFound(previousStartGroupIndex, currentIndex);
                        }
                        return;

                    case ')':
                        groupLevel--;
                        return;

                    default:
                        //see switch below
                        break;
                    }
                }

                switch (patternState)
                {
                case PatternState.Other:     // Pattern, Modifiers
                    switch (token)
                    {
                    case '[':
                        patternState = PatternState.StartCharacterClass;
                        break;
                    }
                    break;

                case PatternState.StartCharacterClass:
                    if (token != '^')
                    {
                        patternState = PatternState.CharacterClass;
                    }
                    break;

                case PatternState.CharacterClass:
                    if (token == ']')
                    {
                        patternState = PatternState.Other;
                    }
                    break;

                case PatternState.StartGroup:     // (
                    if (token == '?')
                    {
                        patternState = PatternState.StartExtendedGroup;
                    }
                    else
                    {
                        if (previousPatternState == PatternState.StartExtendedGroup)
                        {
                            ConditionFound(currentIndex);
                        }
                        else
                        {
                            NumberedCaptureGroupFound(startGroupIndex, currentIndex);
                        }
                        patternState = token == '[' ? PatternState.StartCharacterClass : PatternState.Other;
                    }
                    break;

                case PatternState.StartExtendedGroup:     // (?
                    // NonCaptureGroup:                        // (?: -> Other
                    switch (token)
                    {
                    case '\'':
                        patternState    = PatternState.NamedCaptureGroupQuote;
                        startNamedIndex = currentIndex + 1;
                        break;

                    case '<':
                        patternState    = PatternState.StartNamedCaptureGroupAngleBracket;
                        startNamedIndex = currentIndex + 1;
                        break;

                    default:
                        patternState = PatternState.Other;
                        break;
                    }
                    break;

                case PatternState.NamedCaptureGroupQuote:     // (?'
                    if (token == '\'')
                    {
                        NamedCaptureGroupFound(startGroupIndex, currentIndex + 1, GetName(startNamedIndex, currentIndex));
                        patternState = PatternState.Other;
                    }     //else we are inside the name
                    break;

                case PatternState.StartNamedCaptureGroupAngleBracket:     // (?<
                    // PositiveLookBehind:                          // (?<= -> Other
                    // NegativeLookBehind:                          // (?<! -> Other
                    if (token == '=' || token == '!')
                    {
                        patternState = PatternState.Other;
                    }
                    else
                    {
                        patternState = PatternState.NamedCaptureGroupAngleBracket;
                    }
                    break;

                case PatternState.NamedCaptureGroupAngleBracket:
                    if (token == '>')
                    {
                        NamedCaptureGroupFound(startGroupIndex, currentIndex + 1, GetName(startNamedIndex, currentIndex));
                        patternState = PatternState.Other;
                    }     //else we are inside the name
                    break;

                default:
                    throw new NotSupportedException("Unknown group state");
                }
            }
            else
            {
                switch (patternState)
                {
                case PatternState.StartCharacterClass:
                    patternState = PatternState.CharacterClass;
                    break;

                case PatternState.StartExtendedGroup:
                    patternState = PatternState.Other;
                    break;

                case PatternState.StartGroup:
                    if (previousPatternState == PatternState.StartExtendedGroup)
                    {
                        ConditionFound(currentIndex - 1);
                    }
                    else
                    {
                        NumberedCaptureGroupFound(startGroupIndex, currentIndex - 1);
                    }
                    patternState = PatternState.Other;
                    break;

                case PatternState.StartNamedCaptureGroupAngleBracket:
                    patternState = PatternState.NamedCaptureGroupAngleBracket;
                    break;
                }
            }
        }
コード例 #11
0
 public IdleState(PatternState patternStateEnemy)
 {
     enemy = patternStateEnemy;
 }
コード例 #12
0
ファイル: Bullet.cs プロジェクト: qnpfrehdtks/AvoidSlimes
    public void FireBullet(Vector2 StartPos, float StartAngle, float StartSpeed, PatternState stat, PatternState bulletstat)
    {
        //   m_eType = MoverType.Bullet;
        m_cStat       = stat;
        m_cBulletStat = bulletstat;

        transform.position = StartPos;

        if (transform.localScale != stat.ScaleXY)
        {
            transform.localScale = stat.ScaleXY;
        }

        SetSprite(m_cStat.m_sImage);

        m_fAngle      = StartAngle;
        m_fSpeed      = StartSpeed;
        m_eBulletType = m_cStat.m_eType;

        PlayStopaAndMove();
        InstallTraill();

        m_isFire = true;
    }
コード例 #13
0
        private static void HandleCharEvolvingPattern(Dictionary<char, SearchState> mapEvolvedStates, MultiMap<char, string> mapCompletedPatterns, PatternState ps, char c)
        {
            if (ps.DotPos + 1 == ps.PatternString.Length)
            {
                mapCompletedPatterns.Add(c, ps.PatternString);
            }

            if (!mapEvolvedStates.ContainsKey(c))
                mapEvolvedStates.Add(c, new SearchState());

            mapEvolvedStates[c].AddPatternState(ps.NextStep());
        }
コード例 #14
0
ファイル: OptionalElement.cs プロジェクト: Seti-0/NSprak
 protected override bool OnCanExecute(PatternState state)
 {
     return(true);
 }
コード例 #15
0
    protected override void createPattern()
    {
        PatternPackage newPs = null;

        PatternState newPattern = new PatternState();



        /////////////////////////////////////////////////////////////////////////////////////////////
        newPattern.setPattern
        (
            true,                        //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.WASHER_SPIRAL,  //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.5f,                        //    float   ||      XScale      ||  X Scale 값 조정.
            0.5f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
            6.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            10.0f,                       //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                        //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            10.0f,                       //    float  ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            0.1f,                        //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
            0.0f,                        //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            4,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                        //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            10.0f,                       //    float   ||  RotateAngle       || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            60.0f,                       //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,            //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET1_1, //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                        //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                       //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.0f,                        //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            0.0f);                       //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)

        newPs = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_1", m_moveList[0]);
        m_curPatternList.Add(newPs);

        newPattern = new PatternState();

        newPattern.setPattern
        (
            true,                         //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.WASHER_SPIRAL,   //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.5f,                         //    float   ||      XScale      ||  X Scale 값 조정.
            0.5f,                         //    flaot   ||      YScale      ||  Y Scale 값 조정.
            6.0f,                         //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                         //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                         //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            -10.0f,                       //    float  ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            0.1f,                         //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                         //    float   ||  BulletSpeedRate || 탄환이 가속도
            0.0f,                         //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            4,                            //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                         //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                         //    float   ||  RotateAngle       || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                        //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            60.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                            //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,             //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET1_1,  //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                         //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                        //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.0f,                         //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            0.0f);                        //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)

        newPs = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_1", m_moveList[0]);
        m_curPatternList.Add(newPs);

        newPattern = new PatternState();

        newPattern.setPattern
        (
            false,                       //    bool    ||       isMix      || 패턴을 다음에 쓰는 SetPattern 패턴과 조합해서 쓸것인지? true면 yes 아니면 false
            PATTERN_NAME.AIMING_DIRECT,  //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.7f,                        //    float   ||      XScale      ||  X Scale 값 조정.
            0.7f,                        //    flaot   ||      YScale      ||  Y Scale 값 조정.
            5.0f,                        //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            30.0f,                       //    float   ||      Angle       || 탄환 첫 발사 각도
            0.0f,                        //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            0.0f,                        //    float  ||    AngleRate      || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            1.0f,                        //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                        //    float   ||  BulletSpeedRate || 탄환이 가속도
            0.0f,                        //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            3,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                        //    float  ||  MinInterval      || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                        //    float   ||  RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            0.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                        //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                           //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,            //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET1_2, //   enum     ||   BulletImage  || 탄막의 이미지 타입은?
            0.0f,                        //    float   ||  HomingRate      || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                       //    bool    ||   isHoming       || 유도탄으로 발사할건가?
            0.0f,                        //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            1.0f,                        //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)
            true,                        //    bool    ||   isMyPos       || 발사 위치를 내 자리에 아니면 사용자가 지정한 위치에 둘것인지??
            0.0f,                        //    float    ||   StopTime     || 탄환의 시작 위치 X값
            0.0f);                       //    float    ||   StopTime     ||  탄환의 시작 위치 Y값

        newPs = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_4", m_moveList[0]);
        m_curPatternList.Add(newPs);

        ///////////////////////////////////////////////////////////////////////
        //                               페이즈 2
        ////////////////////////////////////////////////////////////////////////

        newPattern = new PatternState();

        newPattern.setPattern
        (
            true,                         //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.ROTATE_CIRCULAR, //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.6f,                         //    float   ||      XScale      ||  X Scale 값 조정.
            0.6f,                         //    flaot   ||      YScale      ||  Y Scale 값 조정.
            3.0f,                         //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                         //    float   ||      Angle       || 탄환 첫 발사 각도
            0.5f,                         //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            10.0f,                        //    float  ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            0.45f,                        //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                         //    float   ||  BulletSpeedRate || 탄환이 가속도
            12f,                          //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            18,                           //    int    ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                         //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                         //    float   ||   RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            10.00f,                       //    float  ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                         //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                            //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,             //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET1_1,  //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                         //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false,                        //    bool    ||   isHoming      || 유도탄으로 발사할건가?
            0.0f,                         //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
            0.0f);                        //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)

        newPs = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_1", m_moveList[1]);
        m_curPatternList.Add(newPs);


        newPattern = new PatternState();

        newPattern.setPattern
        (
            false,                        //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
            PATTERN_NAME.ROTATE_CIRCULAR, //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
            0.6f,                         //    float   ||      XScale      ||  X Scale 값 조정.
            0.6f,                         //    flaot   ||      YScale      ||  Y Scale 값 조정.
            3.0f,                         //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
            0.0f,                         //    float   ||      Angle       || 탄환 첫 발사 각도
            0.5f,                         //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
            -12.0f,                       //    float  ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
            0.45f,                        //    float   ||    Interval      || 탄환 사이의 간격 (시간)
            0.0f,                         //    float   ||  BulletSpeedRate || 탄환이 가속도
            -0.8f,                        //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
            18,                           //    int    ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
            0.1f,                         //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
            0.0f,                         //    float   ||   RotateAngle     || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
            10.00f,                       //    float  ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
            0.0f,                         //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
            0,                            //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
            BULLET_TYPE.BASE,             //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
            BULLET_IMAGE.BASE_BULLET1_2,  //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
            0.0f,                         //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
            false                         //    bool    ||   isHoming      || 유도탄으로 발사할건가?
        );

        newPs           = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_1", m_moveList[1]);
        newPs.m_PPDelay = 0.15f;
        m_curPatternList.Add(newPs);

        ///////////////////////////////////////////////////////////////////////
        //                               페이즈 3
        ////////////////////////////////////////////////////////////////////////

        for (int i = 0; i < 3; i++)
        {
            newPattern = new PatternState();

            newPattern.setPattern
            (
                true,                         //    bool    ||       isMix      || 패턴을 다른 패턴과 조합해서 쓸것인지
                PATTERN_NAME.ROTATE_CIRCULAR, //    enum    ||     PatternName  || 무슨 패턴을 쓸건지?
                0.6f,                         //    float   ||      XScale      ||  X Scale 값 조정.
                0.6f,                         //    flaot   ||      YScale      ||  Y Scale 값 조정.
                4.0f,                         //    float   ||       Speed      || 탄환이 나갈 때 첫 속도
                0.0f,                         //    float   ||      Angle       || 탄환 첫 발사 각도
                0.5f,                         //    float   ||    SpeedRate     || 탄환이 나갈 때 첫 속도를 점점 올릴것인지?
                10.0f,                        //    float  ||    AngleRate     || 탄환이 나갈 때 발사 각도를 점점 올릴것인지? 샷건이나 부채꼬에서는 각도를 각 각도
                1.5f,                         //    float   ||    Interval      || 탄환 사이의 간격 (시간)
                0.0f,                         //    float   ||  BulletSpeedRate || 탄환이 가속도
                28.0f + 3.0f * i,             //    float   ||  BulletAngleRate || 탄환의 각 증가속도?? 알아서 탄환의 각이 커짐.
                36,                           //    int     ||     Count        || 탄환을 한번에 발사 하는 놈의 수를 조정.
                0.1f,                         //    float  ||  MinInterval     || ShotGun ,Direct 패턴에서 탄환의 그룹안의 탄환간의 간격
                0.0f,                         //    float   ||  RotateAngle       || 거의 쓸일은 없겠지만, 회전 각 정하기? Washer에서 주로 쓰임.
                15.00f,                       //    float   ||  RotateAngleRate || 탄환이 회전 하는 패턴을 가질 경우, 회전 각 속도 조정 Rotate 붙은 패턴에서 쓰임.
                0.0f,                         //    float   ||    MaxAngle      || Washer 회전 패턴의 경우, 최대 돌 각도가 어느정도인지?
                0,                            //    int     ||   GroupCount     || ShotGun Pattern에서만 쓰임. Shot Group 수 결정. 0으로 둬도 무방.
                BULLET_TYPE.STOP_AND_PLAY,    //    enum    ||   BulletType     || 탄막의 종류는? 안쓰면 Blue값이 Default
                BULLET_IMAGE.BASE_BULLET1_2,  //   enum     ||   BulletImage    || 탄막의 이미지 타입은?
                0.0f,                         //    float   ||  HomingRate     || 유도탄의 유도정도, 유도탄 안쓰면 0.0f
                false,                        //    bool    ||   isHoming      || 유도탄으로 발사할건가?
                0.05f + (i * 0.05f),          //    float    ||  MoveTime       || 탄환을 처음 어느 정도 움직일 것인가>
                0.8f + (i * 0.1f));           //    float    ||   StopTime      || 탄환을 어느 정도 멈추고 다시 진행할 것인가)

            newPs = new PatternPackage(newPattern, "B_Green", "E_3", "E_3", "M_1", m_moveList[0]);
            m_curPatternList.Add(newPs);
        }
    }
コード例 #16
0
 private void LeaveEscapeSequence()
 {
     _state &= ~PatternState.InEscapeSequence;
 }
コード例 #17
0
 public TonePatternDetector(IConfigurationReader configurationReader)
 {
     _targetFrequency1 = configurationReader.ReadToneFrequency1();
     _targetFrequency2 = configurationReader.ReadToneFrequency2();
     _state = PatternState.NoTargetFrequencyDetected;
 }
コード例 #18
0
ファイル: PatternParser.cs プロジェクト: nguyenkien/api
        private void EvalCommentsState(char token, bool escaped)
        {
            switch (commentsState)
            {
                case CommentsState.None:
                    if (!escaped)
                    {
                        if (token == '#')
                        {
                            if (patternState == PatternState.StartGroup)
                            {
                                commentsState = CommentsState.CommentsGroup;
                            }
                            else if (ignorePatternWhitespace)
                            {
                                commentsState = CommentsState.CommentsLine;
                            }
                            else
                            {
                                EvalGroupState(token, escaped);
                            }
                        }
                        else
                        {
                            EvalGroupState(token, escaped);
                        }
                    }
                    else
                    {
                        EvalGroupState(token, escaped);
                    }
                    break;
                case CommentsState.CommentsLine:
                    if(token == 'n' && escaped)
                    {
                        commentsState = CommentsState.None;
                    }
                    break;
                case CommentsState.CommentsGroup:
                    if (token == ')' && !escaped)
                    {
                        CommentsGroupFound(startGroupIndex, currentIndex+1);

                        groupLevel--;
                        patternState = previousPatternState;
                        startGroupIndex = previousStartGroupIndex;

                        commentsState = CommentsState.None;
                    }
                    break;
            }
        }
コード例 #19
0
 public void Reset()
 {
     _state = PatternState.NoTargetFrequencyDetected;
 }
コード例 #20
0
 private void OnOpenBracket() {
     if (InEscapeSequence) {
         AppendEscapedChar('[');
     } else if (InCharacterClass) {
         if (!CheckReplacePredefinedCharacterClass()) {
             // TODO - Ruby 1.9 allows "/[a[b]]/". Not sure what this means. So we really will need to keep nesting count.
             // We need the nesting count anyway for "/[a&&[b]]/"
             _sb.Append('[');
         }
     } else {
         _sb.Append('[');
         _state |= PatternState.InCharacterClass;
     }
 }
コード例 #21
0
ファイル: SearchState.cs プロジェクト: killbug2004/WSProf
		public void AddPatternState(PatternState newState)
		{
			m_patternStates.Add(newState, true);
		}
コード例 #22
0
 private void LeaveEscapeSequence() {
     _state &= ~PatternState.InEscapeSequence;
 }
コード例 #23
0
 protected override bool OnExecute(PatternState state)
 {
     state.AddToCollection(state.Enumerator.Current);
     state.Enumerator.MoveNext();
     return(true);
 }
コード例 #24
0
ファイル: MovePattern.cs プロジェクト: ClazzX1/BussStopOCD
	private void StartPlayerTurn()
	{
		if (OnPatternPlayerTurnStart != null)
			OnPatternPlayerTurnStart();
		
		patternState = PatternState.PLAYER_TURN_WAIT_INPUT;
		RestartPattern();
	}
コード例 #25
0
 private protected virtual IPattern ClonePattern()
 {
     return(PatternState.CloneNode());
 }
コード例 #26
0
ファイル: Sequence.cs プロジェクト: Seti-0/NSprak
        protected override bool OnExecute(PatternState state)
        {
            int lastEnumeratorIndex = state.Enumerator.Index;

            EndElement optionalEnd = null;

            for (int i = 0; i < Elements.Count; i++)
            {
                PatternElement element = Elements[i];

                // Special case for optional end elements
                // They can always be executed, but whether or not they
                // should be depends on if the next element can be.
                if (element is OptionalElement option &&
                    option.Value is EndElement endElement)
                {
                    optionalEnd = endElement;
                    continue;
                }

                if (!element.CanExecute(state))
                {
                    if (optionalEnd != null)
                    {
                        optionalEnd.Execute(state);
                        return(true);
                    }

                    return(false);
                }

                bool success = element.Execute(state);

                if (!success)
                {
                    return(false);
                }

                switch (state.Command)
                {
                case PatternCommand.Break:
                    state.ClearCommand();
                    return(true);

                case PatternCommand.Loopback:
                    state.ClearCommand();

                    if (state.Enumerator.Index == lastEnumeratorIndex)
                    {
                        throw new Exception("Possible infinite loopback detected");
                    }

                    // i will be incremented to 0 at the end of the iteration
                    // and the loop will begin again. I'm curious, though,
                    // is there a more readable way to designate that the loop
                    // should start over?
                    i = -1;
                    continue;

                case PatternCommand.End:
                    return(true);
                }

                // An optional end only applied to the CanExecute
                // until the first non-optional, non-command, element after it.
                if (!(element is OptionalElement))
                {
                    optionalEnd = null;
                }
            }

            return(true);
        }
コード例 #27
0
 public AttackState(PatternState patternStateEnemy)
 {
     enemy = patternStateEnemy;
 }
コード例 #28
0
ファイル: MovePattern.cs プロジェクト: ClazzX1/BussStopOCD
	public void PlayerDidMove(int moveIndex)
	{
		if (patternState == PatternState.PLAYER_TURN_WAIT_INPUT) 
		{
			bool isFail = false;
			currentFrame = -1;
			playerMoveFrame = 0;

			if (!beatManager.IsInTheBeat())
				isFail = true;			
			if (moveIndex != moveList[playerMoveFrame])
				isFail = true;

			++playerMoveFrame;

			if (isFail)
				PatternFailed();
			else
			{
				if (OnCorrectMove != null)
					OnCorrectMove ();
			}

			patternState = PatternState.PLAYER_TURN;
		}
		else if (patternState == PatternState.PLAYER_TURN) 
		{
			bool isFail = false;

			if (!beatManager.IsInTheBeat())
				isFail = true;
			if (playerMoveFrame >= moveList.Count || moveIndex != moveList[playerMoveFrame])
				isFail = true;

			++playerMoveFrame;

			if (isFail)
				PatternFailed();
			else
			{
				if (OnCorrectMove != null)
					OnCorrectMove ();
				if (playerMoveFrame >= moveList.Count)
				{
					PatternComplete ();
				}
			}
		}
	}
コード例 #29
0
ファイル: CommandElement.cs プロジェクト: Seti-0/NSprak
 protected override bool OnExecute(PatternState state)
 {
     state.SetCommand(Value);
     return(true);
 }