Пример #1
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyZombieWalk_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Zombie_Groan_01",
                                                          "Zombie_Groan_02", "Zombie_Groan_03", "Blank", "Blank", "Blank", "Blank", "Blank"));
            logicSet.AddAction(new DelayLogicAction(0.5f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet2.AddAction(new MoveLogicAction(m_target, false, 0f));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyZombieRise_Character", false, false));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Zombie_Rise"));
            logicSet2.AddAction(new PlayAnimationLogicAction(false));
            logicSet2.AddAction(new ChangePropertyLogicAction(this, "Risen", true));
            logicSet2.AddAction(new ChangePropertyLogicAction(this, "Lowered", false));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet3.AddAction(new MoveLogicAction(m_target, false, 0f));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyZombieLower_Character", false, false));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Zombie_Lower"));
            logicSet3.AddAction(new PlayAnimationLogicAction(false));
            logicSet3.AddAction(new ChangePropertyLogicAction(this, "Risen", false));
            logicSet3.AddAction(new ChangePropertyLogicAction(this, "Lowered", true));
            m_basicWalkLS.AddLogicSet(logicSet);
            m_basicRiseLowerLS.AddLogicSet(logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_basicWalkLS);
            logicBlocksToDispose.Add(m_basicRiseLowerLS);
            base.InitializeLogic();
        }
Пример #2
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyMimicShake_Character", false, false));
            logicSet.AddAction(new PlayAnimationLogicAction(false));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyMimicIdle_Character", true, false));
            logicSet.AddAction(new DelayLogicAction(3f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new GroundCheckLogicAction());
            logicSet2.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet2.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet2.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyMimicAttack_Character"));
            logicSet2.AddAction(new MoveDirectionLogicAction());
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "Chest_Open_Large"));
            logicSet2.AddAction(new JumpLogicAction());
            logicSet2.AddAction(new DelayLogicAction(0.3f));
            logicSet2.AddAction(new GroundCheckLogicAction());
            new LogicSet(this);
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2);
            logicBlocksToDispose.Add(m_generalBasicLB);
            base.InitializeLogic();
        }
Пример #3
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangePropertyLogicAction(this, "Shake", true));
            logicSet.AddAction(new DelayLogicAction(1f));
            logicSet.AddAction(new ChangePropertyLogicAction(this, "Shake", false));
            logicSet.AddAction(new DelayLogicAction(1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChaseLogicAction(m_target, Vector2.Zero, Vector2.Zero, true, 1f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChaseLogicAction(m_target, Vector2.Zero, Vector2.Zero, true, 1.75f));
            ThrowAdvancedProjectiles(logicSet3, true);
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChaseLogicAction(m_target, Vector2.Zero, Vector2.Zero, true, 1.75f));
            ThrowExpertProjectiles(logicSet4, true);
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChaseLogicAction(m_target, Vector2.Zero, Vector2.Zero, true, 1.25f));
            ThrowProjectiles(logicSet5, true);
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet3);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet4);
            m_generalMiniBossLB.AddLogicSet(logicSet, logicSet5);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            base.InitializeLogic();
            CollisionBoxes.Clear();
            CollisionBoxes.Add(new CollisionBox((int)(-18f * ScaleX), (int)(-24f * ScaleY), (int)(36f * ScaleX),
                                                (int)(48f * ScaleY), 2, this));
            CollisionBoxes.Add(new CollisionBox((int)(-15f * ScaleX), (int)(-21f * ScaleY), (int)(31f * ScaleX),
                                                (int)(44f * ScaleY), 1, this));
            if (Difficulty == GameTypes.EnemyDifficulty.MINIBOSS)
            {
                (GetChildAt(0) as SpriteObj).ChangeSprite("GiantPortrait_Sprite");
                Scale = new Vector2(2f, 2f);
                AddChild(new SpriteObj("Portrait" + CDGMath.RandomInt(0, 7) + "_Sprite")
                {
                    OverrideParentScale = true
                });
                CollisionBoxes.Clear();
                CollisionBoxes.Add(new CollisionBox(-124, -176, 250, 354, 2, this));
                CollisionBoxes.Add(new CollisionBox(-124, -176, 250, 354, 1, this));
            }
        }
Пример #4
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightIdle_Character"));
            logicSet.AddAction(new MoveDirectionLogicAction(0f));
            logicSet.AddAction(new DelayLogicAction(0.5f, 2f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightWalk_Character"));
            logicSet2.AddAction(new MoveDirectionLogicAction());
            logicSet2.AddAction(new DelayLogicAction(0.5f, 2f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet3.AddAction(new MoveDirectionLogicAction(0f));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnIn_Character", false, false));
            logicSet3.AddAction(new PlayAnimationLogicAction(1, 2));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "ShieldKnight_Turn"));
            logicSet3.AddAction(new PlayAnimationLogicAction(3, TotalFrames));
            logicSet3.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnOut_Character", true, false));
            logicSet3.AddAction(new MoveDirectionLogicAction());
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new MoveDirectionLogicAction(0f));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnIn_Character", false, false));
            logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.05f));
            logicSet4.AddAction(new PlayAnimationLogicAction(1, 2));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "ShieldKnight_Turn"));
            logicSet4.AddAction(new PlayAnimationLogicAction(3, TotalFrames));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnOut_Character", true, false));
            logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.09090909f));
            logicSet4.AddAction(new MoveDirectionLogicAction());
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet4);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            SetCooldownLogicBlock(m_generalBasicLB, 100);
            base.InitializeLogic();
        }
Пример #5
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f)));
            logicSet.AddAction(new DelayLogicAction(1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new MoveDirectionLogicAction(new Vector2(-1f, 0f)));
            logicSet2.AddAction(new DelayLogicAction(1f));
            m_basicAttackLB.AddLogicSet(logicSet2, logicSet);
            logicBlocksToDispose.Add(m_basicAttackLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            base.InitializeLogic();
        }
Пример #6
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyWargRun_Character"));
            logicSet.AddAction(new ChangePropertyLogicAction(this, "Chasing", true));
            logicSet.AddAction(new DelayLogicAction(1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet2.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyWargIdle_Character"));
            logicSet2.AddAction(new ChangePropertyLogicAction(this, "Chasing", false));
            logicSet2.AddAction(new DelayLogicAction(1f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new GroundCheckLogicAction());
            logicSet3.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Wolf_Attack"));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyWargPounce_Character"));
            logicSet3.AddAction(new DelayLogicAction(PounceDelay));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyWargJump_Character", false, false));
            logicSet3.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet3.AddAction(new MoveDirectionLogicAction());
            logicSet3.AddAction(new JumpLogicAction());
            logicSet3.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet3.AddAction(new GroundCheckLogicAction());
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyWargIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(PounceLandDelay));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyWargHit_Character", false, false));
            logicSet4.AddAction(new DelayLogicAction(0.2f));
            logicSet4.AddAction(new GroundCheckLogicAction());
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            m_wolfHitLB.AddLogicSet(logicSet4);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            logicBlocksToDispose.Add(m_wolfHitLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 40, 40, 20);
            base.InitializeLogic();
        }
