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(); }
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(); }
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)); } }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }