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