public EnemyObj_BallAndChain(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyFlailKnight_Character", target, physicsManager, levelToAttachTo, difficulty) { this.m_ballAndChain = new ProjectileObj("EnemyFlailKnightBall_Sprite"); this.m_ballAndChain.IsWeighted = false; this.m_ballAndChain.CollidesWithTerrain = false; this.m_ballAndChain.IgnoreBoundsCheck = true; this.m_ballAndChain.OutlineWidth = 2; this.m_ballAndChain2 = (this.m_ballAndChain.Clone() as ProjectileObj); this.m_chain = new SpriteObj("EnemyFlailKnightLink_Sprite"); this.m_chainLinksList = new List<Vector2>(); this.m_chainLinks2List = new List<Vector2>(); for (int i = 0; i < this.m_numChainLinks; i++) { this.m_chainLinksList.Add(default(Vector2)); } for (int j = 0; j < this.m_numChainLinks / 2; j++) { this.m_chainLinks2List.Add(default(Vector2)); } this.Type = 1; this.TintablePart = this._objectList[3]; this.m_walkSound = new FrameSoundObj(this, this.m_target, 1, new string[] { "KnightWalk1", "KnightWalk2" }); this.m_walkSound2 = new FrameSoundObj(this, this.m_target, 6, new string[] { "KnightWalk1", "KnightWalk2" }); }
public EnemyObj_EarthWizard(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyWizardIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { base.PlayAnimation(true); this.TintablePart = this._objectList[0]; this.Type = 5; }
public EnemyObj_LastBoss(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("PlayerIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { foreach (GameObj current in this._objectList) { current.TextureColor = new Color(100, 100, 100); } this.Type = 29; this.m_damageShieldProjectiles = new List<ProjectileObj>(); this._objectList[5].Visible = false; this._objectList[15].Visible = false; this._objectList[16].Visible = false; this._objectList[14].Visible = false; this._objectList[13].Visible = false; this._objectList[0].Visible = false; string text = (this._objectList[12] as IAnimateableObj).SpriteName; int startIndex = text.IndexOf("_") - 1; text = text.Remove(startIndex, 1); text = text.Replace("_", 7 + "_"); this._objectList[12].ChangeSprite(text); base.PlayAnimation(true); this.m_delayObj = new BlankObj(0, 0); this.m_walkDownSoundFinalBoss = new FrameSoundObj(this, 3, new string[] { "FinalBoss_St2_Foot_01", "FinalBoss_St2_Foot_02", "FinalBoss_St2_Foot_03" }); this.m_walkUpSoundFinalBoss = new FrameSoundObj(this, 6, new string[] { "FinalBoss_St2_Foot_04", "FinalBoss_St2_Foot_05" }); }
public EnemyObj_HomingTurret(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyHomingTurret_Character", target, physicsManager, levelToAttachTo, difficulty) { base.StopAnimation(); base.ForceDraw = true; this.Type = 28; base.PlayAnimationOnRestart = false; }
public EnemyObj_SpikeTrap(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemySpikeTrap_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 21; base.StopAnimation(); base.PlayAnimationOnRestart = false; base.NonKillable = true; }
public EnemyObj_Spark(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemySpark_Character", target, physicsManager, levelToAttachTo, difficulty) { base.IsWeighted = false; base.ForceDraw = true; this.Type = 24; base.NonKillable = true; }
public EnemyObj_Blob(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyBlobIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.MainBlob = true; this.TintablePart = this._objectList[0]; base.PlayAnimation(true); this.m_invincibleCounter = 0.5f; this.Type = 2; }
public EnemyObj_Portrait(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyPortrait_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 32; string spriteName = "FramePicture" + CDGMath.RandomInt(1, 16) + "_Sprite"; base.GetChildAt(0).ChangeSprite(spriteName); base.GetChildAt(0); base.DisableCollisionBoxRotations = false; }
public EnemyObj_Zombie(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyZombieLower_Character", target, physicsManager, levelToAttachTo, difficulty) { base.GoToFrame(base.TotalFrames); this.Lowered = true; base.ForceDraw = true; base.StopAnimation(); this.Type = 20; base.PlayAnimationOnRestart = false; }
public EnemyObj_Mimic(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyMimicIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 33; base.OutlineWidth = 0; this.m_closeSound = new FrameSoundObj(this, this.m_target, 1, new string[] { "Chest_Snap" }); }
public EnemyObj_Turret(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyTurretFire_Character", target, physicsManager, levelToAttachTo, difficulty) { base.IsCollidable = false; base.ForceDraw = true; this.Type = 17; base.StopAnimation(); base.PlayAnimationOnRestart = false; base.NonKillable = true; }
public EnemyObj_Ninja(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyNinjaIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 13; this.m_smoke = new SpriteObj("NinjaSmoke_Sprite"); this.m_smoke.AnimationDelay = 0.05f; this.m_log = new SpriteObj("Log_Sprite"); this.m_smoke.Visible = false; this.m_smoke.Scale = new Vector2(5f, 5f); this.m_log.Visible = false; this.m_log.OutlineWidth = 2; }
public EnemyObj_Eyeball(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyEyeballIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.m_pupil = new SpriteObj("EnemyEyeballPupil_Sprite"); this.AddChild(this.m_pupil); this.m_squishSound = new FrameSoundObj(this, this.m_target, 2, new string[] { "Eyeball_Prefire" }); this.Type = 6; base.DisableCollisionBoxRotations = false; }
public EnemyObj_Wolf(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyWargIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 19; this.m_startDelayCounter = this.m_startDelay; this.m_runFrameSound = new FrameSoundObj(this, 1, new string[] { "Wolf_Move01", "Wolf_Move02", "Wolf_Move03" }); }
public EnemyObj_Platform(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyPlatform_Character", target, physicsManager, levelToAttachTo, difficulty) { base.CollisionTypeTag = 1; this.Type = 27; base.CollidesBottom = false; base.CollidesLeft = false; base.CollidesRight = false; base.StopAnimation(); base.PlayAnimationOnRestart = false; base.NonKillable = true; base.DisableCollisionBoxRotations = false; }
public EnemyObj_ShieldKnight(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyShieldKnightIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 14; this.m_walkSound = new FrameSoundObj(this, this.m_target, 1, new string[] { "KnightWalk1", "KnightWalk2" }); this.m_walkSound2 = new FrameSoundObj(this, this.m_target, 6, new string[] { "KnightWalk1", "KnightWalk2" }); }
public static string BuildDungeonName(GameTypes.LevelType levelType) { switch (levelType) { case GameTypes.LevelType.CASTLE: return "Castle Hamson"; case GameTypes.LevelType.GARDEN: return "Forest Abkhazia"; case GameTypes.LevelType.DUNGEON: return "The Land of Darkness"; case GameTypes.LevelType.TOWER: return "The Maya"; default: return ""; } }
public EnemyObj_Energon(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyEnergonIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 23; this.m_shield = new SpriteObj("EnergonSwordShield_Sprite"); this.m_shield.AnimationDelay = 0.1f; this.m_shield.PlayAnimation(true); this.m_shield.Opacity = 0.5f; this.m_shield.Scale = new Vector2(1.2f, 1.2f); this.m_projectilePool = new DS2DPool<EnergonProjectileObj>(); for (int i = 0; i < (int)this.m_poolSize; i++) { EnergonProjectileObj energonProjectileObj = new EnergonProjectileObj("EnergonSwordProjectile_Sprite", this); energonProjectileObj.Visible = false; energonProjectileObj.CollidesWithTerrain = false; energonProjectileObj.PlayAnimation(true); energonProjectileObj.AnimationDelay = 0.05f; this.m_projectilePool.AddToPool(energonProjectileObj); } }
public EnemyObj(string spriteName, PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base(spriteName, physicsManager, levelToAttachTo) { base.DisableCollisionBoxRotations = true; this.Type = 0; base.CollisionTypeTag = 3; this.m_target = target; this.m_walkingLB = new LogicBlock(); this.m_currentActiveLB = new LogicBlock(); this.m_cooldownLB = new LogicBlock(); this.logicBlocksToDispose = new List<LogicBlock>(); this.m_resetSpriteName = spriteName; this.Difficulty = difficulty; this.ProjectileScale = new Vector2(1f, 1f); base.PlayAnimation(true); this.PlayAnimationOnRestart = true; base.OutlineWidth = 2; this.GivesLichHealth = true; this.DropsItem = true; }
public EnemyTemplate(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemySpriteNameGoesHere", target, physicsManager, levelToAttachTo, difficulty) { }
public EnemyObj_BouncySpike(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyBouncySpike_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 3; base.NonKillable = true; }
public void AddLinkerRoom(GameTypes.LevelType levelType, List<RoomObj> roomList) { foreach (RoomObj current in roomList) { if (current.Name == "Linker" && current.LevelType == levelType) { this.AddRoom(current); } } }
public EnemyObj_Dummy(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("Dummy_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 30; }
public void RevealSymbol(GameTypes.LevelType levelType, bool tween) { bool flag = false; int index; switch (levelType) { case GameTypes.LevelType.CASTLE: index = 1; if (Game.PlayerStats.ChallengeEyeballBeaten) { flag = true; } break; case GameTypes.LevelType.GARDEN: index = 3; if (Game.PlayerStats.ChallengeSkullBeaten) { flag = true; } break; case GameTypes.LevelType.DUNGEON: index = 4; if (Game.PlayerStats.ChallengeBlobBeaten) { flag = true; } break; case GameTypes.LevelType.TOWER: index = 2; if (Game.PlayerStats.ChallengeFireballBeaten) { flag = true; } break; default: index = 5; if (Game.PlayerStats.ChallengeLastBossBeaten) { flag = true; } break; } if (flag) { this.m_bossDoorSprite.GetChildAt(index).TextureColor = Color.Yellow; } else { this.m_bossDoorSprite.GetChildAt(index).TextureColor = Color.White; } if (tween) { this.m_bossDoorSprite.GetChildAt(index).Opacity = 0f; Tween.To(this.m_bossDoorSprite.GetChildAt(index), 0.5f, new Easing(Quad.EaseInOut), new string[] { "delay", "1.5", "Opacity", "1" }); return; } this.m_bossDoorSprite.GetChildAt(index).Opacity = 1f; }
private void CreateBlob(GameTypes.EnemyDifficulty difficulty, int numHits, bool isNeo = false) { EnemyObj_Blob enemyObj_Blob = new EnemyObj_Blob(null, null, null, difficulty); enemyObj_Blob.InitializeEV(); enemyObj_Blob.Position = base.Position; if (this.m_target.X < enemyObj_Blob.X) { enemyObj_Blob.Orientation = MathHelper.ToRadians(0f); } else { enemyObj_Blob.Orientation = MathHelper.ToRadians(180f); } enemyObj_Blob.Level = base.Level; this.m_levelScreen.AddEnemyToCurrentRoom(enemyObj_Blob); enemyObj_Blob.Scale = new Vector2(this.ScaleX * this.BlobSizeChange.X, this.ScaleY * this.BlobSizeChange.Y); enemyObj_Blob.SetNumberOfHits(numHits); enemyObj_Blob.Speed *= this.BlobSpeedChange; enemyObj_Blob.MainBlob = false; enemyObj_Blob.SavedStartingPos = enemyObj_Blob.Position; enemyObj_Blob.IsNeo = isNeo; if (isNeo) { enemyObj_Blob.Name = base.Name; enemyObj_Blob.IsWeighted = false; enemyObj_Blob.TurnSpeed = this.TurnSpeed; enemyObj_Blob.Speed = base.Speed * this.BlobSpeedChange; enemyObj_Blob.Level = base.Level; enemyObj_Blob.MaxHealth = this.MaxHealth; enemyObj_Blob.CurrentHealth = enemyObj_Blob.MaxHealth; enemyObj_Blob.Damage = base.Damage; enemyObj_Blob.ChangeNeoStats(this.BlobSizeChange.X, this.BlobSpeedChange, numHits); } int num = CDGMath.RandomInt(-500, -300); int num2 = CDGMath.RandomInt(300, 700); if (enemyObj_Blob.X < this.m_target.X) { enemyObj_Blob.AccelerationX += -(this.m_target.EnemyKnockBack.X + (float)num); } else { enemyObj_Blob.AccelerationX += this.m_target.EnemyKnockBack.X + (float)num; } enemyObj_Blob.AccelerationY += -(this.m_target.EnemyKnockBack.Y + (float)num2); if (enemyObj_Blob.Difficulty == GameTypes.EnemyDifficulty.MINIBOSS) { for (int i = 0; i < base.NumChildren; i++) { enemyObj_Blob.GetChildAt(i).Opacity = base.GetChildAt(i).Opacity; enemyObj_Blob.GetChildAt(i).TextureColor = base.GetChildAt(i).TextureColor; } enemyObj_Blob.ChangeSprite("EnemyBlobBossAir_Character"); } else { enemyObj_Blob.ChangeSprite("EnemyBlobAir_Character"); } enemyObj_Blob.PlayAnimation(true); if (LevelEV.SHOW_ENEMY_RADII) { enemyObj_Blob.InitializeDebugRadii(); } enemyObj_Blob.SaveToFile = false; enemyObj_Blob.SpawnRoom = this.m_levelScreen.CurrentRoom; enemyObj_Blob.GivesLichHealth = false; }
public void CloseBossDoor(RoomObj linkedRoom, GameTypes.LevelType levelType) { bool flag = false; switch (levelType) { case GameTypes.LevelType.CASTLE: if (Game.PlayerStats.EyeballBossBeaten) { flag = true; } break; case GameTypes.LevelType.GARDEN: if (Game.PlayerStats.FairyBossBeaten) { flag = true; } break; case GameTypes.LevelType.DUNGEON: if (Game.PlayerStats.BlobBossBeaten) { flag = true; } break; case GameTypes.LevelType.TOWER: if (Game.PlayerStats.FireballBossBeaten) { flag = true; } break; } if (flag) { foreach (DoorObj current in linkedRoom.DoorList) { if (current.IsBossDoor) { foreach (GameObj current2 in linkedRoom.GameObjList) { if (current2.Name == "BossDoor") { current2.ChangeSprite((current2 as SpriteObj).SpriteName.Replace("Open", "")); current2.TextureColor = Color.White; current2.Opacity = 1f; linkedRoom.LinkedRoom = null; break; } } current.Locked = true; break; } } } this.OpenChallengeBossDoor(linkedRoom, levelType); if (Game.PlayerStats.ChallengeLastBossUnlocked) { this.OpenLastBossChallengeDoors(); } }
public void UpdateLevel(GameTypes.LevelType levelType) { switch (levelType) { case GameTypes.LevelType.CASTLE: this.m_backgroundSprite.Scale = Vector2.One; this.m_foregroundSprite.Scale = Vector2.One; this.m_backgroundSprite.ChangeSprite("CastleBG1_Sprite", base.ScreenManager.Camera); this.m_foregroundSprite.ChangeSprite("CastleFG1_Sprite", base.ScreenManager.Camera); this.m_backgroundSprite.Scale = new Vector2(2f, 2f); this.m_foregroundSprite.Scale = new Vector2(2f, 2f); break; case GameTypes.LevelType.GARDEN: this.m_backgroundSprite.Scale = Vector2.One; this.m_foregroundSprite.Scale = Vector2.One; this.m_backgroundSprite.ChangeSprite("GardenBG_Sprite", base.ScreenManager.Camera); this.m_foregroundSprite.ChangeSprite("GardenFG_Sprite", base.ScreenManager.Camera); this.m_backgroundSprite.Scale = new Vector2(2f, 2f); this.m_foregroundSprite.Scale = new Vector2(2f, 2f); break; case GameTypes.LevelType.DUNGEON: this.m_backgroundSprite.Scale = Vector2.One; this.m_foregroundSprite.Scale = Vector2.One; this.m_backgroundSprite.ChangeSprite("DungeonBG1_Sprite", base.ScreenManager.Camera); this.m_foregroundSprite.ChangeSprite("DungeonFG1_Sprite", base.ScreenManager.Camera); this.m_backgroundSprite.Scale = new Vector2(2f, 2f); this.m_foregroundSprite.Scale = new Vector2(2f, 2f); break; case GameTypes.LevelType.TOWER: this.m_backgroundSprite.Scale = Vector2.One; this.m_foregroundSprite.Scale = Vector2.One; this.m_backgroundSprite.ChangeSprite("TowerBG2_Sprite", base.ScreenManager.Camera); this.m_foregroundSprite.ChangeSprite("TowerFG2_Sprite", base.ScreenManager.Camera); this.m_backgroundSprite.Scale = new Vector2(2f, 2f); this.m_foregroundSprite.Scale = new Vector2(2f, 2f); break; } if (levelType == GameTypes.LevelType.DUNGEON) { Game.ShadowEffect.Parameters["ShadowIntensity"].SetValue(0.7f); return; } Game.ShadowEffect.Parameters["ShadowIntensity"].SetValue(0); }
public void OpenChallengeBossDoor(RoomObj linkerRoom, GameTypes.LevelType levelType) { bool flag = false; switch (levelType) { case GameTypes.LevelType.CASTLE: if (Game.PlayerStats.EyeballBossBeaten && !Game.PlayerStats.ChallengeEyeballBeaten && Game.PlayerStats.ChallengeEyeballUnlocked) { flag = true; } break; case GameTypes.LevelType.GARDEN: if (Game.PlayerStats.FairyBossBeaten && !Game.PlayerStats.ChallengeSkullBeaten && Game.PlayerStats.ChallengeSkullUnlocked) { flag = true; } break; case GameTypes.LevelType.DUNGEON: if (Game.PlayerStats.BlobBossBeaten && !Game.PlayerStats.ChallengeBlobBeaten && Game.PlayerStats.ChallengeBlobUnlocked) { flag = true; } break; case GameTypes.LevelType.TOWER: if (Game.PlayerStats.FireballBossBeaten && !Game.PlayerStats.ChallengeFireballBeaten && Game.PlayerStats.ChallengeFireballUnlocked) { flag = true; } break; } if (flag) { RoomObj challengeBossRoomFromRoomList = LevelBuilder2.GetChallengeBossRoomFromRoomList(levelType, this.m_roomList); linkerRoom.LinkedRoom = challengeBossRoomFromRoomList; foreach (DoorObj current in linkerRoom.DoorList) { if (current.IsBossDoor) { foreach (GameObj current2 in linkerRoom.GameObjList) { if (current2.Name == "BossDoor") { current2.ChangeSprite((current2 as SpriteObj).SpriteName.Replace("_Sprite", "Open_Sprite")); current2.TextureColor = new Color(0, 255, 255); current2.Opacity = 0.6f; break; } } current.Locked = false; break; } } } }
public EnemyObj_Starburst(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty) : base("EnemyStarburstIdle_Character", target, physicsManager, levelToAttachTo, difficulty) { this.Type = 31; }
public void SetDifficulty(GameTypes.EnemyDifficulty difficulty, bool reinitialize) { this.Difficulty = difficulty; if (reinitialize) { this.Initialize(); } }