Example #1
0
 public void GivePrint(ItemDropManager manager, PlayerObj player)
 {
     if (Game.PlayerStats.TotalBlueprintsFound >= 75)
     {
         if (ChestType == 3)
         {
             GiveStatDrop(manager, player, 1, 0);
             return;
         }
         GiveGold(manager);
     }
     else
     {
         var getBlueprintArray = Game.PlayerStats.GetBlueprintArray;
         var list = new List <Vector2>();
         var num  = 0;
         foreach (var current in getBlueprintArray)
         {
             var num2  = 0;
             var array = current;
             for (var i = 0; i < array.Length; i++)
             {
                 if (array[i] == 0)
                 {
                     var equipmentData = Game.EquipmentSystem.GetEquipmentData(num, num2);
                     if (Level >= equipmentData.LevelRequirement &&
                         ChestType >= equipmentData.ChestColourRequirement)
                     {
                         list.Add(new Vector2(num, num2));
                     }
                 }
                 num2++;
             }
             num++;
         }
         if (list.Count > 0)
         {
             var vector = list[CDGMath.RandomInt(0, list.Count - 1)];
             Game.PlayerStats.GetBlueprintArray[(int)vector.X][(int)vector.Y] = 1;
             var list2 = new List <object>();
             list2.Add(new Vector2(X, Y - Height / 2f));
             list2.Add(1);
             list2.Add(new Vector2(vector.X, vector.Y));
             (player.AttachedLevel.ScreenManager as RCScreenManager).DisplayScreen(12, true, list2);
             player.RunGetItemAnimation();
             Console.WriteLine(string.Concat("Unlocked item index ", vector.X, " of type ", vector.Y));
             return;
         }
         GiveGold(manager);
     }
 }
Example #2
0
 public override void OpenChest(ItemDropManager itemDropManager, PlayerObj player)
 {
     if (State == 1 && !IsOpen && !IsLocked)
     {
         GoToFrame(2);
         SoundManager.Play3DSound(this, Game.ScreenManager.Player, "Chest_Open_Large");
         if (Game.PlayerStats.TotalRunesFound >= 55)
         {
             GiveStatDrop(itemDropManager, m_player, 1, 0);
             player.AttachedLevel.RefreshMapChestIcons();
             return;
         }
         var getRuneArray = Game.PlayerStats.GetRuneArray;
         var list         = new List <Vector2>();
         var num          = 0;
         foreach (var current in getRuneArray)
         {
             var num2  = 0;
             var array = current;
             for (var i = 0; i < array.Length; i++)
             {
                 if (array[i] == 0)
                 {
                     list.Add(new Vector2(num, num2));
                 }
                 num2++;
             }
             num++;
         }
         if (list.Count > 0)
         {
             var vector = list[CDGMath.RandomInt(0, list.Count - 1)];
             Game.PlayerStats.GetRuneArray[(int)vector.X][(int)vector.Y] = 1;
             var list2 = new List <object>();
             list2.Add(new Vector2(X, Y - Height / 2f));
             list2.Add(2);
             list2.Add(new Vector2(vector.X, vector.Y));
             (player.AttachedLevel.ScreenManager as RCScreenManager).DisplayScreen(12, true, list2);
             player.RunGetItemAnimation();
             Console.WriteLine(string.Concat("Unlocked item index ", vector.X, " of type ", vector.Y));
         }
         else
         {
             GiveGold(itemDropManager);
         }
         player.AttachedLevel.RefreshMapChestIcons();
     }
 }
Example #3
0
        public void GiveStatDrop(ItemDropManager manager, PlayerObj player, int numDrops, int statDropType)
        {
            var array = new int[numDrops];

            for (var i = 0; i < numDrops; i++)
            {
                if (statDropType == 0)
                {
                    var num  = CDGMath.RandomInt(1, 100);
                    var num2 = 0;
                    var j    = 0;
                    while (j < GameEV.STATDROP_CHANCE.Length)
                    {
                        num2 += GameEV.STATDROP_CHANCE[j];
                        if (num <= num2)
                        {
                            if (j == 0)
                            {
                                array[i] = 4;
                                Game.PlayerStats.BonusStrength++;
                                break;
                            }
                            if (j == 1)
                            {
                                array[i] = 5;
                                Game.PlayerStats.BonusMagic++;
                                break;
                            }
                            if (j == 2)
                            {
                                array[i] = 6;
                                Game.PlayerStats.BonusDefense++;
                                break;
                            }
                            if (j == 3)
                            {
                                array[i] = 7;
                                Game.PlayerStats.BonusHealth++;
                                break;
                            }
                            if (j == 4)
                            {
                                array[i] = 8;
                                Game.PlayerStats.BonusMana++;
                                break;
                            }
                            array[i] = 9;
                            Game.PlayerStats.BonusWeight++;
                            break;
                        }
                        j++;
                    }
                }
                else
                {
                    switch (statDropType)
                    {
                    case 4:
                        Game.PlayerStats.BonusStrength++;
                        break;

                    case 5:
                        Game.PlayerStats.BonusMagic++;
                        break;

                    case 6:
                        Game.PlayerStats.BonusDefense++;
                        break;

                    case 7:
                        Game.PlayerStats.BonusHealth++;
                        break;

                    case 8:
                        Game.PlayerStats.BonusMana++;
                        break;

                    case 9:
                        Game.PlayerStats.BonusWeight++;
                        break;
                    }
                    array[i] = statDropType;
                }
            }
            var list = new List <object>();

            list.Add(new Vector2(X, Y - Height / 2f));
            if (statDropType >= 15 && statDropType <= 19)
            {
                list.Add(7);
            }
            else if (numDrops <= 1)
            {
                list.Add(3);
            }
            else
            {
                list.Add(6);
            }
            list.Add(new Vector2(array[0], 0f));
            if (numDrops > 1)
            {
                list.Add(new Vector2(array[1], array[2]));
            }
            player.AttachedLevel.UpdatePlayerHUD();
            (player.AttachedLevel.ScreenManager as RCScreenManager).DisplayScreen(12, true, list);
            player.RunGetItemAnimation();
        }