/***************************************************************************/ public LogicSet toLogicSet(int _number, int _size) { LogicSet result = new LogicSet(); for (int i = 0; i < _size; ++i) { result.Add(LogicValue.Enum.Unknown); } for (int i = 0; i < _size; ++i) { int remainder = _number % 2; if (remainder == 1) { result[i] = LogicValue.Enum.High; } else { result[i] = LogicValue.Enum.Low; } _number /= 2; } return(result); }
private void ThrowStandingProjectiles(LogicSet ls, bool useBossProjectile = false) { var projectileData = new ProjectileData(this) { SpriteName = "SpellDamageShield_Sprite", SourceAnchor = new Vector2(0f, 60f), Target = null, Speed = new Vector2(ProjectileSpeed, ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = Damage, AngleOffset = 0f, Angle = new Vector2(0f, 0f), CollidesWithTerrain = false, Scale = ProjectileScale, Lifespan = 0.75f }; ls.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "FairyAttack1")); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); ls.AddAction(new DelayLogicAction(0.075f)); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); ls.AddAction(new DelayLogicAction(0.075f)); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Dispose(); }
private void ThrowThreeProjectiles(LogicSet ls) { 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 }; ls.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "SpearKnight_Projectile")); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Angle = new Vector2(45f, 45f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Angle = new Vector2(-45f, -45f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); ls.AddAction(new PlayAnimationLogicAction("Attack", "End")); projectileData.Dispose(); }
public void CloseGate(bool animate) { if (animate) { this.Player.Y = 381f; this.Player.X += 10f; this.Player.State = 1; LogicSet logicSet = new LogicSet(this.Player); logicSet.AddAction(new RunFunctionLogicAction(this.Player, "LockControls", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f), -1f), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this.Player, "CurrentSpeed", 200), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this.Player, "CurrentSpeed", 0), Types.Sequence.Serial); this.Player.RunExternalLogicSet(logicSet); Tween.By(this.m_castleGate, 1.5f, new Easing(Quad.EaseOut), new string[] { "Y", this.m_castleGate.Height.ToString() }); Tween.AddEndHandlerToLastTween(this.Player, "UnlockControls", new object[0]); this.Player.AttachedLevel.RunCinematicBorders(1.5f); } else { this.m_castleGate.Y += (float)this.m_castleGate.Height; } this.m_gateClosed = true; }
private void ThrowExpertProjectiles(LogicSet ls, bool useBossProjectile = false) { var projectileData = new ProjectileData(this) { SpriteName = "GhostProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = null, Speed = new Vector2(ProjectileSpeed, ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = Damage, AngleOffset = 0f, Angle = new Vector2(0f, 0f), CollidesWithTerrain = false, Scale = ProjectileScale }; ls.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "FairyAttack1")); projectileData.Angle = new Vector2(0f, 0f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Angle = new Vector2(90f, 90f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Angle = new Vector2(-90f, -90f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Angle = new Vector2(180f, 180f); ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.Dispose(); }
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(); }
public override void OnEnter() { SoundManager.StopMusic(); Player.CurrentHealth = Player.MaxHealth; Player.CurrentMana = Player.MaxMana; Game.PlayerStats.HeadPiece = 7; Player.AttachedLevel.SetMapDisplayVisibility(false); Player.AttachedLevel.SetPlayerHUDVisibility(false); if (m_rainSFX != null) { m_rainSFX.Dispose(); } m_rainSFX = SoundManager.PlaySound("Rain1"); Player.UpdateCollisionBoxes(); Player.Position = new Vector2(10f, 660f - (Player.Bounds.Bottom - Player.Y)); Player.State = 1; var logicSet = new LogicSet(Player); logicSet.AddAction(new RunFunctionLogicAction(Player, "LockControls")); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f))); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character")); logicSet.AddAction(new PlayAnimationLogicAction()); logicSet.AddAction(new DelayLogicAction(2.5f)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "CurrentSpeed", 0)); Player.RunExternalLogicSet(logicSet); Tween.RunFunction(2f, this, "Intro1"); base.OnEnter(); }
public void MovePlayerTo(GameObj target) { m_controlsLocked = true; if (Player.X != target.X - 150f) { if (Player.X > target.Position.X - 150f) { Player.Flip = SpriteEffects.FlipHorizontally; } var num = CDGMath.DistanceBetweenPts(Player.Position, new Vector2(target.X - 150f, target.Y)) / Player.Speed; Player.UpdateCollisionBoxes(); Player.State = 1; Player.IsWeighted = false; Player.AccelerationY = 0f; Player.AccelerationX = 0f; Player.IsCollidable = false; Player.CurrentSpeed = 0f; Player.LockControls(); Player.ChangeSprite("PlayerWalking_Character"); Player.PlayAnimation(); var logicSet = new LogicSet(Player); logicSet.AddAction(new DelayLogicAction(num)); Player.RunExternalLogicSet(logicSet); Tween.To(Player, num, Tween.EaseNone, "X", (target.Position.X - 150f).ToString()); Tween.AddEndHandlerToLastTween(this, "MovePlayerComplete", target); return; } MovePlayerComplete(target); }
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(); }
private void ThrowThreeProjectiles(LogicSet ls) { 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, Angle = new Vector2(0f, 0f) }; for (var i = 0; i <= 3; i++) { projectileData.AngleOffset = 0f; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.AngleOffset = 45f; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.AngleOffset = -45f; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); ls.AddAction(new DelayLogicAction(0.1f)); } projectileData.Dispose(); }
private void ThrowCardinalProjectiles(LogicSet ls) { var projectileData = new ProjectileData(this) { SpriteName = "EyeballProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = null, Speed = new Vector2(ProjectileSpeed, ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = Damage, AngleOffset = 0f, Scale = ProjectileScale, CollidesWithTerrain = false, Angle = new Vector2(0f, 0f) }; var num = CDGMath.RandomPlusMinus(); for (var i = 0; i <= 170; i += 10) { projectileData.AngleOffset = i * num; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.AngleOffset = 90 + i * num; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.AngleOffset = 180 + i * num; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); projectileData.AngleOffset = 270 + i * num; ls.AddAction(new FireProjectileLogicAction(m_levelScreen.ProjectileManager, projectileData)); ls.AddAction(new DelayLogicAction(0.175f)); } projectileData.Dispose(); }
public void CloseGate(bool animate) { if (animate) { Player.Y = 381f; Player.X += 10f; Player.State = 1; var logicSet = new LogicSet(Player); logicSet.AddAction(new RunFunctionLogicAction(Player, "LockControls")); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f))); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character")); logicSet.AddAction(new PlayAnimationLogicAction()); logicSet.AddAction(new ChangePropertyLogicAction(Player, "CurrentSpeed", 200)); logicSet.AddAction(new DelayLogicAction(0.2f)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "CurrentSpeed", 0)); Player.RunExternalLogicSet(logicSet); Tween.By(m_castleGate, 1.5f, Quad.EaseOut, "Y", m_castleGate.Height.ToString()); Tween.AddEndHandlerToLastTween(Player, "UnlockControls"); Player.AttachedLevel.RunCinematicBorders(1.5f); } else { m_castleGate.Y += m_castleGate.Height; } m_gateClosed = true; }
public override void Dispose() { if (!base.IsDisposed) { this.m_extractLS.Dispose(); this.m_extractLS = null; base.Dispose(); } }
/***************************************************************************/ public int findValue(LogicSet _set, LogicValue.Enum _targetValue) { return(_set.FindIndex( (LogicValue.Enum _value) => { return _value == _targetValue; } )); }
/***************************************************************************/ public static void encoder(ILogicalElement _element) { ILineCollection inputs = _element.Inputs; ILineCollection outputs = _element.Outputs; if (inputs.hasValue(LogicValue.Enum.Unknown)) { outputs.setToAllLines(LogicValue.Enum.Unknown); return; } int enableIndex = inputs.Size - 1; if (inputs[enableIndex].Value == LogicValue.Enum.Low) { outputs.setToAllLines(LogicValue.Enum.Low); return; } if (inputs[enableIndex].Value == LogicValue.Enum.DontCare) { outputs.setToAllLines(LogicValue.Enum.DontCare); return; } int highValueIndex = -1; for (int i = enableIndex - 1; i >= 0; --i) { if (inputs[i].Value == LogicValue.Enum.High) { highValueIndex = i; break; } if (inputs[i].Value == LogicValue.Enum.DontCare) { outputs.setToAllLines(LogicValue.Enum.DontCare); return; } } if (highValueIndex == -1) { outputs.setToAllLines(LogicValue.Enum.DontCare); return; } int outputsCount = outputs.Size; LogicValuesNumbersConverter converter = new LogicValuesNumbersConverter(); LogicSet outputSet = converter.toLogicSet(highValueIndex, outputsCount); for (int i = 0; i < outputsCount; ++i) { outputs[i].Value = outputSet[i]; } }
public override void Dispose() { if (!IsDisposed) { m_extractLS.Dispose(); m_extractLS = null; base.Dispose(); } }
protected override void InitializeLogic() { m_extractLS = new LogicSet(this); m_extractLS.AddAction(new PlayAnimationLogicAction(1, 2)); m_extractLS.AddAction(new DelayLogicAction(ExtractDelay)); m_extractLS.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, "TrapSpike_01", "TrapSpike_02", "TrapSpike_03")); m_extractLS.AddAction(new PlayAnimationLogicAction(2, 4)); base.InitializeLogic(); }
/***************************************************************************/ public int simpleLogicSetToNumber( ILineCollection _lines , int _firstIndex , int _lastIndex ) { LogicSet logicSet = toLogicSet(_lines, _firstIndex, _lastIndex); return(executeOnSimpleLogicSet(logicSet)); }
public void TeleportPlayer() { Player.CurrentSpeed = 0f; var position = Player.Position; var scale = Player.Scale; Tween.To(Player, 0.05f, Linear.EaseNone, "delay", "1.2", "ScaleX", "0"); Player.ScaleX = 0f; Tween.To(Player, 0.05f, Linear.EaseNone, "delay", "7", "ScaleX", scale.X.ToString()); Player.ScaleX = scale.X; var logicSet = new LogicSet(Player); logicSet.AddAction(new ChangePropertyLogicAction(Player.AttachedLevel, "DisableSongUpdating", true)); logicSet.AddAction(new RunFunctionLogicAction(Player, "LockControls")); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerLevelUp_Character", true, false)); logicSet.AddAction(new DelayLogicAction(0.5f)); logicSet.AddAction(new PlaySoundLogicAction("Teleport_Disappear")); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ImpactEffectPool, "MegaTeleport", new Vector2(Player.X, Player.Bounds.Bottom), Player.Scale)); logicSet.AddAction(new DelayLogicAction(0.3f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "StartWipeTransition")); logicSet.AddAction(new DelayLogicAction(0.2f)); if (LinkedRoom != null) { Player.Position = new Vector2(Player.AttachedLevel.RoomList[1].Bounds.Center.X, Player.AttachedLevel.RoomList[1].Bounds.Center.Y); Player.UpdateCollisionBoxes(); logicSet.AddAction(new TeleportLogicAction(null, Player.Position)); logicSet.AddAction(new DelayLogicAction(0.05f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "EndWipeTransition")); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.RoomList[1], "RevealSymbol", LevelType, true)); logicSet.AddAction(new DelayLogicAction(3.5f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "StartWipeTransition")); logicSet.AddAction(new DelayLogicAction(0.2f)); Player.Position = new Vector2(LinkedRoom.Bounds.Center.X, LinkedRoom.Bounds.Bottom - 60 - (Player.Bounds.Bottom - Player.Y)); Player.UpdateCollisionBoxes(); logicSet.AddAction(new ChangePropertyLogicAction(Player.AttachedLevel, "DisableSongUpdating", false)); logicSet.AddAction(new TeleportLogicAction(null, Player.Position)); logicSet.AddAction(new DelayLogicAction(0.05f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "EndWipeTransition")); logicSet.AddAction(new DelayLogicAction(1f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ImpactEffectPool, "MegaTeleportReverse", new Vector2(Player.X, LinkedRoom.Bounds.Bottom - 60), scale)); logicSet.AddAction(new PlaySoundLogicAction("Teleport_Reappear")); } logicSet.AddAction(new DelayLogicAction(0.2f)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "ForceInvincible", false)); logicSet.AddAction(new RunFunctionLogicAction(Player, "UnlockControls")); Player.RunExternalLogicSet(logicSet); Player.Position = position; Player.UpdateCollisionBoxes(); }
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)); } }
public void convertNumberToSet() { LogicValuesNumbersConverter converter = new LogicValuesNumbersConverter(); LogicSet result = converter.toLogicSet(0, 2); //0->00 Assert.AreEqual(result.Count, 2); Assert.AreEqual(result[0], LogicValue.Enum.Low); Assert.AreEqual(result[1], LogicValue.Enum.Low); result = converter.toLogicSet(0, 4); //0->0000 Assert.AreEqual(result.Count, 4); Assert.AreEqual(result[0], LogicValue.Enum.Low); Assert.AreEqual(result[1], LogicValue.Enum.Low); Assert.AreEqual(result[2], LogicValue.Enum.Low); Assert.AreEqual(result[3], LogicValue.Enum.Low); result = converter.toLogicSet(10, 4); //10->1010 Assert.AreEqual(result.Count, 4); Assert.AreEqual(result[0], LogicValue.Enum.Low); Assert.AreEqual(result[1], LogicValue.Enum.High); Assert.AreEqual(result[2], LogicValue.Enum.Low); Assert.AreEqual(result[3], LogicValue.Enum.High); result = converter.toLogicSet(15, 4); //15-> 1111 Assert.AreEqual(result.Count, 4); Assert.AreEqual(result[0], LogicValue.Enum.High); Assert.AreEqual(result[1], LogicValue.Enum.High); Assert.AreEqual(result[2], LogicValue.Enum.High); Assert.AreEqual(result[3], LogicValue.Enum.High); result = converter.toLogicSet(1, 4); //1-> 0001 Assert.AreEqual(result.Count, 4); Assert.AreEqual(result[0], LogicValue.Enum.High); Assert.AreEqual(result[1], LogicValue.Enum.Low); Assert.AreEqual(result[2], LogicValue.Enum.Low); Assert.AreEqual(result[3], LogicValue.Enum.Low); }
/***************************************************************************/ private LogicSet logicSetCopy(LogicSet _set) { LogicSet newSet = new LogicSet(); int count = _set.Count; for (int i = 0; i < count; ++i) { newSet.Add(_set[i]); } return(newSet); }
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(); }
/***************************************************************************/ private LogicSet toLogicSet( ILineCollection _lines , int _firstIndex , int _lastIndex ) { LogicSet newSet = new LogicSet(); for (int i = _firstIndex; i <= _lastIndex; ++i) { newSet.Add(_lines[i].Value); } return(newSet); }
public void Intro2() { m_inSecondPart = true; Tween.RunFunction(3f, Player.AttachedLevel, "LightningEffectTwice"); var logicSet = new LogicSet(Player); logicSet.AddAction(new DelayLogicAction(5f)); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f))); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character")); logicSet.AddAction(new PlayAnimationLogicAction()); logicSet.AddAction(new DelayLogicAction(0.7f)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "CurrentSpeed", 0)); Player.RunExternalLogicSet(logicSet); Tween.RunFunction(5.3f, this, "Intro3"); }
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(); }
public void KickPlayerOut2() { Player.AttachedLevel.UnpauseScreen(); Player.CurrentSpeed = 0f; var position = Player.Position; var scale = Player.Scale; var logicSet = new LogicSet(Player); logicSet.AddAction(new ChangePropertyLogicAction(Player.AttachedLevel, "DisableSongUpdating", true)); logicSet.AddAction(new RunFunctionLogicAction(Player, "LockControls")); logicSet.AddAction(new DelayLogicAction(1.3f)); logicSet.AddAction(new PlaySoundLogicAction("Teleport_Disappear")); logicSet.AddAction(new RunFunctionLogicAction(this, "TeleportScaleOut")); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ImpactEffectPool, "MegaTeleport", new Vector2(Player.X, Player.Bounds.Bottom), Player.Scale)); logicSet.AddAction(new DelayLogicAction(0.3f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "StartWipeTransition")); logicSet.AddAction(new DelayLogicAction(0.2f)); logicSet.AddAction(new RunFunctionLogicAction(this, "LoadPlayerData")); if (LinkedRoom != null) { Player.Scale = m_storedScale; Player.OverrideInternalScale(m_storedScale); Player.UpdateCollisionBoxes(); Player.Position = new Vector2(LinkedRoom.Bounds.Center.X, LinkedRoom.Bounds.Bottom - 60 - (Player.TerrainBounds.Bottom - Player.Y)); logicSet.AddAction(new ChangePropertyLogicAction(Player.AttachedLevel, "DisableSongUpdating", false)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "ScaleY", m_storedScale.Y)); logicSet.AddAction(new TeleportLogicAction(null, Player.Position)); logicSet.AddAction(new DelayLogicAction(0.05f)); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ScreenManager, "EndWipeTransition")); logicSet.AddAction(new DelayLogicAction(1f)); logicSet.AddAction(new RunFunctionLogicAction(this, "TeleportScaleIn")); logicSet.AddAction(new RunFunctionLogicAction(Player.AttachedLevel.ImpactEffectPool, "MegaTeleportReverse", new Vector2(Player.X, LinkedRoom.Bounds.Bottom - 60), m_storedScale)); logicSet.AddAction(new PlaySoundLogicAction("Teleport_Reappear")); } logicSet.AddAction(new DelayLogicAction(0.2f)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "IsWeighted", true)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "IsCollidable", true)); logicSet.AddAction(new ChangePropertyLogicAction(Player, "ForceInvincible", false)); logicSet.AddAction(new RunFunctionLogicAction(Player, "UnlockControls")); Player.RunExternalLogicSet(logicSet); Player.Position = position; Player.Scale = scale; Player.UpdateCollisionBoxes(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f), -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new MoveDirectionLogicAction(new Vector2(-1f, 0f), -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); this.m_basicAttackLB.AddLogicSet(new LogicSet[] { logicSet2, logicSet }); this.logicBlocksToDispose.Add(this.m_basicAttackLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); 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() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyZombieWalk_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Zombie_Groan_01", "Zombie_Groan_02", "Zombie_Groan_03", "Blank", "Blank", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, 0f), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyZombieRise_Character", false, false), Types.Sequence.Serial); logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Zombie_Rise" }), Types.Sequence.Serial); logicSet2.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Serial); logicSet2.AddAction(new ChangePropertyLogicAction(this, "Risen", true), Types.Sequence.Serial); logicSet2.AddAction(new ChangePropertyLogicAction(this, "Lowered", false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, false, 0f), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyZombieLower_Character", false, false), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Zombie_Lower" }), Types.Sequence.Serial); logicSet3.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Serial); logicSet3.AddAction(new ChangePropertyLogicAction(this, "Risen", false), Types.Sequence.Serial); logicSet3.AddAction(new ChangePropertyLogicAction(this, "Lowered", true), Types.Sequence.Serial); this.m_basicWalkLS.AddLogicSet(new LogicSet[] { logicSet }); this.m_basicRiseLowerLS.AddLogicSet(new LogicSet[] { logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_basicWalkLS); this.logicBlocksToDispose.Add(this.m_basicRiseLowerLS); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightWalk_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightWalk_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.SlashDelay, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SlashTripleDelay, false), Types.Sequence.Serial); logicSet5.AddAction(new MoveDirectionLogicAction(this.TripleAttackSpeed), Types.Sequence.Serial); logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0166666675f), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0833333358f), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.Tag = 2; ProjectileData data = new ProjectileData(this) { SpriteName = "EnemySpearKnightWave_Sprite", SourceAnchor = new Vector2(60f, 0f), Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, Angle = new Vector2(0f, 0f), CollidesWithTerrain = true, Scale = base.ProjectileScale }; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.SlashDelay, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.SlashTripleDelay, false), Types.Sequence.Serial); logicSet7.AddAction(new MoveDirectionLogicAction(this.TripleAttackSpeed), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.008333334f), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SwordKnight_Attack_v02" }), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0833333358f), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet7.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet7.Tag = 2; LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightAttack_Character", false, false), Types.Sequence.Serial); logicSet8.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(this.SlashDelay, false), Types.Sequence.Serial); logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet8.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet8.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySwordKnightIdle_Character", false, false), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet8.Tag = 2; this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet5 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); switch (base.Difficulty) { case GameTypes.EnemyDifficulty.BASIC: base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 14, 11, 75 }); break; case GameTypes.EnemyDifficulty.ADVANCED: case GameTypes.EnemyDifficulty.EXPERT: base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 40, 30, 30 }); break; case GameTypes.EnemyDifficulty.MINIBOSS: { LogicBlock arg_9C4_1 = this.m_generalCooldownLB; int[] array = new int[3]; array[0] = 100; base.SetCooldownLogicBlock(arg_9C4_1, array); break; } } base.InitializeLogic(); }
protected override void InitializeLogic() { if (this.m_standingAttack3LogicSet != null) { this.m_standingAttack3LogicSet.Dispose(); } this.m_standingAttack3LogicSet = new LogicSet(this); this.m_standingAttack3LogicSet.AddAction(new ChangeSpriteLogicAction("PlayerAttacking3_Character", false, false), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", this.AttackAnimationDelay), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new PlayAnimationLogicAction(2, 4, false), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new DelayLogicAction(this.AttackDelay, false), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new RunFunctionLogicAction(this, "PlayAttackSound", new object[0]), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Serial); this.m_standingAttack3LogicSet.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", base.AnimationDelay), Types.Sequence.Serial); if (this.m_airAttackLS != null) { this.m_airAttackLS.Dispose(); } this.m_airAttackLS = new LogicSet(this); this.m_airAttackLS.AddAction(new ChangePropertyLogicAction(this, "IsAirAttacking", true), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new ChangeSpriteLogicAction("PlayerAirAttack_Character", false, false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", this.AttackAnimationDelay), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new RunFunctionLogicAction(this, "PlayAttackSound", new object[0]), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new PlayAnimationLogicAction("Start", "Start", false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new PlayAnimationLogicAction("Frame 3 Test", "Frame 3 Test", false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new PlayAnimationLogicAction("Attack", "Attack", false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new DelayLogicAction(this.AttackDelay, false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", base.AnimationDelay), Types.Sequence.Serial); this.m_airAttackLS.AddAction(new ChangePropertyLogicAction(this, "IsAirAttacking", false), Types.Sequence.Serial); }
public void RunExternalLogicSet(LogicSet ls) { if (this.m_currentLogicSet != null && this.m_currentLogicSet.IsActive) { this.m_currentLogicSet.Stop(); } base.AnimationDelay = 0.1f; if (this.m_externalLS != null) { this.m_externalLS.Dispose(); } this.m_externalLS = ls; this.m_externalLS.Execute(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveDirectionLogicAction(0f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.5f, 2f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightWalk_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new MoveDirectionLogicAction(-1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.5f, 2f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet3.AddAction(new MoveDirectionLogicAction(0f), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnIn_Character", false, false), Types.Sequence.Serial); logicSet3.AddAction(new PlayAnimationLogicAction(1, 2, false), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "ShieldKnight_Turn" }), Types.Sequence.Serial); logicSet3.AddAction(new PlayAnimationLogicAction(3, base.TotalFrames, false), Types.Sequence.Serial); logicSet3.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnOut_Character", true, false), Types.Sequence.Serial); logicSet3.AddAction(new MoveDirectionLogicAction(-1f), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new MoveDirectionLogicAction(0f), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnIn_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.05f), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(1, 2, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "ShieldKnight_Turn" }), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(3, base.TotalFrames, false), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyShieldKnightTurnOut_Character", true, false), Types.Sequence.Serial); logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.09090909f), Types.Sequence.Serial); logicSet4.AddAction(new MoveDirectionLogicAction(-1f), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet4 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); base.SetCooldownLogicBlock(this.m_generalBasicLB, new int[] { 100 }); base.InitializeLogic(); }
protected override void InitializeLogic() { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EyeballProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = this.m_target, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, CollidesWithTerrain = false, Scale = base.ProjectileScale }; LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Eyeball_ProjectileAttack" }), Types.Sequence.Serial); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, 3f, false), Types.Sequence.Serial); logicSet.Tag = 2; LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet2.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.75f, 2f, false), Types.Sequence.Serial); logicSet2.Tag = 2; LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEyeballFire_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); this.ThrowThreeProjectiles(logicSet3); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEyeballIdle_Character", false, false), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(1f, 3f, false), Types.Sequence.Serial); logicSet3.Tag = 2; LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "LockEyeball", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupilFire_Sprite" }), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "ThrowCardinalProjectiles", new object[] { 0, true, 0 }), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(3.15f, false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupil_Sprite" }), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball", new object[0]), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "LockEyeball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupilFire_Sprite" }), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "ThrowCardinalProjectilesNeo", new object[] { 0, true, 0 }), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(3f, false), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupil_Sprite" }), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball", new object[0]), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "LockEyeball", new object[0]), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupilFire_Sprite" }), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "ThrowSprayProjectiles", new object[] { true }), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(1.6f, false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "ThrowSprayProjectiles", new object[] { true }), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(1.6f, false), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupil_Sprite" }), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball", new object[0]), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossFire_Character", true, true), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "LockEyeball", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupilFire_Sprite" }), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "EyeballFire1" }), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.575f, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.575f, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.575f, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.575f, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowRandomProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.575f, false), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyEyeballBossEye_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this.m_pupil, "ChangeSprite", new object[] { "EnemyEyeballBossPupil_Sprite" }), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "UnlockEyeball", new object[0]), Types.Sequence.Serial); logicSet7.Tag = 2; LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new DelayLogicAction(0.2f, 0.5f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet8 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet2, logicSet8 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet3, logicSet8 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet4, logicSet6, logicSet7, logicSet8 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet8 }); this.m_generalNeoLB.AddLogicSet(new LogicSet[] { logicSet5, logicSet6, logicSet7, logicSet8 }); this.logicBlocksToDispose.Add(this.m_generalNeoLB); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 100 }); projectileData.Dispose(); base.InitializeLogic(); }
private void RunTeleportLS(LogicSet logicSet, string roomPosition) { logicSet.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", false), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", false), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "Opacity", 0.5f), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyLastBossTeleport_Character", false, false), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_BlockAction" }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this, "TeleportTo", new object[] { roomPosition }), Types.Sequence.Serial); logicSet.AddAction(new DelayObjLogicAction(this.m_delayObj), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", true), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", true), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "Opacity", 1), Types.Sequence.Serial); }
private void InputControls() { if (!LevelEV.CREATE_RETAIL_VERSION && InputManager.JustPressed(Keys.T, null)) { SoundManager.PlaySound(new string[] { "Fart1", "Fart2", "Fart3" }); this.m_levelScreen.ImpactEffectPool.DisplayFartEffect(this); } if (Game.GlobalInput.JustPressed(9) && Game.PlayerStats.TutorialComplete && this.m_levelScreen.CurrentRoom.Name != "Start" && this.m_levelScreen.CurrentRoom.Name != "Boss" && this.m_levelScreen.CurrentRoom.Name != "ChallengeBoss") { this.m_levelScreen.DisplayMap(false); } if (base.State != 8) { if (Game.GlobalInput.Pressed(13) && this.CanBlock && !this.m_currentLogicSet.IsActive) { if (this.CurrentMana >= 25f) { if (this.m_isTouchingGround) { base.CurrentSpeed = 0f; } if (base.State == 7) { base.CurrentSpeed = 0f; base.AccelerationX = 0f; base.AccelerationY = 0f; } base.State = 6; if (Game.GlobalInput.JustPressed(13)) { SoundManager.PlaySound("Player_Block_Action"); } } else if (Game.GlobalInput.JustPressed(13)) { SoundManager.PlaySound("Error_Spell"); } } else if (!this.m_isTouchingGround) { if (this.IsFlying) { if (base.State == 9) { base.State = 9; } else { base.State = 7; } } else { base.State = 2; } } else { base.State = 0; } } if (base.State != 6 && base.State != 8) { if (Game.GlobalInput.Pressed(20) || Game.GlobalInput.Pressed(21) || Game.GlobalInput.Pressed(22) || Game.GlobalInput.Pressed(23)) { if (this.m_isTouchingGround) { base.State = 1; } if ((Game.GlobalInput.Pressed(22) || Game.GlobalInput.Pressed(23)) && (!this.m_collidingRight || this.m_isTouchingGround)) { base.HeadingX = 1f; base.CurrentSpeed = this.TotalMovementSpeed; } else if ((Game.GlobalInput.Pressed(20) || Game.GlobalInput.Pressed(21)) && !Game.GlobalInput.Pressed(22) && !Game.GlobalInput.Pressed(23) && (!this.m_collidingLeft || this.m_isTouchingGround)) { base.HeadingX = -1f; base.CurrentSpeed = this.TotalMovementSpeed; } else { base.CurrentSpeed = 0f; } if (!LevelEV.RUN_DEMO_VERSION && !LevelEV.CREATE_RETAIL_VERSION && (InputManager.Pressed(Keys.LeftShift, PlayerIndex.One) || InputManager.Pressed(Buttons.LeftShoulder, PlayerIndex.One)) && this.CanRun && this.m_isTouchingGround) { base.CurrentSpeed *= this.RunSpeedMultiplier; } if (!this.m_currentLogicSet.IsActive || (this.m_currentLogicSet.IsActive && (Game.PlayerStats.Traits.X == 27f || Game.PlayerStats.Traits.Y == 27f))) { if (Game.GlobalInput.Pressed(22) || Game.GlobalInput.Pressed(23)) { this.Flip = SpriteEffects.None; } else if (Game.GlobalInput.Pressed(20) || Game.GlobalInput.Pressed(21)) { this.Flip = SpriteEffects.FlipHorizontally; } } if (this.m_isTouchingGround && this.m_currentLogicSet == this.m_standingAttack3LogicSet && this.m_currentLogicSet.IsActive && this.m_playerLegs.SpriteName != "PlayerWalkingLegs_Sprite") { this.m_playerLegs.ChangeSprite("PlayerWalkingLegs_Sprite"); this.m_playerLegs.PlayAnimation(base.CurrentFrame, base.TotalFrames, false); this.m_playerLegs.Y += 4f; this.m_playerLegs.OverrideParentAnimationDelay = true; this.m_playerLegs.AnimationDelay = 0.1f; } } else { if (this.m_isTouchingGround) { base.State = 0; } base.CurrentSpeed = 0f; } } bool flag = false; if (base.State != 6 && base.State != 7 && base.State != 8 && Game.PlayerStats.Class != 16) { if ((Game.GlobalInput.JustPressed(10) || Game.GlobalInput.JustPressed(11)) && this.m_isTouchingGround && this.m_dropThroughGroundTimer <= 0f) { base.State = 2; base.AccelerationY = -base.JumpHeight; this.m_isJumping = true; if (Game.PlayerStats.Traits.X == 6f || Game.PlayerStats.Traits.Y == 6f) { SoundManager.PlaySound("Player_Jump_04_Low"); SoundManager.PlaySound("Player_WalkUp01_Low"); } if (Game.PlayerStats.Traits.X == 7f || Game.PlayerStats.Traits.Y == 7f) { SoundManager.PlaySound("Player_Jump_04_High"); SoundManager.PlaySound("Player_WalkUp01_High"); } else { SoundManager.PlaySound("Player_Jump_04"); SoundManager.PlaySound("Player_WalkUp01"); } if ((Game.PlayerStats.Traits.X == 19f || Game.PlayerStats.Traits.Y == 19f) && CDGMath.RandomInt(0, 100) >= 91) { SoundManager.PlaySound(new string[] { "Fart1", "Fart2", "Fart3" }); this.m_levelScreen.ImpactEffectPool.DisplayDustEffect(this); } flag = true; } else if ((Game.GlobalInput.JustPressed(10) || Game.GlobalInput.JustPressed(11)) && !this.m_isTouchingGround && (int)this.m_doubleJumpCount < this.TotalDoubleJumps && this.m_dropThroughGroundTimer <= 0f) { base.State = 2; base.AccelerationY = -base.DoubleJumpHeight; this.m_levelScreen.ImpactEffectPool.DisplayDoubleJumpEffect(new Vector2(base.X, (float)(this.Bounds.Bottom + 10))); this.m_isJumping = true; this.m_doubleJumpCount += 1; SoundManager.PlaySound("Player_DoubleJump"); if ((Game.PlayerStats.Traits.X == 19f || Game.PlayerStats.Traits.Y == 19f) && CDGMath.RandomInt(0, 100) >= 91) { SoundManager.PlaySound(new string[] { "Fart1", "Fart2", "Fart3" }); this.m_levelScreen.ImpactEffectPool.DisplayDustEffect(this); } flag = true; } if (!this.m_isTouchingGround) { if (this.m_currentLogicSet == this.m_standingAttack3LogicSet && this.m_currentLogicSet.IsActive) { if (base.AccelerationY > 0f && this.m_playerLegs.SpriteName != "PlayerAttackFallingLegs_Sprite") { this.m_playerLegs.ChangeSprite("PlayerAttackFallingLegs_Sprite"); } else if (base.AccelerationY < 0f && this.m_playerLegs.SpriteName != "PlayerAttackJumpingLegs_Sprite") { this.m_playerLegs.ChangeSprite("PlayerAttackJumpingLegs_Sprite"); } } if (base.State != 7) { base.State = 2; } } } if (!this.m_currentLogicSet.IsActive && base.State != 6 && base.State != 8 && Game.PlayerStats.Class != 16) { if ((Game.GlobalInput.JustPressed(18) || Game.GlobalInput.JustPressed(19)) && this.CanAirAttackDownward && Game.GameConfig.QuickDrop && base.State == 2 && this.m_dropThroughGroundTimer <= 0f) { this.m_currentLogicSet = this.m_airAttackLS; if (Game.PlayerStats.Class == 6 || Game.PlayerStats.Class == 14) { this.FadeSword(); } if (this.m_assassinSpecialActive) { this.DisableAssassinAbility(); } this.m_currentLogicSet.Execute(); } else if (Game.GlobalInput.JustPressed(12)) { if (base.State == 2) { if ((Game.GlobalInput.Pressed(18) || Game.GlobalInput.Pressed(19)) && this.CanAirAttackDownward) { this.m_currentLogicSet = this.m_airAttackLS; } else { this.m_currentLogicSet = this.m_standingAttack3LogicSet; } if (Game.PlayerStats.Class == 6 || Game.PlayerStats.Class == 14) { this.FadeSword(); } if (this.m_assassinSpecialActive) { this.DisableAssassinAbility(); } this.m_currentLogicSet.Execute(); } else { if (!this.m_isTouchingGround) { base.CurrentSpeed = 0f; } if (this.m_attackCounter > 0f) { this.m_attackNumber++; } this.m_attackCounter = this.ComboDelay; if (this.m_attackNumber == 0) { this.m_currentLogicSet = this.m_standingAttack3LogicSet; } else { this.m_currentLogicSet = this.m_standingAttack3LogicSet; this.m_attackNumber = 0; this.m_attackCounter = 0f; } if (Game.PlayerStats.Class == 6 || Game.PlayerStats.Class == 14) { this.FadeSword(); } if (this.m_assassinSpecialActive) { this.DisableAssassinAbility(); } this.m_playerLegs.OverrideParentAnimationDelay = false; this.m_currentLogicSet.Execute(); } } } if (Game.PlayerStats.TutorialComplete) { bool flag2 = false; if (Game.PlayerStats.Spell == 15 && (Game.GlobalInput.Pressed(12) || Game.GlobalInput.Pressed(24)) && this.m_rapidSpellCastDelay <= 0f) { this.m_rapidSpellCastDelay = 0.2f; this.CastSpell(false, false); flag2 = true; } if ((this.m_spellCastDelay <= 0f || Game.PlayerStats.Class == 16) && (Game.GlobalInput.JustPressed(24) || (Game.PlayerStats.Class == 16 && Game.GlobalInput.JustPressed(12))) && (Game.PlayerStats.Class != 16 || !flag2)) { this.CastSpell(false, false); } if (Game.GlobalInput.JustPressed(13)) { RoomObj currentRoom = this.m_levelScreen.CurrentRoom; if (!(currentRoom is CarnivalShoot1BonusRoom) && !(currentRoom is CarnivalShoot2BonusRoom) && !(currentRoom is ChestBonusRoomObj)) { if (Game.PlayerStats.Class == 14 && this.m_spellCastDelay <= 0f) { this.CastSpell(false, true); } else if (Game.PlayerStats.Class == 15) { this.ConvertHPtoMP(); } else if (Game.PlayerStats.Class == 11 && this.CurrentMana > 0f) { if (!this.m_assassinSpecialActive) { this.ActivateAssassinAbility(); } else { this.DisableAssassinAbility(); } } else if (Game.PlayerStats.Class == 9) { this.SwapSpells(); } else if (Game.PlayerStats.Class == 12) { this.NinjaTeleport(); } else if (Game.PlayerStats.Class == 8) { if (base.State == 8) { this.DeactivateTanooki(); } else if (Game.GlobalInput.Pressed(18) || Game.GlobalInput.Pressed(19)) { this.ActivateTanooki(); } } else if (Game.PlayerStats.Class == 10) { this.CastFuhRohDah(); } else if (Game.PlayerStats.Class == 17 && this.CurrentMana >= 30f && this.m_spellCastDelay <= 0f) { this.CurrentMana -= 30f; this.m_spellCastDelay = 0.5f; this.ThrowAxeProjectiles(); } } else if (base.State == 8) { this.DeactivateTanooki(); } if (Game.PlayerStats.Class == 16) { if (base.State != 9) { base.State = 9; base.DisableGravity = true; this.m_isFlying = true; base.AccelerationY = 0f; } else { base.State = 2; base.DisableGravity = false; this.m_isFlying = false; } } else if (Game.PlayerStats.Class == 13) { if (this.m_lightOn) { SoundManager.PlaySound("HeadLampOff"); this.m_lightOn = false; this._objectList[16].Visible = false; } else { SoundManager.PlaySound("HeadLampOn"); this.m_lightOn = true; this._objectList[16].Visible = true; } } } if (Game.PlayerStats.Class == 16 && (Game.GlobalInput.JustPressed(10) || Game.GlobalInput.JustPressed(11))) { if (base.State != 9) { base.State = 9; base.DisableGravity = true; this.m_isFlying = true; base.AccelerationY = 0f; } else { base.State = 2; base.DisableGravity = false; this.m_isFlying = false; } } } if (this.m_dashCooldownCounter <= 0 && (this.m_isTouchingGround || (!this.m_isTouchingGround && (int)this.m_airDashCount < this.TotalAirDashes)) && base.State != 6 && base.State != 8 && this.CanAirDash) { if (Game.GlobalInput.JustPressed(14)) { this.m_airDashCount += 1; base.State = 4; base.AccelerationYEnabled = false; this.m_dashCooldownCounter = (int)(this.DashCoolDown * 1000f); this.m_dashCounter = (int)(this.DashTime * 1000f); this.LockControls(); base.CurrentSpeed = this.DashSpeed; base.HeadingX = -1f; base.AccelerationY = 0f; if (this.m_currentLogicSet.IsActive) { this.m_currentLogicSet.Stop(); } base.AnimationDelay = this.m_startingAnimationDelay; this.m_levelScreen.ImpactEffectPool.DisplayDashEffect(new Vector2(base.X, (float)this.TerrainBounds.Bottom), true); SoundManager.PlaySound("Player_Dash"); if ((Game.PlayerStats.Traits.X == 19f || Game.PlayerStats.Traits.Y == 19f) && CDGMath.RandomInt(0, 100) >= 91) { this.m_levelScreen.ImpactEffectPool.DisplayDustEffect(this); SoundManager.PlaySound(new string[] { "Fart1", "Fart2", "Fart3" }); } } else if (Game.GlobalInput.JustPressed(15)) { this.m_airDashCount += 1; base.AnimationDelay = this.m_startingAnimationDelay; base.State = 4; base.AccelerationYEnabled = false; this.m_dashCooldownCounter = (int)(this.DashCoolDown * 1000f); this.m_dashCounter = (int)(this.DashTime * 1000f); this.LockControls(); base.CurrentSpeed = this.DashSpeed; base.HeadingX = 1f; base.AccelerationY = 0f; if (this.m_currentLogicSet.IsActive) { this.m_currentLogicSet.Stop(); } this.m_levelScreen.ImpactEffectPool.DisplayDashEffect(new Vector2(base.X, (float)this.TerrainBounds.Bottom), false); SoundManager.PlaySound("Player_Dash"); if ((Game.PlayerStats.Traits.X == 19f || Game.PlayerStats.Traits.Y == 19f) && CDGMath.RandomInt(0, 100) >= 91) { this.m_levelScreen.ImpactEffectPool.DisplayDustEffect(this); SoundManager.PlaySound(new string[] { "Fart1", "Fart2", "Fart3" }); } } } if (base.State == 7 || base.State == 9) { if (Game.GlobalInput.Pressed(16) || Game.GlobalInput.Pressed(17) || InputManager.Pressed(Buttons.LeftThumbstickUp, PlayerIndex.One)) { base.AccelerationY = -this.TotalMovementSpeed; } else if (Game.GlobalInput.Pressed(18) || Game.GlobalInput.Pressed(19) || InputManager.Pressed(Buttons.LeftThumbstickDown, PlayerIndex.One)) { base.AccelerationY = this.TotalMovementSpeed; } else { base.AccelerationY = 0f; } if (!this.m_isTouchingGround && this.m_currentLogicSet == this.m_standingAttack3LogicSet && this.m_currentLogicSet.IsActive) { if (base.AccelerationY > 0f && this.m_playerLegs.SpriteName != "PlayerAttackFallingLegs_Sprite") { this.m_playerLegs.ChangeSprite("PlayerAttackFallingLegs_Sprite"); } else if (base.AccelerationY <= 0f && this.m_playerLegs.SpriteName != "PlayerAttackJumpingLegs_Sprite") { this.m_playerLegs.ChangeSprite("PlayerAttackJumpingLegs_Sprite"); } } if ((Game.GlobalInput.JustPressed(10) || Game.GlobalInput.JustPressed(11)) && base.State != 9) { base.State = 2; base.DisableGravity = false; this.m_isFlying = false; return; } } else if ((Game.GlobalInput.JustPressed(10) || Game.GlobalInput.JustPressed(11)) && !this.m_isTouchingGround && !flag && (int)this.m_doubleJumpCount >= this.TotalDoubleJumps && this.m_dropThroughGroundTimer <= 0f && this.CanFly && this.m_flightCounter > 0f && base.State != 7 && base.State != 9 && base.State != 6 && base.State != 8) { base.AccelerationY = 0f; base.State = 7; base.DisableGravity = true; this.m_isFlying = true; } }
protected override void InitializeLogic() { this.InitializeProjectiles(); LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new ChaseLogicAction(this.m_target, new Vector2(-255f, -175f), new Vector2(255f, -75f), true, this.MoveDuration, -1f), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new ChaseLogicAction(this.m_target, false, 1f, -1f), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyWizardIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "CancelEarthSpell", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell", false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "CastEarthSpellIn", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "CastEarthSpellOut", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.SpellDelay, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("CastSpell", "End", false), Types.Sequence.Parallel); logicSet4.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "CastEarthSpell", new object[] { this.SpellDuration }), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "CancelEarthSpellIn", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell", false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "SummonFireball", null), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireDelay, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.SpellFireInterval, false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "ResetFireball", null), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "CastFireball", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyWizardSpell_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "BeforeSpell", false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "SummonIceball", null), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.SpellDelay, false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "ShatterIceball", new object[] { this.SpellIceProjectileCount }), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("CastSpell", "End", false), Types.Sequence.Parallel); logicSet6.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "ResetIceball", null), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyWizardTeleportOut_Character", false, false), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Start", "BeforeTeleport", false), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.TeleportDelay, false), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("TeleportStart", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", false), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.TeleportDuration, false), Types.Sequence.Serial); logicSet7.AddAction(new TeleportLogicAction(this.m_target, new Vector2(-400f, -400f), new Vector2(400f, 400f)), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsCollidable", true), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemyWizardTeleportIn_Character", true, false), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet5, logicSet6, logicSet7 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); LogicBlock arg_971_1 = this.m_generalCooldownLB; int[] array = new int[3]; array[0] = 100; base.SetCooldownLogicBlock(arg_971_1, array); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new DebugTraceLogicAction("WalkTowardSLS"), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.3f, 0.75f, false), Types.Sequence.Serial); logicSet.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new DebugTraceLogicAction("WalkAway"), Types.Sequence.Serial); logicSet2.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet2.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.2f, 0.75f, false), Types.Sequence.Serial); logicSet2.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new DebugTraceLogicAction("walkStop"), Types.Sequence.Serial); logicSet3.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet3.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("PlayerIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.25f, 0.5f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new DebugTraceLogicAction("attack"), Types.Sequence.Serial); logicSet4.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.05f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("PlayerAttacking3_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(2, 4, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Player_Attack01", "Player_Attack02" }), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Serial); logicSet4.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("PlayerIdle_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new DebugTraceLogicAction("moveattack"), Types.Sequence.Serial); logicSet5.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.05f), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("PlayerAttacking3_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction(2, 4, false), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Player_Attack01", "Player_Attack02" }), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Serial); logicSet5.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("PlayerIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new DebugTraceLogicAction("Throwing Daggers"), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("PlayerLevelUp_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this, "CastCloseShield", new object[0]), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new DebugTraceLogicAction("Throwing Daggers"), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet7.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", false), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("PlayerLevelUp_Character", true, true), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "ThrowDaggerProjectiles", new object[0]), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet7.Tag = 2; LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new DebugTraceLogicAction("Throwing Daggers"), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet8.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", false), Types.Sequence.Serial); logicSet8.AddAction(new ChangeSpriteLogicAction("PlayerLevelUp_Character", true, true), Types.Sequence.Serial); logicSet8.AddAction(new PlayAnimationLogicAction(false), Types.Sequence.Serial); logicSet8.AddAction(new RunFunctionLogicAction(this, "ThrowDaggerProjectilesNeo", new object[0]), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet8.Tag = 2; LogicSet logicSet9 = new LogicSet(this); logicSet9.AddAction(new DebugTraceLogicAction("jumpLS"), Types.Sequence.Serial); logicSet9.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet9.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet9.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet9.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet9.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Player_Jump" }), Types.Sequence.Serial); logicSet9.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet9.AddAction(new RunFunctionLogicAction(this, "ThrowAxeProjectiles", new object[0]), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(0.75f, false), Types.Sequence.Serial); logicSet9.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet9.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); LogicSet logicSet10 = new LogicSet(this); logicSet10.AddAction(new DebugTraceLogicAction("jumpLS"), Types.Sequence.Serial); logicSet10.AddAction(new ChangePropertyLogicAction(this, "CanBeKnockedBack", true), Types.Sequence.Serial); logicSet10.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet10.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet10.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Player_Jump" }), Types.Sequence.Serial); logicSet10.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet10.AddAction(new RunFunctionLogicAction(this, "ThrowAxeProjectilesNeo", new object[0]), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.75f, false), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet10.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); LogicSet logicSet11 = new LogicSet(this); logicSet11.AddAction(new DebugTraceLogicAction("dashLS"), Types.Sequence.Serial); logicSet11.AddAction(new RunFunctionLogicAction(this, "CastCloseShield", new object[0]), Types.Sequence.Serial); logicSet11.AddAction(new RunFunctionLogicAction(this, "Dash", new object[] { 0 }), Types.Sequence.Serial); logicSet11.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet11.AddAction(new RunFunctionLogicAction(this, "DashComplete", new object[0]), Types.Sequence.Serial); LogicSet logicSet12 = new LogicSet(this); logicSet12.AddAction(new DebugTraceLogicAction("dashAwayRightLS"), Types.Sequence.Serial); logicSet12.AddAction(new RunFunctionLogicAction(this, "Dash", new object[] { 1 }), Types.Sequence.Serial); logicSet12.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet12.AddAction(new RunFunctionLogicAction(this, "DashComplete", new object[0]), Types.Sequence.Serial); LogicSet logicSet13 = new LogicSet(this); logicSet13.AddAction(new DebugTraceLogicAction("dashAwayLeftLS"), Types.Sequence.Serial); logicSet13.AddAction(new RunFunctionLogicAction(this, "Dash", new object[] { -1 }), Types.Sequence.Serial); logicSet13.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet13.AddAction(new RunFunctionLogicAction(this, "DashComplete", new object[0]), Types.Sequence.Serial); LogicSet logicSet14 = new LogicSet(this); logicSet14.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet14.AddAction(new ChangeSpriteLogicAction("EnemyLastBossRun_Character", true, true), Types.Sequence.Serial); logicSet14.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet14.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet14.AddAction(new DelayLogicAction(0.35f, 1.15f, false), Types.Sequence.Serial); logicSet14.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet15 = new LogicSet(this); logicSet15.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet15.AddAction(new ChangeSpriteLogicAction("EnemyLastBossRun_Character", true, true), Types.Sequence.Serial); logicSet15.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet15.AddAction(new DelayLogicAction(0.2f, 1f, false), Types.Sequence.Serial); logicSet15.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet16 = new LogicSet(this); logicSet16.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet16.AddAction(new ChangeSpriteLogicAction("EnemyLastBossIdle_Character", true, true), Types.Sequence.Serial); logicSet16.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet16.AddAction(new DelayLogicAction(0.2f, 0.5f, false), Types.Sequence.Serial); LogicSet logicSet17 = new LogicSet(this); logicSet17.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet17.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet17.AddAction(new ChangeSpriteLogicAction("EnemyLastBossAttack_Character", false, false), Types.Sequence.Serial); logicSet17.AddAction(new PlayAnimationLogicAction("Start", "BeforeAttack", false), Types.Sequence.Serial); logicSet17.AddAction(new DelayLogicAction(this.m_lastBossAttackDelay, false), Types.Sequence.Serial); logicSet17.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSwing" }), Types.Sequence.Serial); logicSet17.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_Effort_01", "FinalBoss_St2_Effort_02", "FinalBoss_St2_Effort_03", "FinalBoss_St2_Effort_04", "FinalBoss_St2_Effort_05" }), Types.Sequence.Serial); logicSet17.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet17.AddAction(new ChangeSpriteLogicAction("EnemyLastBossIdle_Character", true, true), Types.Sequence.Serial); logicSet17.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet18 = new LogicSet(this); this.RunTeleportLS(logicSet18, "Centre"); logicSet18.AddAction(new ChangeSpriteLogicAction("EnemyLastBossSpell_Character", false, false), Types.Sequence.Serial); logicSet18.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam_Prime" }), Types.Sequence.Serial); logicSet18.AddAction(new PlayAnimationLogicAction("Start", "BeforeCast", false), Types.Sequence.Serial); logicSet18.AddAction(new DelayLogicAction(this.m_castDelay, false), Types.Sequence.Serial); logicSet18.AddAction(new RunFunctionLogicAction(this, "CastSpears", new object[] { this.m_numSpears, this.m_spearDuration }), Types.Sequence.Serial); logicSet18.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam" }), Types.Sequence.Serial); logicSet18.AddAction(new PlayAnimationLogicAction("BeforeCast", "End", false), Types.Sequence.Serial); logicSet18.AddAction(new DelayLogicAction(this.m_spearDuration + 1f, false), Types.Sequence.Serial); LogicSet logicSet19 = new LogicSet(this); logicSet19.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0), Types.Sequence.Serial); logicSet19.AddAction(new ChangeSpriteLogicAction("EnemyLastBossSpell2_Character", false, false), Types.Sequence.Serial); logicSet19.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSummon_a" }), Types.Sequence.Serial); logicSet19.AddAction(new PlayAnimationLogicAction("Start", "Cast", false), Types.Sequence.Serial); logicSet19.AddAction(new DelayLogicAction(this.m_castDelay, false), Types.Sequence.Serial); logicSet19.AddAction(new RunFunctionLogicAction(this, "CastSwordsRandom", new object[0]), Types.Sequence.Serial); logicSet19.AddAction(new PlayAnimationLogicAction("Cast", "End", false), Types.Sequence.Serial); logicSet19.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet20 = new LogicSet(this); logicSet20.AddAction(new LockFaceDirectionLogicAction(true, 1), Types.Sequence.Serial); this.RunTeleportLS(logicSet20, "Left"); logicSet20.AddAction(new ChangeSpriteLogicAction("EnemyLastBossSpell_Character", false, false), Types.Sequence.Serial); logicSet20.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam_Prime" }), Types.Sequence.Serial); logicSet20.AddAction(new PlayAnimationLogicAction("Start", "BeforeCast", false), Types.Sequence.Serial); logicSet20.AddAction(new DelayLogicAction(this.m_castDelay, false), Types.Sequence.Serial); logicSet20.AddAction(new RunFunctionLogicAction(this, "CastSwords", new object[] { true }), Types.Sequence.Serial); logicSet20.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam" }), Types.Sequence.Serial); logicSet20.AddAction(new PlayAnimationLogicAction("BeforeCast", "End", false), Types.Sequence.Serial); logicSet20.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); logicSet20.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet21 = new LogicSet(this); logicSet21.AddAction(new LockFaceDirectionLogicAction(true, -1), Types.Sequence.Serial); this.RunTeleportLS(logicSet21, "Right"); logicSet21.AddAction(new ChangeSpriteLogicAction("EnemyLastBossSpell_Character", false, false), Types.Sequence.Serial); logicSet21.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam_Prime" }), Types.Sequence.Serial); logicSet21.AddAction(new PlayAnimationLogicAction("Start", "BeforeCast", false), Types.Sequence.Serial); logicSet21.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_BlockLaugh" }), Types.Sequence.Serial); logicSet21.AddAction(new DelayLogicAction(this.m_castDelay, false), Types.Sequence.Serial); logicSet21.AddAction(new RunFunctionLogicAction(this, "CastSwords", new object[] { false }), Types.Sequence.Serial); logicSet21.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "FinalBoss_St2_SwordSlam" }), Types.Sequence.Serial); logicSet21.AddAction(new PlayAnimationLogicAction("BeforeCast", "End", false), Types.Sequence.Serial); logicSet21.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); logicSet21.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet22 = new LogicSet(this); logicSet22.AddAction(new RunFunctionLogicAction(this, "CastDamageShield", new object[] { this.m_orbsEasy }), Types.Sequence.Serial); logicSet22.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet23 = new LogicSet(this); logicSet23.AddAction(new RunFunctionLogicAction(this, "CastDamageShield", new object[] { this.m_orbsNormal }), Types.Sequence.Serial); logicSet23.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); LogicSet logicSet24 = new LogicSet(this); logicSet24.AddAction(new RunFunctionLogicAction(this, "CastDamageShield", new object[] { this.m_orbsHard }), Types.Sequence.Serial); logicSet24.AddAction(new DelayLogicAction(0f, false), Types.Sequence.Serial); logicSet24.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet9, logicSet5, logicSet6, logicSet7, logicSet11 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet14, logicSet15, logicSet16, logicSet17, logicSet18, logicSet19, logicSet20, logicSet21 }); this.m_damageShieldLB.AddLogicSet(new LogicSet[] { logicSet22, logicSet23, logicSet24 }); this.m_cooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet9, logicSet5, logicSet6, logicSet7, logicSet11 }); this.m_secondFormCooldownLB.AddLogicSet(new LogicSet[] { logicSet14, logicSet15, logicSet16 }); this.m_generalBasicNeoLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet10, logicSet5, logicSet6, logicSet8, logicSet11 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_damageShieldLB); this.logicBlocksToDispose.Add(this.m_cooldownLB); this.logicBlocksToDispose.Add(this.m_secondFormCooldownLB); this.logicBlocksToDispose.Add(this.m_generalBasicNeoLB); this.m_firstFormDashAwayLB.AddLogicSet(new LogicSet[] { logicSet13, logicSet12 }); this.logicBlocksToDispose.Add(this.m_firstFormDashAwayLB); LogicBlock arg_139D_1 = this.m_cooldownLB; int[] array = new int[8]; array[0] = 70; array[2] = 30; base.SetCooldownLogicBlock(arg_139D_1, array); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new StopAnimationLogicAction(), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); this.m_walkingLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); }
public override void OnEnter() { SoundManager.StopMusic(0f); this.Player.CurrentHealth = this.Player.MaxHealth; this.Player.CurrentMana = this.Player.MaxMana; Game.PlayerStats.HeadPiece = 7; this.Player.AttachedLevel.SetMapDisplayVisibility(false); this.Player.AttachedLevel.SetPlayerHUDVisibility(false); if (this.m_rainSFX != null) { this.m_rainSFX.Dispose(); } this.m_rainSFX = SoundManager.PlaySound("Rain1"); this.Player.UpdateCollisionBoxes(); this.Player.Position = new Vector2(10f, 660f - ((float)this.Player.Bounds.Bottom - this.Player.Y)); this.Player.State = 1; LogicSet logicSet = new LogicSet(this.Player); logicSet.AddAction(new RunFunctionLogicAction(this.Player, "LockControls", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f), -1f), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(2.5f, false), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this.Player, "CurrentSpeed", 0), Types.Sequence.Serial); this.Player.RunExternalLogicSet(logicSet); Tween.RunFunction(2f, this, "Intro1", new object[0]); base.OnEnter(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyEnergonWalk_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.2f, 0.75f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyEnergonWalk_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.2f, 0.75f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.2f, 0.75f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEnergonAttack_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeAttack", false), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this, "FireCurrentTypeProjectile", new object[0]), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character", true, true), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new ChangePropertyLogicAction(this, "CurrentSpeed", 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEnergonAttack_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeAttack", false), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this, "SwitchRandomType", new object[0]), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyEnergonIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(2f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet5 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 0, 0, 100 }); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Move01", "Blob_Move02", "Blob_Move03", "Blank", "Blank", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1.1f, 1.9f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Move01", "Blob_Move02", "Blob_Move03", "Blank", "Blank", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1f, 1.5f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.5f, 0.9f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump", false), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.JumpDelay, false), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, base.Speed * 6.75f), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Jump" }), Types.Sequence.Serial); logicSet4.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet4.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Land" }), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, base.Speed), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Jump", false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.Tag = 2; ProjectileData data = new ProjectileData(this) { SpriteName = "SpellDamageShield_Sprite", SourceAnchor = new Vector2(0f, 10f), Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, Angle = new Vector2(0f, 0f), AngleOffset = 0f, CollidesWithTerrain = false, Scale = base.ProjectileScale, Lifespan = this.ExpertBlobProjectileDuration, LockPosition = true }; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump", false), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.JumpDelay, false), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, base.Speed * 6.75f), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Jump" }), Types.Sequence.Serial); logicSet5.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet5.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet5.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Land" }), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, base.Speed), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Jump", false), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump", false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.JumpDelay, false), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, base.Speed * 6.75f), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Jump" }), Types.Sequence.Serial); logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet6.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobAir_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, data), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet6.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Land" }), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, base.Speed), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobJump_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Jump", false), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyBlobIdle_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Move01", "Blob_Move02", "Blob_Move03", "Blank", "Blank", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(1.1f, 1.9f, false), Types.Sequence.Serial); LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet8.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Move01", "Blob_Move02", "Blob_Move03", "Blank", "Blank", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(1f, 1.5f, false), Types.Sequence.Serial); LogicSet logicSet9 = new LogicSet(this); logicSet9.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(0.5f, 0.9f, false), Types.Sequence.Serial); LogicSet logicSet10 = new LogicSet(this); logicSet10.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet10.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet10.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossJump_Character", false, false), Types.Sequence.Serial); logicSet10.AddAction(new PlayAnimationLogicAction("Start", "BeforeJump", false), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(this.JumpDelay, false), Types.Sequence.Serial); logicSet10.AddAction(new MoveLogicAction(this.m_target, true, base.Speed * 6.75f), Types.Sequence.Serial); logicSet10.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Jump" }), Types.Sequence.Serial); logicSet10.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossAir_Character", true, true), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet10.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet10.AddAction(new Play3DSoundLogicAction(this, this.m_target, new string[] { "Blob_Land" }), Types.Sequence.Serial); logicSet10.AddAction(new MoveLogicAction(this.m_target, true, base.Speed), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossJump_Character", false, false), Types.Sequence.Serial); logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Jump", false), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossIdle_Character", true, true), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet10.Tag = 2; LogicSet logicSet11 = new LogicSet(this); logicSet11.AddAction(new ChangeSpriteLogicAction("EnemyBlobBossAir_Character", true, true), Types.Sequence.Serial); logicSet11.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "FairyMove1", "FairyMove2", "FairyMove3" }), Types.Sequence.Serial); logicSet11.AddAction(new ChaseLogicAction(this.m_target, true, 1f, -1f), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet5 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet6 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet7, logicSet8, logicSet9, logicSet10 }); this.m_generalNeoLB.AddLogicSet(new LogicSet[] { logicSet11 }); this.m_generalBossCooldownLB.AddLogicSet(new LogicSet[] { logicSet7, logicSet8, logicSet9 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); this.logicBlocksToDispose.Add(this.m_generalNeoLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalBossCooldownLB); if (base.Difficulty == GameTypes.EnemyDifficulty.MINIBOSS) { base.SetCooldownLogicBlock(this.m_generalBossCooldownLB, new int[] { 40, 40, 20 }); this.ChangeSprite("EnemyBlobBossIdle_Character"); } else { base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 40, 40, 20 }); } base.InitializeLogic(); }
public void MovePlayerTo() { this.m_target.StopAllSpells(); this.m_levelScreen.ProjectileManager.DestroyAllProjectiles(true); this.m_inSecondForm = true; this.m_isKilled = true; this.m_levelScreen.RunCinematicBorders(16f); this.m_currentActiveLB.StopLogicBlock(); int num = 250; Vector2 zero = Vector2.Zero; if ((this.m_target.X < base.X && base.X > this.m_levelScreen.CurrentRoom.X + 500f) || base.X > (float)(this.m_levelScreen.CurrentRoom.Bounds.Right - 500)) { zero = new Vector2(base.X - (float)num, base.Y); if (zero.X > (float)(this.m_levelScreen.CurrentRoom.Bounds.Right - 500)) { zero.X = (float)(this.m_levelScreen.CurrentRoom.Bounds.Right - 500); } } else { zero = new Vector2(base.X + (float)num, base.Y); } this.m_target.Flip = SpriteEffects.None; if (zero.X < this.m_target.X) { this.m_target.Flip = SpriteEffects.FlipHorizontally; } float num2 = CDGMath.DistanceBetweenPts(this.m_target.Position, zero) / this.m_target.Speed; this.m_target.UpdateCollisionBoxes(); this.m_target.State = 1; this.m_target.IsWeighted = false; this.m_target.AccelerationY = 0f; this.m_target.AccelerationX = 0f; this.m_target.IsCollidable = false; this.m_target.Y = (float)(this.m_levelScreen.CurrentRoom.Bounds.Bottom - 180) - ((float)this.m_target.Bounds.Bottom - this.m_target.Y); this.m_target.CurrentSpeed = 0f; this.m_target.LockControls(); this.m_target.ChangeSprite("PlayerWalking_Character"); LogicSet logicSet = new LogicSet(this.m_target); logicSet.AddAction(new DelayLogicAction(num2, false), Types.Sequence.Serial); this.m_target.RunExternalLogicSet(logicSet); this.m_target.PlayAnimation(true); Tween.To(this.m_target, num2, new Easing(Tween.EaseNone), new string[] { "X", zero.X.ToString() }); Tween.AddEndHandlerToLastTween(this, "SecondFormDeath", new object[0]); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightWalk_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.2f, 1f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightWalk_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.2f, 1f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.2f, 1f, false), Types.Sequence.Serial); LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.AttackThrustDelay, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet4.AddAction(new MoveDirectionLogicAction(this.AttackThrustSpeed), Types.Sequence.Serial); logicSet4.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect", new object[] { this, 20, 0.3f }), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Parallel); logicSet4.AddAction(new DelayLogicAction(this.AttackThrustDuration, false), Types.Sequence.Serial); logicSet4.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet4.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.AttackThrustDelayExpert, false), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet5.AddAction(new MoveDirectionLogicAction(this.AttackThrustSpeedExpert), Types.Sequence.Serial); logicSet5.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect", new object[] { this, 20, 0.3f }), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Parallel); logicSet5.AddAction(new DelayLogicAction(this.AttackThrustDurationExpert, false), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet5.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.AttackThrustDelayMiniBoss, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet6.AddAction(new MoveDirectionLogicAction(this.AttackThrustSpeedMiniBoss), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect", new object[] { this, 20, 0.3f }), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Parallel); logicSet6.AddAction(new DelayLogicAction(this.AttackThrustDurationMiniBoss, false), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet6.AddAction(new MoveDirectionLogicAction(this.AttackThrustSpeedMiniBoss), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect", new object[] { this, 20, 0.3f }), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Parallel); logicSet6.AddAction(new DelayLogicAction(this.AttackThrustDurationMiniBoss, false), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet6.AddAction(new MoveDirectionLogicAction(this.AttackThrustSpeedMiniBoss), Types.Sequence.Serial); logicSet6.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ImpactEffectPool, "DisplayThrustDustEffect", new object[] { this, 20, 0.3f }), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction("AttackStart", "End", false), Types.Sequence.Parallel); logicSet6.AddAction(new DelayLogicAction(this.AttackThrustDurationMiniBoss, false), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(null, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet6.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet6.Tag = 2; ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EnemySpearKnightWave_Sprite", SourceAnchor = new Vector2(30f, 0f), Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, Angle = new Vector2(0f, 0f), Scale = base.ProjectileScale }; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet7.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.AttackProjectileDelay, false), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnight_Projectile" }), Types.Sequence.Serial); logicSet7.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet7.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet7.Tag = 2; LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet8.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet8.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(this.AttackProjectileExpertDelay, false), Types.Sequence.Serial); this.ThrowThreeProjectiles(logicSet8); logicSet8.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet8.Tag = 2; LogicSet logicSet9 = new LogicSet(this); logicSet9.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet9.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(this.AttackProjectileMinibossDelay, false), Types.Sequence.Serial); logicSet9.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnight_Projectile" }), Types.Sequence.Serial); logicSet9.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f), Types.Sequence.Serial); this.ThrowTwoProjectiles(logicSet9); logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); this.ThrowThreeProjectiles(logicSet9); logicSet9.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); logicSet9.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet9.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet9.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); this.ThrowTwoProjectiles(logicSet9); logicSet9.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet9.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet9.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet9.Tag = 2; LogicSet logicSet10 = new LogicSet(this); logicSet10.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(this.AttackProjectileMinibossDelay, false), Types.Sequence.Serial); logicSet10.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnight_Projectile" }), Types.Sequence.Serial); logicSet10.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.0333333351f), Types.Sequence.Serial); this.ThrowThreeProjectiles(logicSet10); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); this.ThrowTwoProjectiles(logicSet10); logicSet10.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); logicSet10.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightAttack2_Character", true, true), Types.Sequence.Serial); logicSet10.AddAction(new PlayAnimationLogicAction("Start", "Windup", false), Types.Sequence.Serial); logicSet10.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); this.ThrowThreeProjectiles(logicSet10); logicSet10.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet10.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet10.AddAction(new ChangePropertyLogicAction(this, "AnimationDelay", 0.1f), Types.Sequence.Serial); logicSet10.Tag = 2; LogicSet logicSet11 = new LogicSet(this); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemySpearKnightIdle_Character", true, true), Types.Sequence.Serial); logicSet11.AddAction(new MoveLogicAction(this.m_target, false, 300f), Types.Sequence.Serial); logicSet11.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); logicSet11.AddAction(new DelayLogicAction(0.3f, false), Types.Sequence.Serial); logicSet11.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet11.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); this.ThrowRapidProjectiles(logicSet11); this.ThrowRapidProjectiles(logicSet11); this.ThrowRapidProjectiles(logicSet11); logicSet11.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet11.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet11.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet11.AddAction(new JumpLogicAction(0f), Types.Sequence.Serial); this.ThrowRapidProjectiles(logicSet11); this.ThrowRapidProjectiles(logicSet11); this.ThrowRapidProjectiles(logicSet11); logicSet11.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet11.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet11.Tag = 2; this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4, logicSet7 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet5, logicSet8 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet6, logicSet9, logicSet10 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 55, 25, 20 }); projectileData.Dispose(); base.InitializeLogic(); }
protected override void InitializeLogic() { this.m_extractLS = new LogicSet(this); this.m_extractLS.AddAction(new PlayAnimationLogicAction(1, 2, false), Types.Sequence.Serial); this.m_extractLS.AddAction(new DelayLogicAction(this.ExtractDelay, false), Types.Sequence.Serial); this.m_extractLS.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "TrapSpike_01", "TrapSpike_02", "TrapSpike_03" }), Types.Sequence.Serial); this.m_extractLS.AddAction(new PlayAnimationLogicAction(2, 4, false), Types.Sequence.Serial); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyNinjaRun_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.25f, 0.85f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyNinjaRun_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(0.25f, 0.85f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new StopAnimationLogicAction(), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(0.25f, 0.85f, false), Types.Sequence.Serial); ProjectileData projectileData = new ProjectileData(this) { SpriteName = "ShurikenProjectile1_Sprite", SourceAnchor = new Vector2(15f, 0f), Target = this.m_target, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 20f, Damage = base.Damage, AngleOffset = 0f, CollidesWithTerrain = true, Scale = base.ProjectileScale }; LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character", true, true), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.PauseBeforeProjectile, false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(1, 3, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Ninja_ThrowStar_01", "Ninja_ThrowStar_02", "Ninja_ThrowStar_03" }), Types.Sequence.Serial); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(4, 5, false), Types.Sequence.Serial); logicSet4.AddAction(new DelayLogicAction(this.PauseAfterProjectile, false), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.PauseBeforeProjectile, false), Types.Sequence.Serial); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction(1, 3, false), Types.Sequence.Serial); logicSet5.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Ninja_ThrowStar_01", "Ninja_ThrowStar_02", "Ninja_ThrowStar_03" }), Types.Sequence.Serial); logicSet5.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -10f; logicSet5.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = 10f; logicSet5.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet5.AddAction(new PlayAnimationLogicAction(4, 5, false), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(this.PauseAfterProjectile, false), Types.Sequence.Serial); logicSet5.Tag = 2; LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyNinjaIdle_Character", true, true), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.PauseBeforeProjectile, false), Types.Sequence.Serial); logicSet6.AddAction(new ChangeSpriteLogicAction("EnemyNinjaThrow_Character", false, false), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction(1, 3, false), Types.Sequence.Serial); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Ninja_ThrowStar_01", "Ninja_ThrowStar_02", "Ninja_ThrowStar_03" }), Types.Sequence.Serial); projectileData.AngleOffset = 0f; logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -5f; logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = 5f; logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -25f; logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = 25f; logicSet6.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet6.AddAction(new PlayAnimationLogicAction(4, 5, false), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(this.PauseAfterProjectile, false), Types.Sequence.Serial); logicSet6.Tag = 2; LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "CreateLog", null), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(this.TeleportDelay, false), Types.Sequence.Serial); logicSet7.AddAction(new RunFunctionLogicAction(this, "CreateSmoke", null), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet7.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", true), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet7.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet7.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet7.Tag = 2; LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new LockFaceDirectionLogicAction(true, 0), Types.Sequence.Serial); logicSet8.AddAction(new RunFunctionLogicAction(this, "CreateLog", null), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(this.TeleportDelay, false), Types.Sequence.Serial); logicSet8.AddAction(new RunFunctionLogicAction(this, "CreateSmoke", null), Types.Sequence.Serial); projectileData.Target = null; logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Ninja_ThrowStar_01", "Ninja_ThrowStar_02", "Ninja_ThrowStar_03" }), Types.Sequence.Serial); projectileData.AngleOffset = 45f; logicSet8.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = 135f; logicSet8.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -45f; logicSet8.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -135f; logicSet8.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet8.AddAction(new ChangePropertyLogicAction(this, "IsWeighted", true), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet8.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(0.15f, false), Types.Sequence.Serial); logicSet8.AddAction(new LockFaceDirectionLogicAction(false, 0), Types.Sequence.Serial); logicSet8.Tag = 2; this.m_basicTeleportAttackLB.AddLogicSet(new LogicSet[] { logicSet7 }); this.m_expertTeleportAttackLB.AddLogicSet(new LogicSet[] { logicSet8 }); this.logicBlocksToDispose.Add(this.m_basicTeleportAttackLB); this.logicBlocksToDispose.Add(this.m_expertTeleportAttackLB); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet4 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet5 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3, logicSet6 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); LogicBlock arg_906_1 = this.m_generalCooldownLB; int[] array = new int[3]; array[0] = 50; array[1] = 50; base.SetCooldownLogicBlock(arg_906_1, array); projectileData.Dispose(); base.InitializeLogic(); }
public void Intro2() { this.m_inSecondPart = true; Tween.RunFunction(3f, this.Player.AttachedLevel, "LightningEffectTwice", new object[0]); LogicSet logicSet = new LogicSet(this.Player); logicSet.AddAction(new DelayLogicAction(5f, false), Types.Sequence.Serial); logicSet.AddAction(new MoveDirectionLogicAction(new Vector2(1f, 0f), -1f), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerWalking_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(true), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.7f, false), Types.Sequence.Serial); logicSet.AddAction(new ChangePropertyLogicAction(this.Player, "CurrentSpeed", 0), Types.Sequence.Serial); this.Player.RunExternalLogicSet(logicSet); Tween.RunFunction(5.3f, this, "Intro3", new object[0]); }
private void ThrowThreeProjectiles(LogicSet ls) { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EyeballProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = this.m_target, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, CollidesWithTerrain = false, Scale = base.ProjectileScale, Angle = new Vector2(0f, 0f) }; for (int i = 0; i <= 3; i++) { projectileData.AngleOffset = 0f; ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = 45f; ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = -45f; ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); ls.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); } projectileData.Dispose(); }
protected override void InitializeLogic() { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "TurretProjectile_Sprite", SourceAnchor = Vector2.Zero, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, CollidesWithTerrain = true, Scale = base.ProjectileScale }; LogicSet logicSet = new LogicSet(this); projectileData.Angle = new Vector2(0f, 0f); logicSet.AddAction(new RunFunctionLogicAction(this, "FireAnimation", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Eyeball_ProjectileAttack" }), Types.Sequence.Serial); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(90f, 90f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(180f, 180f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, 1f, false), Types.Sequence.Serial); logicSet.Tag = 2; LogicSet logicSet2 = new LogicSet(this); projectileData.Angle = new Vector2(45f, 45f); logicSet2.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet2.AddAction(new RunFunctionLogicAction(this, "FireAnimation", new object[0]), Types.Sequence.Serial); logicSet2.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Eyeball_ProjectileAttack" }), Types.Sequence.Serial); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-45f, -45f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(135f, 135f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-135f, -135f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(90f, 90f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(180f, 180f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(0f, 0f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character", true, true), Types.Sequence.Serial); logicSet2.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1f, 1f, false), Types.Sequence.Serial); logicSet2.Tag = 2; LogicSet logicSet3 = new LogicSet(this); projectileData.Angle = new Vector2(45f, 45f); projectileData.CollidesWithTerrain = false; projectileData.SpriteName = "GhostProjectile_Sprite"; logicSet3.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet3.AddAction(new RunFunctionLogicAction(this, "FireAnimation", new object[0]), Types.Sequence.Serial); logicSet3.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(this.FireballDelay, false), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Eyeball_ProjectileAttack" }), Types.Sequence.Serial); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-45f, -45f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(135f, 135f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-135f, -135f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(90f, 90f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(180f, 180f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(0f, 0f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(1f, 1f, false), Types.Sequence.Serial); logicSet3.AddAction(new RunFunctionLogicAction(this, "FireAnimation", new object[0]), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Eyeball_ProjectileAttack" }), Types.Sequence.Serial); projectileData.Angle = new Vector2(25f, 25f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-25f, -25f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(115f, 115f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-115f, -115f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-70f, -70f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(70f, 70f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(160f, 160f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-160f, -160f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyStarburstIdle_Character", true, true), Types.Sequence.Serial); logicSet3.AddAction(new ChangePropertyLogicAction(this._objectList[1], "Rotation", 45), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(1.25f, 1.25f, false), Types.Sequence.Serial); logicSet3.Tag = 2; LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new DelayLogicAction(0.5f, 0.5f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet4 }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet2, logicSet4 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet3, logicSet4 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet2, logicSet4 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); projectileData.Dispose(); base.InitializeLogic(); }
private void ThrowCardinalProjectiles(LogicSet ls) { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EyeballProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, Scale = base.ProjectileScale, CollidesWithTerrain = false, Angle = new Vector2(0f, 0f) }; int num = CDGMath.RandomPlusMinus(); for (int i = 0; i <= 170; i += 10) { projectileData.AngleOffset = (float)(i * num); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = (float)(90 + i * num); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = (float)(180 + i * num); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.AngleOffset = (float)(270 + i * num); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); ls.AddAction(new DelayLogicAction(0.175f, false), Types.Sequence.Serial); } projectileData.Dispose(); }
private void ThrowTwoProjectiles(LogicSet ls) { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EnemySpearKnightWave_Sprite", SourceAnchor = new Vector2(30f, 0f), Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, Angle = new Vector2(22f, 22f) }; ls.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "SpearKnightAttack1" }), Types.Sequence.Serial); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-22f, -22f); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); ls.AddAction(new PlayAnimationLogicAction("Attack", "End", false), Types.Sequence.Serial); projectileData.Dispose(); }
public void TeleportPlayer(Vector2 position, TeleporterObj teleporter = null) { base.CurrentSpeed = 0f; this.Scale = this.m_internalScale; if (teleporter == null) { teleporter = this.m_lastTouchedTeleporter; } Console.WriteLine(string.Concat(new object[] { "Player pos: ", base.Position, " teleporter: ", teleporter.Position })); Tween.To(this, 0.4f, new Easing(Linear.EaseNone), new string[] { "X", teleporter.X.ToString() }); Tween.To(this, 0.05f, new Easing(Linear.EaseNone), new string[] { "delay", "1.5", "ScaleX", "0" }); Vector2 scale = this.Scale; this.ScaleX = 0f; Tween.To(this, 0.05f, new Easing(Linear.EaseNone), new string[] { "delay", "3.3", "ScaleX", scale.X.ToString() }); this.ScaleX = scale.X; Vector2 relativePos = new Vector2(position.X, position.Y - ((float)this.TerrainBounds.Bottom - base.Y)); LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new RunFunctionLogicAction(this, "LockControls", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerJumping_Character", true, true), Types.Sequence.Serial); logicSet.AddAction(new JumpLogicAction(500f), Types.Sequence.Serial); logicSet.AddAction(new PlaySoundLogicAction(new string[] { "Player_Jump_04" }), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(teleporter, "SetCollision", new object[] { true }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.4f, false), Types.Sequence.Serial); logicSet.AddAction(new GroundCheckLogicAction(), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("PlayerLevelUp_Character", true, false), Types.Sequence.Parallel); logicSet.AddAction(new DelayLogicAction(0.1f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this.AttachedLevel.ImpactEffectPool, "DisplayTeleportEffect", new object[] { new Vector2(teleporter.X, (float)teleporter.Bounds.Top) }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1f, false), Types.Sequence.Serial); logicSet.AddAction(new PlaySoundLogicAction(new string[] { "Teleport_Disappear" }), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this.AttachedLevel.ImpactEffectPool, "MegaTeleport", new object[] { new Vector2(teleporter.X, (float)teleporter.Bounds.Top), this.Scale }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.8f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ScreenManager, "StartWipeTransition", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(teleporter, "SetCollision", new object[] { false }), Types.Sequence.Serial); logicSet.AddAction(new TeleportLogicAction(null, relativePos), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.05f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this.m_levelScreen.ScreenManager, "EndWipeTransition", new object[0]), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.5f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this.AttachedLevel.ImpactEffectPool, "MegaTeleportReverse", new object[] { new Vector2(position.X - 5f, position.Y + 57f), scale }), Types.Sequence.Serial); logicSet.AddAction(new PlaySoundLogicAction(new string[] { "Teleport_Reappear" }), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(0.2f, false), Types.Sequence.Serial); logicSet.AddAction(new RunFunctionLogicAction(this, "LastBossDoorHack", new object[0]), Types.Sequence.Serial); this.RunExternalLogicSet(logicSet); }
private void ThrowRapidProjectiles(LogicSet ls) { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "EnemySpearKnightWave_Sprite", SourceAnchor = new Vector2(130f, -28f), Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = false, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, Angle = Vector2.Zero }; ls.AddAction(new DelayLogicAction(0.2f, 0.35f, false), Types.Sequence.Serial); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); ls.AddAction(new DelayLogicAction(0.2f, 0.35f, false), Types.Sequence.Serial); projectileData.SourceAnchor = new Vector2(130f, 28f); ls.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Dispose(); }
protected override void InitializeLogic() { ProjectileData projectileData = new ProjectileData(this) { SpriteName = "PlantProjectile_Sprite", SourceAnchor = Vector2.Zero, Target = null, Speed = new Vector2(this.ProjectileSpeed, this.ProjectileSpeed), IsWeighted = true, RotationSpeed = 0f, Damage = base.Damage, AngleOffset = 0f, CollidesWithTerrain = true, Scale = base.ProjectileScale }; LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Squirm_01", "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03" }), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(1, base.TotalFrames - 1, false), Types.Sequence.Serial); logicSet.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Attack_01" }), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-75f, -75f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-105f, -105f); logicSet.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet.AddAction(new PlayAnimationLogicAction(base.TotalFrames - 1, base.TotalFrames, false), Types.Sequence.Serial); logicSet.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet.Tag = 2; LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false), Types.Sequence.Serial); logicSet2.AddAction(new PlayAnimationLogicAction(1, base.TotalFrames - 1, false), Types.Sequence.Serial); logicSet2.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Attack_01" }), Types.Sequence.Serial); projectileData.Angle = new Vector2(-60f, -60f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-75f, -75f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-105f, -105f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-120f, -120f); logicSet2.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet2.AddAction(new PlayAnimationLogicAction(base.TotalFrames - 1, base.TotalFrames, false), Types.Sequence.Serial); logicSet2.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet2.Tag = 2; LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false), Types.Sequence.Serial); logicSet3.AddAction(new PlayAnimationLogicAction(1, base.TotalFrames - 1, false), Types.Sequence.Serial); logicSet3.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Attack_01" }), Types.Sequence.Serial); projectileData.Angle = new Vector2(-45f, -45f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-60f, -60f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-85f, -85f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-95f, -95f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-75f, -75f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-105f, -105f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-120f, -120f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-135f, -135f); logicSet3.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet3.AddAction(new PlayAnimationLogicAction(base.TotalFrames - 1, base.TotalFrames, false), Types.Sequence.Serial); logicSet3.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet3.Tag = 2; LogicSet logicSet4 = new LogicSet(this); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyPlantAttack_Character", false, false), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(1, base.TotalFrames - 1, false), Types.Sequence.Serial); logicSet4.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Attack_01" }), Types.Sequence.Serial); projectileData.Angle = new Vector2(-60f, -60f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-87f, -87f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-90f, -90f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-93f, -93f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-75f, -75f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-105f, -105f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); projectileData.Angle = new Vector2(-120f, -120f); logicSet4.AddAction(new FireProjectileLogicAction(this.m_levelScreen.ProjectileManager, projectileData), Types.Sequence.Serial); logicSet4.AddAction(new PlayAnimationLogicAction(base.TotalFrames - 1, base.TotalFrames, false), Types.Sequence.Serial); logicSet4.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet4.Tag = 2; LogicSet logicSet5 = new LogicSet(this); logicSet5.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet5.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet5.AddAction(new DelayLogicAction(0.25f, false), Types.Sequence.Serial); LogicSet logicSet6 = new LogicSet(this); logicSet6.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Squirm_01", "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet6.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet6.AddAction(new DelayLogicAction(0.25f, 0.45f, false), Types.Sequence.Serial); LogicSet logicSet7 = new LogicSet(this); logicSet7.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Squirm_01", "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet7.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet7.AddAction(new DelayLogicAction(0.25f, 0.45f, false), Types.Sequence.Serial); LogicSet logicSet8 = new LogicSet(this); logicSet8.AddAction(new Play3DSoundLogicAction(this, Game.ScreenManager.Player, new string[] { "Enemy_Venus_Squirm_01", "Enemy_Venus_Squirm_02", "Enemy_Venus_Squirm_03", "Blank", "Blank", "Blank" }), Types.Sequence.Serial); logicSet8.AddAction(new ChangeSpriteLogicAction("EnemyPlantIdle_Character", true, true), Types.Sequence.Serial); logicSet8.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet8.AddAction(new DelayLogicAction(0.25f, 0.45f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet }); this.m_generalAdvancedLB.AddLogicSet(new LogicSet[] { logicSet2 }); this.m_generalExpertLB.AddLogicSet(new LogicSet[] { logicSet3 }); this.m_generalMiniBossLB.AddLogicSet(new LogicSet[] { logicSet4 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet5 }); this.m_generalCooldownExpertLB.AddLogicSet(new LogicSet[] { logicSet6, logicSet7, logicSet8 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalAdvancedLB); this.logicBlocksToDispose.Add(this.m_generalExpertLB); this.logicBlocksToDispose.Add(this.m_generalMiniBossLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); this.logicBlocksToDispose.Add(this.m_generalCooldownExpertLB); base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 100 }); if (base.Difficulty == GameTypes.EnemyDifficulty.MINIBOSS) { LogicBlock arg_AA5_1 = this.m_generalCooldownExpertLB; int[] array = new int[3]; array[0] = 50; array[1] = 50; base.SetCooldownLogicBlock(arg_AA5_1, array); } projectileData.Dispose(); base.InitializeLogic(); }
protected override void InitializeLogic() { LogicSet logicSet = new LogicSet(this); logicSet.AddAction(new MoveLogicAction(this.m_target, true, -1f), Types.Sequence.Serial); logicSet.AddAction(new DelayLogicAction(1.25f, 2.75f, false), Types.Sequence.Serial); LogicSet logicSet2 = new LogicSet(this); logicSet2.AddAction(new MoveLogicAction(this.m_target, false, -1f), Types.Sequence.Serial); logicSet2.AddAction(new DelayLogicAction(1.25f, 2.75f, false), Types.Sequence.Serial); LogicSet logicSet3 = new LogicSet(this); logicSet3.AddAction(new StopAnimationLogicAction(), Types.Sequence.Serial); logicSet3.AddAction(new MoveLogicAction(this.m_target, true, 0f), Types.Sequence.Serial); logicSet3.AddAction(new DelayLogicAction(1f, 1.5f, false), Types.Sequence.Serial); this.m_generalBasicLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.m_generalCooldownLB.AddLogicSet(new LogicSet[] { logicSet, logicSet2, logicSet3 }); this.logicBlocksToDispose.Add(this.m_generalBasicLB); this.logicBlocksToDispose.Add(this.m_generalCooldownLB); base.SetCooldownLogicBlock(this.m_generalCooldownLB, new int[] { 40, 40, 20 }); base.InitializeLogic(); }