Пример #7
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyHorseRun_Character"));
            logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(-1f, 0f)));
            logicSet.AddAction(new DelayLogicAction(0.5f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyHorseRun_Character"));
            logicSet2.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f)));
            logicSet2.AddAction(new DelayLogicAction(0.5f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyHorseTurn_Character"));
            logicSet3.AddAction(new MoveDirectionLogicAction(new Vector2(-1f, 0f)));
            logicSet3.AddAction(new DelayLogicAction(0.25f));
            logicSet3.AddAction(new ChangePropertyLogicAction(this, "Flip", SpriteEffects.None));
            logicSet3.AddAction(new RunFunctionLogicAction(this, "ResetTurn"));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyHorseTurn_Character"));
            logicSet4.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f)));
            logicSet4.AddAction(new DelayLogicAction(0.25f));
            logicSet4.AddAction(new ChangePropertyLogicAction(this, "Flip", SpriteEffects.FlipHorizontally));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ResetTurn"));
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyHorseRun_Character"));
            logicSet5.AddAction(new MoveDirectionLogicAction(new Vector2(-1f, 0f)));
            ThrowStandingProjectiles(logicSet5, true);
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyHorseRun_Character"));
            logicSet6.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f)));
            ThrowStandingProjectiles(logicSet6, true);
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2);
            m_turnLB.AddLogicSet(logicSet4, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_turnLB);
            m_gallopSound = new FrameSoundObj(this, m_target, 2, "Enemy_Horse_Gallop_01", "Enemy_Horse_Gallop_02",
                                              "Enemy_Horse_Gallop_03");
            base.InitializeLogic();
        }
Пример #8
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEnergonWalk_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEnergonWalk_Character"));
            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEnergonAttack_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeAttack"));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "FireCurrentTypeProjectile"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character"));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEnergonAttack_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeAttack"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "SwitchRandomType"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character"));
            logicSet5.AddAction(new DelayLogicAction(2f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet5);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 0, 0, 100);
            base.InitializeLogic();
        }
Пример #9
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyChickenRun_Character"));
            logicSet.AddAction(new ChangePropertyLogicAction(this, "Flip", SpriteEffects.FlipHorizontally));
            logicSet.AddAction(new MoveDirectionLogicAction());
            logicSet.AddAction(new DelayLogicAction(0.5f, 1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyChickenRun_Character"));
            logicSet2.AddAction(new ChangePropertyLogicAction(this, "Flip", SpriteEffects.None));
            logicSet2.AddAction(new MoveDirectionLogicAction());
            logicSet2.AddAction(new DelayLogicAction(0.5f, 1f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2);
            logicBlocksToDispose.Add(m_generalBasicLB);
            base.InitializeLogic();
        }
Пример #10
0
        protected override void InitializeLogic()
        {
            var rotation = Rotation;
            var num      = ParseTagToFloat("delay");
            var num2     = ParseTagToFloat("speed");

            if (num == 0f)
            {
                Console.WriteLine("ERROR: Turret set with delay of 0. Shoots too fast.");
                num = 10000f;
            }
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "TurretProjectile_Sprite",
                SourceAnchor        = Vector2.Zero,
                Target              = null,
                Speed               = new Vector2(num2, num2),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                Angle               = new Vector2(rotation, rotation),
                CollidesWithTerrain = true,
                Scale               = ProjectileScale
            };
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Parallel);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                          "Turret_Attack03"));
            logicSet.AddAction(new DelayLogicAction(num));
            m_generalBasicLB.AddLogicSet(logicSet);
            m_generalAdvancedLB.AddLogicSet(logicSet);
            m_generalExpertLB.AddLogicSet(logicSet);
            m_generalMiniBossLB.AddLogicSet(logicSet);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #11
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(1.25f, 2.75f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(1.25f, 2.75f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new StopAnimationLogicAction());
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(1f, 1.5f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 40, 40, 20);
            base.InitializeLogic();
        }
Пример #12
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new MoveLogicAction(m_target, true));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(0.5f, 1.25f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.5f, 1.25f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ResizeProjectile", true));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ResizeProjectile", false));
            logicSet4.AddAction(new DelayLogicAction(3f));
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "FireRandomProjectile"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "FireRandomProjectile"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "FireRandomProjectile"));
            logicSet5.AddAction(new DelayLogicAction(1.3f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet5);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 40, 40, 20);
            base.InitializeLogic();
        }
Пример #13
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyGhostChase_Character"));
            logicSet.AddAction(new ChaseLogicAction(m_target, true, 2f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyGhostChase_Character"));
            logicSet2.AddAction(new ChaseLogicAction(m_target, false, 1f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyGhostIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(1f, 2f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyGhostDashPrep_Character"));
            logicSet5.AddAction(new DelayLogicAction(DashDelay));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "TurnToPlayer", null));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyGhostDash_Character"));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, DashSpeed));
            logicSet5.AddAction(new DelayLogicAction(DashDuration));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyGhostIdle_Character"));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.AddAction(new DelayLogicAction(0.75f));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyGhostDashPrep_Character"));
            logicSet6.AddAction(new DelayLogicAction(DashDelay));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "TurnToPlayer", null));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyGhostDash_Character"));
            ThrowProjectiles(logicSet6, true);
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, DashSpeed));
            logicSet6.AddAction(new DelayLogicAction(DashDuration));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyGhostIdle_Character"));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.AddAction(new DelayLogicAction(0.75f));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyGhostBossIdle_Character"));
            logicSet7.AddAction(new ChaseLogicAction(m_target, true, 2f));
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemyGhostBossIdle_Character"));
            logicSet8.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet8.AddAction(new DelayLogicAction(1f, 2f));
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemyGhostBossDashPrep_Character"));
            logicSet9.AddAction(new DelayLogicAction(DashDelay));
            logicSet9.AddAction(new RunFunctionLogicAction(this, "TurnToPlayer", null));
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemyGhostBossIdle_Character"));
            logicSet9.AddAction(new RunFunctionLogicAction(this, "ChangeFlameDirection"));
            logicSet9.AddAction(new MoveLogicAction(m_target, true, DashSpeed));
            logicSet9.AddAction(new DelayLogicAction(DashDuration));
            logicSet9.AddAction(new ChangePropertyLogicAction(_objectList[0], "Rotation", 0));
            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet9.AddAction(new DelayLogicAction(0.75f));
            logicSet5.Tag = 2;
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet5);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet5);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet6);
            m_generalMiniBossLB.AddLogicSet(logicSet7, logicSet2, logicSet8, logicSet4, logicSet9);
            m_generalNeoLB.AddLogicSet(logicSet7, logicSet2, logicSet8, logicSet4, logicSet9);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalNeoLB);
            var arg_600_1 = m_generalBasicLB;
            var array     = new int[5];

            array[0] = 100;
            SetCooldownLogicBlock(arg_600_1, array);
            base.InitializeLogic();
        }
Пример #14
0
        protected override void InitializeLogic()
        {
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "EyeballProjectile_Sprite",
                SourceAnchor        = Vector2.Zero,
                Target              = m_target,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = false,
                Scale               = ProjectileScale
            };
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character"));
            logicSet.AddAction(new DelayLogicAction(FireballDelay));
            logicSet.AddAction(new Play3DSoundLogicAction(this, m_target, "Eyeball_ProjectileAttack"));
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false));
            logicSet.AddAction(new DelayLogicAction(1f, 3f));
            logicSet.Tag = 2;
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character"));
            logicSet2.AddAction(new DelayLogicAction(FireballDelay));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new DelayLogicAction(0.15f));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new DelayLogicAction(0.15f));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new DelayLogicAction(0.15f));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false));
            logicSet2.AddAction(new DelayLogicAction(0.75f, 2f));
            logicSet2.Tag = 2;
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character"));
            logicSet3.AddAction(new DelayLogicAction(FireballDelay));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet3.AddAction(new DelayLogicAction(0.1f));
            ThrowThreeProjectiles(logicSet3);
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false));
            logicSet3.AddAction(new DelayLogicAction(1f, 3f));
            logicSet3.Tag = 2;
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character"));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "LockEyeball"));
            logicSet4.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupilFire_Sprite"));
            logicSet4.AddAction(new DelayLogicAction(FireballDelay));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet4.AddAction(new DelayLogicAction(0.1f));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ThrowCardinalProjectiles", 0, true, 0));
            logicSet4.AddAction(new DelayLogicAction(3.15f));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false));
            logicSet4.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupil_Sprite"));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball"));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "LockEyeball"));
            logicSet5.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupilFire_Sprite"));
            logicSet5.AddAction(new DelayLogicAction(FireballDelay));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet5.AddAction(new DelayLogicAction(0.1f));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "ThrowCardinalProjectilesNeo", 0, true, 0));
            logicSet5.AddAction(new DelayLogicAction(3f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false));
            logicSet5.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupil_Sprite"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball"));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character"));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "LockEyeball"));
            logicSet6.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupilFire_Sprite"));
            logicSet6.AddAction(new DelayLogicAction(FireballDelay));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet6.AddAction(new DelayLogicAction(0.1f));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "ThrowSprayProjectiles", true));
            logicSet6.AddAction(new DelayLogicAction(1.6f));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "ThrowSprayProjectiles", true));
            logicSet6.AddAction(new DelayLogicAction(1.6f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false));
            logicSet6.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupil_Sprite"));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball"));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character"));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "LockEyeball"));
            logicSet7.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupilFire_Sprite"));
            logicSet7.AddAction(new DelayLogicAction(FireballDelay));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, m_target, "EyeballFire1"));
            logicSet7.AddAction(new DelayLogicAction(0.1f));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles"));
            logicSet7.AddAction(new DelayLogicAction(0.575f));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles"));
            logicSet7.AddAction(new DelayLogicAction(0.575f));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles"));
            logicSet7.AddAction(new DelayLogicAction(0.575f));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles"));
            logicSet7.AddAction(new DelayLogicAction(0.575f));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles"));
            logicSet7.AddAction(new DelayLogicAction(0.575f));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false));
            logicSet7.AddAction(new RunFunctionLogicAction(m_pupil, "ChangeSprite", "EnemyEyeballBossPupil_Sprite"));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball"));
            logicSet7.Tag = 2;
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new DelayLogicAction(0.2f, 0.5f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet8);
            m_generalAdvancedLB.AddLogicSet(logicSet2, logicSet8);
            m_generalExpertLB.AddLogicSet(logicSet3, logicSet8);
            m_generalMiniBossLB.AddLogicSet(logicSet4, logicSet6, logicSet7, logicSet8);
            m_generalCooldownLB.AddLogicSet(logicSet8);
            m_generalNeoLB.AddLogicSet(logicSet5, logicSet6, logicSet7, logicSet8);
            logicBlocksToDispose.Add(m_generalNeoLB);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 100);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #15
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightWalk_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(0.2f, 1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightWalk_Character"));
            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(0.2f, 1f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.2f, 1f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet4.AddAction(new DelayLogicAction(AttackThrustDelay));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet4.AddAction(new MoveDirectionLogicAction(AttackThrustSpeed));
            logicSet4.AddAction(new RunFunctionLogicAction(m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect",
                                                           this, 20, 0.3f));
            logicSet4.AddAction(new PlayAnimationLogicAction("AttackStart", "End"), Types.Sequence.Parallel);
            logicSet4.AddAction(new DelayLogicAction(AttackThrustDuration));
            logicSet4.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet4.AddAction(new DelayLogicAction(0.3f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet5.AddAction(new DelayLogicAction(AttackThrustDelayExpert));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet5.AddAction(new MoveDirectionLogicAction(AttackThrustSpeedExpert));
            logicSet5.AddAction(new RunFunctionLogicAction(m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect",
                                                           this, 20, 0.3f));
            logicSet5.AddAction(new PlayAnimationLogicAction("AttackStart", "End"), Types.Sequence.Parallel);
            logicSet5.AddAction(new DelayLogicAction(AttackThrustDurationExpert));
            logicSet5.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet5.AddAction(new DelayLogicAction(0.3f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(AttackThrustDelayMiniBoss));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet6.AddAction(new MoveDirectionLogicAction(AttackThrustSpeedMiniBoss));
            logicSet6.AddAction(new RunFunctionLogicAction(m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect",
                                                           this, 20, 0.3f));
            logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End"), Types.Sequence.Parallel);
            logicSet6.AddAction(new DelayLogicAction(AttackThrustDurationMiniBoss));
            logicSet6.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet6.AddAction(new MoveDirectionLogicAction(AttackThrustSpeedMiniBoss));
            logicSet6.AddAction(new RunFunctionLogicAction(m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect",
                                                           this, 20, 0.3f));
            logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End"), Types.Sequence.Parallel);
            logicSet6.AddAction(new DelayLogicAction(AttackThrustDurationMiniBoss));
            logicSet6.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet6.AddAction(new MoveDirectionLogicAction(AttackThrustSpeedMiniBoss));
            logicSet6.AddAction(new RunFunctionLogicAction(m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect",
                                                           this, 20, 0.3f));
            logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End"), Types.Sequence.Parallel);
            logicSet6.AddAction(new DelayLogicAction(AttackThrustDurationMiniBoss));
            logicSet6.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet6.AddAction(new DelayLogicAction(0.3f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var projectileData = new ProjectileData(this)
            {
                SpriteName    = "EnemySpearKnightWave_Sprite",
                SourceAnchor  = new Vector2(30f, 0f),
                Target        = null,
                Speed         = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted    = false,
                RotationSpeed = 0f,
                Damage        = Damage,
                AngleOffset   = 0f,
                Angle         = new Vector2(0f, 0f),
                Scale         = ProjectileScale
            };
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet7.AddAction(new DelayLogicAction(AttackProjectileDelay));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnight_Projectile"));
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new DelayLogicAction(0.3f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet7.Tag = 2;
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet8.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet8.AddAction(new DelayLogicAction(AttackProjectileExpertDelay));
            ThrowThreeProjectiles(logicSet8);
            logicSet8.AddAction(new DelayLogicAction(0.3f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet8.Tag = 2;
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet9.AddAction(new DelayLogicAction(AttackProjectileMinibossDelay));
            logicSet9.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnight_Projectile"));
            logicSet9.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f));
            ThrowTwoProjectiles(logicSet9);
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet9.AddAction(new DelayLogicAction(0.05f));
            ThrowThreeProjectiles(logicSet9);
            logicSet9.AddAction(new DelayLogicAction(0.05f));
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet9.AddAction(new DelayLogicAction(0.05f));
            ThrowTwoProjectiles(logicSet9);
            logicSet9.AddAction(new DelayLogicAction(0.5f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet9.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f));
            logicSet9.Tag = 2;
            var logicSet10 = new LogicSet(this);

            logicSet10.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet10.AddAction(new DelayLogicAction(AttackProjectileMinibossDelay));
            logicSet10.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnight_Projectile"));
            logicSet10.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f));
            ThrowThreeProjectiles(logicSet10);
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet10.AddAction(new DelayLogicAction(0.05f));
            ThrowTwoProjectiles(logicSet10);
            logicSet10.AddAction(new DelayLogicAction(0.05f));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character"));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet10.AddAction(new DelayLogicAction(0.05f));
            ThrowThreeProjectiles(logicSet10);
            logicSet10.AddAction(new DelayLogicAction(0.5f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet10.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f));
            logicSet10.Tag = 2;
            var logicSet11 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character"));
            logicSet11.AddAction(new MoveLogicAction(m_target, false, 300f));
            logicSet11.AddAction(new JumpLogicAction());
            logicSet11.AddAction(new DelayLogicAction(0.3f));
            logicSet11.AddAction(new GroundCheckLogicAction());
            logicSet11.AddAction(new JumpLogicAction());
            ThrowRapidProjectiles(logicSet11);
            ThrowRapidProjectiles(logicSet11);
            ThrowRapidProjectiles(logicSet11);
            logicSet11.AddAction(new GroundCheckLogicAction());
            logicSet11.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet11.AddAction(new DelayLogicAction(0.1f));
            logicSet11.AddAction(new JumpLogicAction());
            ThrowRapidProjectiles(logicSet11);
            ThrowRapidProjectiles(logicSet11);
            ThrowRapidProjectiles(logicSet11);
            logicSet11.AddAction(new GroundCheckLogicAction());
            logicSet11.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet11.Tag = 2;
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet7);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet7);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5, logicSet8);
            m_generalMiniBossLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet6, logicSet9, logicSet10);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 55, 25, 20);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #16
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character"));
            logicSet.AddAction(new ChaseLogicAction(m_target, new Vector2(-255f, -175f), new Vector2(255f, -75f), true,
                                                    MoveDuration));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character"));
            logicSet2.AddAction(new ChaseLogicAction(m_target, false, MoveDuration));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.5f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell"));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "SummonFireball", null));
            logicSet4.AddAction(new DelayLogicAction(SpellDelay));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet4.AddAction(new DelayLogicAction(SpellInterval));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet4.AddAction(new DelayLogicAction(SpellInterval));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ResetFireball", null));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet4.AddAction(new DelayLogicAction(0.5f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell"));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "SummonFireball", null));
            logicSet5.AddAction(new DelayLogicAction(SpellDelay));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet5.AddAction(new DelayLogicAction(SpellInterval));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet5.AddAction(new DelayLogicAction(SpellInterval));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet5.AddAction(new DelayLogicAction(SpellInterval));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet5.AddAction(new DelayLogicAction(SpellInterval));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "ResetFireball", null));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet5.AddAction(new DelayLogicAction(0.5f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell"));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "SummonFireball", null));
            logicSet6.AddAction(new DelayLogicAction(SpellDelay));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet6.AddAction(new DelayLogicAction(SpellInterval));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet6.AddAction(new DelayLogicAction(SpellInterval));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "ResetFireball", null));
            logicSet6.AddAction(new RunFunctionLogicAction(this, "CastFireball"));
            logicSet6.AddAction(new DelayLogicAction(0.5f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyWizardTeleportOut_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "BeforeTeleport"));
            logicSet7.AddAction(new DelayLogicAction(TeleportDelay));
            logicSet7.AddAction(new PlayAnimationLogicAction("TeleportStart", "End"));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", false));
            logicSet7.AddAction(new DelayLogicAction(TeleportDuration));
            logicSet7.AddAction(new TeleportLogicAction(m_target, new Vector2(-400f, -400f), new Vector2(400f, 400f)));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", true));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyWizardTeleportIn_Character", true, false));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet7.AddAction(new DelayLogicAction(0.5f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet7);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5, logicSet7);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet6, logicSet7);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            var arg_738_1 = m_generalCooldownLB;
            var array     = new int[3];

            array[0] = 100;
            SetCooldownLogicBlock(arg_738_1, array);
            base.InitializeLogic();
        }
Пример #17
0
        protected override void InitializeLogic()
        {
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "PlantProjectile_Sprite",
                SourceAnchor        = Vector2.Zero,
                Target              = null,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = true,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = true,
                Scale               = ProjectileScale
            };
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Squirm_01",
                                                          "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03"));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false));
            logicSet.AddAction(new PlayAnimationLogicAction(1, TotalFrames - 1));
            logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Attack_01"));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-105f, -105f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet.AddAction(new PlayAnimationLogicAction(TotalFrames - 1, TotalFrames));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet.Tag = 2;
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false));
            logicSet2.AddAction(new PlayAnimationLogicAction(1, TotalFrames - 1));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Attack_01"));
            projectileData.Angle = new Vector2(-60f, -60f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-105f, -105f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-120f, -120f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new PlayAnimationLogicAction(TotalFrames - 1, TotalFrames));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet2.Tag = 2;
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false));
            logicSet3.AddAction(new PlayAnimationLogicAction(1, TotalFrames - 1));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Attack_01"));
            projectileData.Angle = new Vector2(-45f, -45f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-60f, -60f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-85f, -85f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-95f, -95f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-105f, -105f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-120f, -120f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-135f, -135f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new PlayAnimationLogicAction(TotalFrames - 1, TotalFrames));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet3.Tag = 2;
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction(1, TotalFrames - 1));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Attack_01"));
            projectileData.Angle = new Vector2(-60f, -60f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-87f, -87f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-93f, -93f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-105f, -105f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-120f, -120f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet4.AddAction(new PlayAnimationLogicAction(TotalFrames - 1, TotalFrames));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new DelayLogicAction(0.25f));
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Squirm_01",
                                                           "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank"));
            logicSet6.AddAction(new MoveLogicAction(m_target, true));
            logicSet6.AddAction(new DelayLogicAction(0.25f, 0.45f));
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Squirm_01",
                                                           "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank"));
            logicSet7.AddAction(new MoveLogicAction(m_target, false));
            logicSet7.AddAction(new DelayLogicAction(0.25f, 0.45f));
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Enemy_Venus_Squirm_01",
                                                           "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank"));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character"));
            logicSet8.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet8.AddAction(new DelayLogicAction(0.25f, 0.45f));
            m_generalBasicLB.AddLogicSet(logicSet);
            m_generalAdvancedLB.AddLogicSet(logicSet2);
            m_generalExpertLB.AddLogicSet(logicSet3);
            m_generalMiniBossLB.AddLogicSet(logicSet4);
            m_generalCooldownLB.AddLogicSet(logicSet5);
            m_generalCooldownExpertLB.AddLogicSet(logicSet6, logicSet7, logicSet8);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            logicBlocksToDispose.Add(m_generalCooldownExpertLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 100);
            if (Difficulty == GameTypes.EnemyDifficulty.MINIBOSS)
            {
                var arg_AA5_1 = m_generalCooldownExpertLB;
                var array     = new int[3];
                array[0] = 50;
                array[1] = 50;
                SetCooldownLogicBlock(arg_AA5_1, array);
            }
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #18
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightWalk_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightWalk_Character"));
            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(1f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.5f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet4.AddAction(new DelayLogicAction(SlashDelay));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet5.AddAction(new DelayLogicAction(SlashTripleDelay));
            logicSet5.AddAction(new MoveDirectionLogicAction(TripleAttackSpeed));
            logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0166666675f));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet5.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0833333358f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var data = new ProjectileData(this)
            {
                SpriteName          = "EnemySpearKnightWave_Sprite",
                SourceAnchor        = new Vector2(60f, 0f),
                Target              = null,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                Angle               = new Vector2(0f, 0f),
                CollidesWithTerrain = true,
                Scale               = ProjectileScale
            };
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(SlashDelay));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet6.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet7.AddAction(new DelayLogicAction(SlashTripleDelay));
            logicSet7.AddAction(new MoveDirectionLogicAction(TripleAttackSpeed));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.008333334f));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SwordKnight_Attack_v02"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new MoveLogicAction(null, true, 0f));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0833333358f));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet7.Tag = 2;
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false));
            logicSet8.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet8.AddAction(new DelayLogicAction(SlashDelay));
            logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnightAttack1"));
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet8.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet8.Tag = 2;
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet5);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4, logicSet7);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            switch (Difficulty)
            {
            case GameTypes.EnemyDifficulty.BASIC:
                SetCooldownLogicBlock(m_generalCooldownLB, 14, 11, 75);
                break;

            case GameTypes.EnemyDifficulty.ADVANCED:
            case GameTypes.EnemyDifficulty.EXPERT:
                SetCooldownLogicBlock(m_generalCooldownLB, 40, 30, 30);
                break;

            case GameTypes.EnemyDifficulty.MINIBOSS:
            {
                var arg_9C4_1 = m_generalCooldownLB;
                var array     = new int[3];
                array[0] = 100;
                SetCooldownLogicBlock(arg_9C4_1, array);
                break;
            }
            }
            base.InitializeLogic();
        }
