示例#1
0
 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"
     });
 }
示例#2
0
 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;
 }
示例#3
0
 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"
     });
 }
示例#4
0
 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;
 }
示例#5
0
 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;
 }
示例#6
0
 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;
 }
示例#7
0
 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;
 }
示例#8
0
 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;
 }
示例#9
0
 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;
 }
示例#10
0
 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"
     });
 }
示例#11
0
 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;
 }
示例#12
0
 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;
 }
示例#13
0
 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;
 }
示例#14
0
 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"
     });
 }
示例#15
0
 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;
 }
示例#16
0
 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"
     });
 }
示例#17
0
 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 "";
     }
 }
示例#18
0
 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);
     }
 }
示例#19
0
 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;
 }
示例#20
0
 public EnemyTemplate(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty)
     : base("EnemySpriteNameGoesHere", target, physicsManager, levelToAttachTo, difficulty)
 {
 }
示例#21
0
 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;
 }
示例#22
0
文件: MapObj.cs 项目: Neojin9/RLRedux
 public void AddLinkerRoom(GameTypes.LevelType levelType, List<RoomObj> roomList)
 {
     foreach (RoomObj current in roomList)
     {
         if (current.Name == "Linker" && current.LevelType == levelType)
         {
             this.AddRoom(current);
         }
     }
 }
示例#23
0
 public EnemyObj_Dummy(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty)
     : base("Dummy_Character", target, physicsManager, levelToAttachTo, difficulty)
 {
     this.Type = 30;
 }
示例#24
0
 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;
 }
示例#25
0
 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;
 }
示例#26
0
 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();
     }
 }
示例#27
0
 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);
 }
示例#28
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;
             }
         }
     }
 }
示例#29
0
 public EnemyObj_Starburst(PlayerObj target, PhysicsManager physicsManager, ProceduralLevelScreen levelToAttachTo, GameTypes.EnemyDifficulty difficulty)
     : base("EnemyStarburstIdle_Character", target, physicsManager, levelToAttachTo, difficulty)
 {
     this.Type = 31;
 }
示例#30
0
 public void SetDifficulty(GameTypes.EnemyDifficulty difficulty, bool reinitialize)
 {
     this.Difficulty = difficulty;
     if (reinitialize)
     {
         this.Initialize();
     }
 }