Пример #19
0
        protected override void InitializeLogic()
        {
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "TurretProjectile_Sprite",
                SourceAnchor        = Vector2.Zero,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = true,
                Scale               = ProjectileScale
            };
            var logicSet = new LogicSet(this);

            projectileData.Angle = new Vector2(0f, 0f);
            logicSet.AddAction(new RunFunctionLogicAction(this, "FireAnimation"));
            logicSet.AddAction(new DelayLogicAction(FireballDelay));
            logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Eyeball_ProjectileAttack"));
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(90f, 90f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(180f, 180f);
            logicSet.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character"));
            logicSet.AddAction(new DelayLogicAction(1f, 1f));
            logicSet.Tag = 2;
            var logicSet2 = new LogicSet(this);

            projectileData.Angle = new Vector2(45f, 45f);
            logicSet2.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet2.AddAction(new RunFunctionLogicAction(this, "FireAnimation"));
            logicSet2.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet2.AddAction(new DelayLogicAction(FireballDelay));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Eyeball_ProjectileAttack"));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-45f, -45f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(135f, 135f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-135f, -135f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(90f, 90f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(180f, 180f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(0f, 0f);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character"));
            logicSet2.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet2.AddAction(new DelayLogicAction(1f, 1f));
            logicSet2.Tag = 2;
            var logicSet3 = new LogicSet(this);

            projectileData.Angle = new Vector2(45f, 45f);
            projectileData.CollidesWithTerrain = false;
            projectileData.SpriteName          = "GhostProjectile_Sprite";
            logicSet3.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet3.AddAction(new RunFunctionLogicAction(this, "FireAnimation"));
            logicSet3.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet3.AddAction(new DelayLogicAction(FireballDelay));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Eyeball_ProjectileAttack"));
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-45f, -45f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(135f, 135f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-135f, -135f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(90f, 90f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(180f, 180f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(0f, 0f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character"));
            logicSet3.AddAction(new DelayLogicAction(1f, 1f));
            logicSet3.AddAction(new RunFunctionLogicAction(this, "FireAnimation"));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Eyeball_ProjectileAttack"));
            projectileData.Angle = new Vector2(25f, 25f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-25f, -25f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(115f, 115f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-115f, -115f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-70f, -70f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(70f, 70f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(160f, 160f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-160f, -160f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character"));
            logicSet3.AddAction(new ChangePropertyLogicAction(_objectList[1], "Rotation", 45));
            logicSet3.AddAction(new DelayLogicAction(1.25f, 1.25f));
            logicSet3.Tag = 2;
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new DelayLogicAction(0.5f, 0.5f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet4);
            m_generalAdvancedLB.AddLogicSet(logicSet2, logicSet4);
            m_generalExpertLB.AddLogicSet(logicSet3, logicSet4);
            m_generalMiniBossLB.AddLogicSet(logicSet2, logicSet4);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #20
0
        protected override void InitializeLogic()
        {
            var arg_06_0 = Rotation;
            var num      = ParseTagToFloat("delay");
            var num2     = ParseTagToFloat("speed");

            if (num == 0f)
            {
                Console.WriteLine("ERROR: Turret set with delay of 0. Shoots too fast.");
                num = FireDelay;
            }
            if (num2 == 0f)
            {
                num2 = ProjectileSpeed;
            }
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "HomingProjectile_Sprite",
                SourceAnchor        = new Vector2(35f, 0f),
                Speed               = new Vector2(num2, num2),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = true,
                Scale               = ProjectileScale,
                FollowArc           = false,
                ChaseTarget         = false,
                TurnSpeed           = 0f,
                StartingRotation    = 0f,
                Lifespan            = 10f
            };
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new DelayLogicAction(0.5f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Parallel);
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new RunFunctionLogicAction(this, "FireProjectileEffect"));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                           "Turret_Attack03"));
            logicSet2.AddAction(new DelayLogicAction(num));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Parallel);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                           "Turret_Attack03"));
            logicSet3.AddAction(new DelayLogicAction(0.1f));
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                           "Turret_Attack03"));
            logicSet3.AddAction(new DelayLogicAction(0.1f));
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                           "Turret_Attack03"));
            logicSet3.AddAction(new RunFunctionLogicAction(this, "FireProjectileEffect"));
            logicSet3.AddAction(new DelayLogicAction(num));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Parallel);
            projectileData.ChaseTarget = true;
            projectileData.Target      = m_target;
            projectileData.TurnSpeed   = 0.02f;
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "Turret_Attack01", "Turret_Attack02",
                                                           "Turret_Attack03"));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "FireProjectileEffect"));
            logicSet4.AddAction(new DelayLogicAction(num));
            m_generalBasicLB.AddLogicSet(logicSet2, logicSet);
            m_generalAdvancedLB.AddLogicSet(logicSet3, logicSet);
            m_generalExpertLB.AddLogicSet(logicSet4, logicSet);
            m_generalMiniBossLB.AddLogicSet(logicSet2, logicSet);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #21
0
        protected override void InitializeLogic()
        {
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "BoneProjectile_Sprite",
                SourceAnchor        = new Vector2(20f, -20f),
                Target              = null,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = true,
                RotationSpeed       = 10f,
                Damage              = Damage,
                AngleOffset         = 0f,
                Angle               = new Vector2(-72f, -72f),
                CollidesWithTerrain = false,
                Scale               = ProjectileScale
            };
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemySkeletonWalk_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySkeletonWalk_Character"));
            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySkeletonIdle_Character"));
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new StopAnimationLogicAction());
            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new DelayLogicAction(0.5f, 1f));
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet5.AddAction(new DelayLogicAction(AttackDelay));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet5.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(AttackDelay));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            projectileData.Angle = new Vector2(-85f, -85f);
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet6.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet6.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySkeletonJump_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet7.AddAction(new DelayLogicAction(JumpDelay));
            logicSet7.AddAction(new JumpLogicAction());
            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            projectileData.Angle = new Vector2(-72f, -72f);
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet7.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet7.Tag = 2;
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySkeletonJump_Character", false, false));
            logicSet8.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet8.AddAction(new DelayLogicAction(JumpDelay));
            logicSet8.AddAction(new JumpLogicAction());
            logicSet8.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet8.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            projectileData.Angle = new Vector2(-85f, -85f);
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet8.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet8.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet8.Tag = 2;
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet9.AddAction(new DelayLogicAction(AttackDelay));
            logicSet9.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            ThrowThreeProjectiles(logicSet9);
            logicSet9.AddAction(new PlayAnimationLogicAction("Attack", "End"), Types.Sequence.Parallel);
            logicSet9.AddAction(new DelayLogicAction(0.15f));
            ThrowThreeProjectiles(logicSet9);
            logicSet9.AddAction(new DelayLogicAction(0.15f));
            ThrowThreeProjectiles(logicSet9);
            logicSet9.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet9.Tag = 2;
            var logicSet10 = new LogicSet(this);

            logicSet10.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySkeletonJump_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet10.AddAction(new DelayLogicAction(JumpDelay));
            logicSet10.AddAction(new JumpLogicAction());
            logicSet10.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet10.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            ThrowThreeProjectiles(logicSet10);
            logicSet10.AddAction(new PlayAnimationLogicAction("Attack", "End"), Types.Sequence.Parallel);
            logicSet10.AddAction(new DelayLogicAction(0.15f));
            ThrowThreeProjectiles(logicSet10);
            logicSet10.AddAction(new DelayLogicAction(0.15f));
            ThrowThreeProjectiles(logicSet10);
            logicSet10.AddAction(new DelayLogicAction(0.2f, 0.4f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet10.Tag = 2;
            var logicSet11 = new LogicSet(this);

            logicSet11.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet11.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet11.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet11.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet11.AddAction(new DelayLogicAction(AttackDelay));
            projectileData.Angle         = new Vector2(-89f, -35f);
            projectileData.RotationSpeed = 8f;
            projectileData.SourceAnchor  = new Vector2(5f, -20f);
            logicSet11.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            logicSet11.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet11.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet11.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet11.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet11.AddAction(new ChangeSpriteLogicAction("EnemySkeletonIdle_Character"));
            logicSet11.AddAction(new DelayLogicAction(0.4f, 0.9f));
            var logicSet12 = new LogicSet(this);

            logicSet12.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet12.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet12.AddAction(new ChangeSpriteLogicAction("EnemySkeletonAttack_Character", false, false));
            logicSet12.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet12.AddAction(new DelayLogicAction(AttackDelay));
            logicSet12.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SkeletonHit1"));
            logicSet12.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet12.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet12.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet12.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet12.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet12.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet12.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet12.AddAction(new DelayLogicAction(0.15f, 0.35f));
            logicSet12.AddAction(new ChangeSpriteLogicAction("EnemySkeletonIdle_Character"));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5, logicSet6);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5, logicSet6, logicSet7, logicSet8);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet9, logicSet10);
            m_generalMiniBossLB.AddLogicSet(logicSet, logicSet2, logicSet4, logicSet11, logicSet12);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            SetCooldownLogicBlock(m_generalCooldownLB, 30, 30, 40);
            projectileData.Dispose();
            base.InitializeLogic();
        }
Пример #22
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherIdle_Character"));
            logicSet.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet.AddAction(new DelayLogicAction(0.2f, 0.75f));
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "ArrowProjectile_Sprite",
                SourceAnchor        = new Vector2(10f, -20f),
                Target              = null,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = true,
                RotationSpeed       = 0f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = true,
                Scale               = ProjectileScale,
                FollowArc           = true
            };
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-20f, -20f);
            logicSet2.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet2.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet2.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet2.AddAction(new DelayLogicAction(m_fireDelay));
            logicSet2.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet2.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet2.AddAction(new DelayLogicAction(0.5f));
            logicSet2.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet2.AddAction(new DelayLogicAction(0.5f));
            logicSet2.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-20f, -20f);
            logicSet3.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet3.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet3.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet3.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-20f, -20f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-50f, -50f);
            logicSet3.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet3.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet3.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet3.AddAction(new DelayLogicAction(0.5f));
            logicSet3.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet3.AddAction(new DelayLogicAction(0.5f));
            logicSet3.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-35f, -35f);
            logicSet4.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet4.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-35f, -35f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-15f, -15f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-55f, -55f);
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet4.AddAction(new DelayLogicAction(0.5f));
            logicSet4.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet4.AddAction(new DelayLogicAction(0.5f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-50f, -50f);
            logicSet5.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet5.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-50f, -50f);
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet5.AddAction(new DelayLogicAction(0.5f));
            logicSet5.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet5.AddAction(new DelayLogicAction(0.5f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-50f, -50f);
            logicSet6.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet6.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-50f, -50f);
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet6.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet6.AddAction(new DelayLogicAction(0.5f));
            logicSet6.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet6.AddAction(new DelayLogicAction(0.5f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-60f, -60f);
            logicSet7.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet7.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-60f, -60f);
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-75f, -75f);
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-45f, -45f);
            logicSet7.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet7.AddAction(new DelayLogicAction(0.5f));
            logicSet7.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet7.AddAction(new DelayLogicAction(0.5f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-70f, -70f);
            logicSet8.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet8.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet8.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet8.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-70f, -70f);
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet8.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet8.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet8.AddAction(new DelayLogicAction(0.5f));
            logicSet8.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet8.AddAction(new DelayLogicAction(0.5f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-55f, -55f);
            logicSet9.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet9.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet9.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet9.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-55f, -55f);
            logicSet9.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-85f, -85f);
            logicSet9.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet9.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                           "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet9.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet9.AddAction(new DelayLogicAction(0.5f));
            logicSet9.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet9.AddAction(new DelayLogicAction(0.5f));
            logicSet9.AddAction(new LockFaceDirectionLogicAction(false));
            var logicSet10 = new LogicSet(this);

            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySkeletonArcherAttack_Character", false, false));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet10.AddAction(new RunFunctionLogicAction(this, "AngleArcher", projectileData.Angle.X));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet10.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Load"));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "BeginAttack"));
            logicSet10.AddAction(new DelayLogicAction(m_fireDelay));
            projectileData.Angle = new Vector2(-90f, -90f);
            logicSet10.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-85f, -85f);
            logicSet10.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.Angle = new Vector2(-95f, -95f);
            logicSet10.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet10.AddAction(new Play3DSoundLogicAction(this, m_target, "SkeletonArcher_Attack_01",
                                                            "SkeletonArcher_Attack_02", "SkeletonArcher_Attack_03"));
            logicSet10.AddAction(new PlayAnimationLogicAction("Attack", "EndAttack"));
            logicSet10.AddAction(new DelayLogicAction(0.5f));
            logicSet10.AddAction(new ChangePropertyLogicAction(GetChildAt(1), "Rotation", 0));
            logicSet10.AddAction(new DelayLogicAction(0.5f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet8, logicSet5);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet3, logicSet9, logicSet6);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet4, logicSet10, logicSet7);
            projectileData.Dispose();
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            _objectList[1].TextureColor = TintablePart.TextureColor;
            base.InitializeLogic();
        }
Пример #23
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Move01", "Blob_Move02", "Blob_Move03",
                                                          "Blank", "Blank", "Blank", "Blank", "Blank"));
            logicSet.AddAction(new DelayLogicAction(1.1f, 1.9f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Move01", "Blob_Move02", "Blob_Move03",
                                                           "Blank", "Blank", "Blank", "Blank", "Blank"));
            logicSet2.AddAction(new DelayLogicAction(1f, 1.5f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.5f, 0.9f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.AddAction(new GroundCheckLogicAction());
            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump"));
            logicSet4.AddAction(new DelayLogicAction(JumpDelay));
            logicSet4.AddAction(new MoveLogicAction(m_target, true, Speed * 6.75f));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Jump"));
            logicSet4.AddAction(new JumpLogicAction());
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character"));
            logicSet4.AddAction(new DelayLogicAction(0.2f));
            logicSet4.AddAction(new GroundCheckLogicAction());
            logicSet4.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Land"));
            logicSet4.AddAction(new MoveLogicAction(m_target, true, Speed));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Jump"));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character"));
            logicSet4.AddAction(new DelayLogicAction(0.2f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.Tag = 2;
            var data = new ProjectileData(this)
            {
                SpriteName          = "SpellDamageShield_Sprite",
                SourceAnchor        = new Vector2(0f, 10f),
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 0f,
                Damage              = Damage,
                Angle               = new Vector2(0f, 0f),
                AngleOffset         = 0f,
                CollidesWithTerrain = false,
                Scale               = ProjectileScale,
                Lifespan            = ExpertBlobProjectileDuration,
                LockPosition        = true
            };
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.AddAction(new GroundCheckLogicAction());
            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump"));
            logicSet5.AddAction(new DelayLogicAction(JumpDelay));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, Speed * 6.75f));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Jump"));
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet5.AddAction(new JumpLogicAction());
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character"));
            logicSet5.AddAction(new DelayLogicAction(0.2f));
            logicSet5.AddAction(new GroundCheckLogicAction());
            logicSet5.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Land"));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, Speed));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Jump"));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character"));
            logicSet5.AddAction(new DelayLogicAction(0.2f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.AddAction(new GroundCheckLogicAction());
            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump"));
            logicSet6.AddAction(new DelayLogicAction(JumpDelay));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, Speed * 6.75f));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Jump"));
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet6.AddAction(new JumpLogicAction());
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character"));
            logicSet6.AddAction(new DelayLogicAction(0.2f));
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet6.AddAction(new DelayLogicAction(0.2f));
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, data));
            logicSet6.AddAction(new DelayLogicAction(0.2f));
            logicSet6.AddAction(new GroundCheckLogicAction());
            logicSet6.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Land"));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, Speed));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Jump"));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character"));
            logicSet6.AddAction(new DelayLogicAction(0.2f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new MoveLogicAction(m_target, true));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Move01", "Blob_Move02", "Blob_Move03",
                                                           "Blank", "Blank", "Blank", "Blank", "Blank"));
            logicSet7.AddAction(new DelayLogicAction(1.1f, 1.9f));
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new MoveLogicAction(m_target, false));
            logicSet8.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Move01", "Blob_Move02", "Blob_Move03",
                                                           "Blank", "Blank", "Blank", "Blank", "Blank"));
            logicSet8.AddAction(new DelayLogicAction(1f, 1.5f));
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new DelayLogicAction(0.5f, 0.9f));
            var logicSet10 = new LogicSet(this);

            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet10.AddAction(new GroundCheckLogicAction());
            logicSet10.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossJump_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump"));
            logicSet10.AddAction(new DelayLogicAction(JumpDelay));
            logicSet10.AddAction(new MoveLogicAction(m_target, true, Speed * 6.75f));
            logicSet10.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Jump"));
            logicSet10.AddAction(new JumpLogicAction());
            logicSet10.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossAir_Character"));
            logicSet10.AddAction(new DelayLogicAction(0.2f));
            logicSet10.AddAction(new GroundCheckLogicAction());
            logicSet10.AddAction(new Play3DSoundLogicAction(this, m_target, "Blob_Land"));
            logicSet10.AddAction(new MoveLogicAction(m_target, true, Speed));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossJump_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Jump"));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossIdle_Character"));
            logicSet10.AddAction(new DelayLogicAction(0.2f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet10.Tag = 2;
            var logicSet11 = new LogicSet(this);

            logicSet11.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossAir_Character"));
            logicSet11.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "FairyMove1", "FairyMove2",
                                                            "FairyMove3"));
            logicSet11.AddAction(new ChaseLogicAction(m_target, true, 1f));
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet6);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            m_generalMiniBossLB.AddLogicSet(logicSet7, logicSet8, logicSet9, logicSet10);
            m_generalNeoLB.AddLogicSet(logicSet11);
            m_generalBossCooldownLB.AddLogicSet(logicSet7, logicSet8, logicSet9);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            logicBlocksToDispose.Add(m_generalNeoLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalBossCooldownLB);
            if (Difficulty == GameTypes.EnemyDifficulty.MINIBOSS)
            {
                SetCooldownLogicBlock(m_generalBossCooldownLB, 40, 40, 20);
                ChangeSprite("EnemyBlobBossIdle_Character");
            }
            else
            {
                SetCooldownLogicBlock(m_generalCooldownLB, 40, 40, 20);
            }
            base.InitializeLogic();
        }
Пример #24
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostMove_Character"));
            logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "FairyMove1", "FairyMove2",
                                                          "FairyMove3"));
            logicSet.AddAction(new ChaseLogicAction(m_target, true, 1f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet2.AddAction(new ChaseLogicAction(m_target, false, 0.5f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.5f, 0.75f));
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostShoot_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet4.AddAction(new DelayLogicAction(AttackDelay));
            logicSet4.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", false));
            logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet4.AddAction(new DelayLogicAction(0.25f));
            logicSet4.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostShoot_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet5.AddAction(new DelayLogicAction(AttackDelay));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", false));
            logicSet5.AddAction(new DelayLogicAction(0.15f));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", false));
            logicSet5.AddAction(new DelayLogicAction(0.15f));
            logicSet5.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", false));
            logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet5.AddAction(new DelayLogicAction(0.25f));
            logicSet5.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostShoot_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet6.AddAction(new DelayLogicAction(AttackDelay));
            ThrowEightProjectiles(logicSet6);
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            ThrowEightProjectiles(logicSet6);
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            ThrowEightProjectiles(logicSet6);
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            ThrowEightProjectiles(logicSet6);
            logicSet6.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostIdle_Character"));
            logicSet6.AddAction(new DelayLogicAction(0.25f));
            logicSet6.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossMove_Character"));
            logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "FairyMove1", "FairyMove2",
                                                           "FairyMove3"));
            logicSet7.AddAction(new ChaseLogicAction(m_target, true, 1f));
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossIdle_Character"));
            logicSet8.AddAction(new ChaseLogicAction(m_target, false, 0.5f));
            var logicSet9 = new LogicSet(this);

            logicSet9.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet9.AddAction(new DelayLogicAction(0.5f, 0.75f));
            var logicSet10 = new LogicSet(this);

            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossIdle_Character"));
            logicSet10.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossShoot_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup"));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossIdle_Character"));
            logicSet10.AddAction(new DelayLogicAction(AttackDelay));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossShoot_Character", false, false));
            logicSet10.AddAction(new PlayAnimationLogicAction("Attack", "End"));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossMove_Character"));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowFourProjectiles", true));
            logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyFairyGhostBossIdle_Character"));
            logicSet10.AddAction(new DelayLogicAction(0.25f));
            logicSet10.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet10.Tag = 2;
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet6);
            m_generalMiniBossLB.AddLogicSet(logicSet7, logicSet8, logicSet9, logicSet10);
            m_generalNeoLB.AddLogicSet(logicSet7, logicSet8, logicSet9, logicSet10);
            if (Difficulty == GameTypes.EnemyDifficulty.MINIBOSS)
            {
                m_generalCooldownLB.AddLogicSet(logicSet7, logicSet8, logicSet9);
            }
            else
            {
                m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            }
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalMiniBossLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            logicBlocksToDispose.Add(m_generalNeoLB);
            var arg_975_1 = m_generalCooldownLB;
            var array     = new int[3];

            array[0] = 70;
            array[1] = 30;
            SetCooldownLogicBlock(arg_975_1, array);
            base.InitializeLogic();
        }
Пример #25
0
        protected override void InitializeLogic()
        {
            var logicSet = new LogicSet(this);

            logicSet.AddAction(new ChangeSpriteLogicAction("EnemyNinjaRun_Character"));
            logicSet.AddAction(new PlayAnimationLogicAction());
            logicSet.AddAction(new MoveLogicAction(m_target, true));
            logicSet.AddAction(new DelayLogicAction(0.25f, 0.85f));
            var logicSet2 = new LogicSet(this);

            logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyNinjaRun_Character"));
            logicSet2.AddAction(new PlayAnimationLogicAction());
            logicSet2.AddAction(new MoveLogicAction(m_target, false));
            logicSet2.AddAction(new DelayLogicAction(0.25f, 0.85f));
            var logicSet3 = new LogicSet(this);

            logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character"));
            logicSet3.AddAction(new StopAnimationLogicAction());
            logicSet3.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet3.AddAction(new DelayLogicAction(0.25f, 0.85f));
            var projectileData = new ProjectileData(this)
            {
                SpriteName          = "ShurikenProjectile1_Sprite",
                SourceAnchor        = new Vector2(15f, 0f),
                Target              = m_target,
                Speed               = new Vector2(ProjectileSpeed, ProjectileSpeed),
                IsWeighted          = false,
                RotationSpeed       = 20f,
                Damage              = Damage,
                AngleOffset         = 0f,
                CollidesWithTerrain = true,
                Scale               = ProjectileScale
            };
            var logicSet4 = new LogicSet(this);

            logicSet4.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character"));
            logicSet4.AddAction(new DelayLogicAction(PauseBeforeProjectile));
            logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false));
            logicSet4.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Ninja_ThrowStar_01",
                                                           "Ninja_ThrowStar_02", "Ninja_ThrowStar_03"));
            logicSet4.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet4.AddAction(new PlayAnimationLogicAction(4, 5));
            logicSet4.AddAction(new DelayLogicAction(PauseAfterProjectile));
            logicSet4.Tag = 2;
            var logicSet5 = new LogicSet(this);

            logicSet5.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character"));
            logicSet5.AddAction(new DelayLogicAction(PauseBeforeProjectile));
            logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false));
            logicSet5.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Ninja_ThrowStar_01",
                                                           "Ninja_ThrowStar_02", "Ninja_ThrowStar_03"));
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = -10f;
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = 10f;
            logicSet5.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet5.AddAction(new PlayAnimationLogicAction(4, 5));
            logicSet5.AddAction(new DelayLogicAction(PauseAfterProjectile));
            logicSet5.Tag = 2;
            var logicSet6 = new LogicSet(this);

            logicSet6.AddAction(new MoveLogicAction(m_target, true, 0f));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character"));
            logicSet6.AddAction(new DelayLogicAction(PauseBeforeProjectile));
            logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false));
            logicSet6.AddAction(new PlayAnimationLogicAction(1, 3));
            logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Ninja_ThrowStar_01",
                                                           "Ninja_ThrowStar_02", "Ninja_ThrowStar_03"));
            projectileData.AngleOffset = 0f;
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = -5f;
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = 5f;
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = -25f;
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = 25f;
            logicSet6.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet6.AddAction(new PlayAnimationLogicAction(4, 5));
            logicSet6.AddAction(new DelayLogicAction(PauseAfterProjectile));
            logicSet6.Tag = 2;
            var logicSet7 = new LogicSet(this);

            logicSet7.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "CreateLog", null));
            logicSet7.AddAction(new DelayLogicAction(TeleportDelay));
            logicSet7.AddAction(new RunFunctionLogicAction(this, "CreateSmoke", null));
            logicSet7.AddAction(new DelayLogicAction(0.15f));
            logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", true));
            logicSet7.AddAction(new DelayLogicAction(0.15f));
            logicSet7.AddAction(new GroundCheckLogicAction());
            logicSet7.AddAction(new DelayLogicAction(0.15f));
            logicSet7.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet7.Tag = 2;
            var logicSet8 = new LogicSet(this);

            logicSet8.AddAction(new LockFaceDirectionLogicAction(true));
            logicSet8.AddAction(new RunFunctionLogicAction(this, "CreateLog", null));
            logicSet8.AddAction(new DelayLogicAction(TeleportDelay));
            logicSet8.AddAction(new RunFunctionLogicAction(this, "CreateSmoke", null));
            projectileData.Target = null;
            logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "Ninja_ThrowStar_01",
                                                           "Ninja_ThrowStar_02", "Ninja_ThrowStar_03"));
            projectileData.AngleOffset = 45f;
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = 135f;
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = -45f;
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            projectileData.AngleOffset = -135f;
            logicSet8.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData));
            logicSet8.AddAction(new DelayLogicAction(0.15f));
            logicSet8.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", true));
            logicSet8.AddAction(new DelayLogicAction(0.15f));
            logicSet8.AddAction(new GroundCheckLogicAction());
            logicSet8.AddAction(new DelayLogicAction(0.15f));
            logicSet8.AddAction(new LockFaceDirectionLogicAction(false));
            logicSet8.Tag = 2;
            m_basicTeleportAttackLB.AddLogicSet(logicSet7);
            m_expertTeleportAttackLB.AddLogicSet(logicSet8);
            logicBlocksToDispose.Add(m_basicTeleportAttackLB);
            logicBlocksToDispose.Add(m_expertTeleportAttackLB);
            m_generalBasicLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet4);
            m_generalAdvancedLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet5);
            m_generalExpertLB.AddLogicSet(logicSet, logicSet2, logicSet3, logicSet6);
            m_generalCooldownLB.AddLogicSet(logicSet, logicSet2, logicSet3);
            logicBlocksToDispose.Add(m_generalBasicLB);
            logicBlocksToDispose.Add(m_generalAdvancedLB);
            logicBlocksToDispose.Add(m_generalExpertLB);
            logicBlocksToDispose.Add(m_generalCooldownLB);
            var arg_906_1 = m_generalCooldownLB;
            var array     = new int[3];

            array[0] = 50;
            array[1] = 50;
            SetCooldownLogicBlock(arg_906_1, array);
            projectileData.Dispose();
            base.InitializeLogic();
        }