public ISprite MakeSprite(DungeonEnum spriteType, Vector2 location, bool canBeBombed = false) { return(spriteType switch { DungeonEnum.RoomFloor => new RoomFloor(texture, location), DungeonEnum.RoomBorder => new RoomBorder(texture, location), DungeonEnum.Darkness => new Darkness(texture, location), DungeonEnum.DownWall => new Wall(texture, location, Direction.North, game.Rooms[roomIndex], canBeBombed), DungeonEnum.RightWall => new Wall(texture, location, Direction.West, game.Rooms[roomIndex], canBeBombed), DungeonEnum.LeftWall => new Wall(texture, location, Direction.East, game.Rooms[roomIndex], canBeBombed), DungeonEnum.UpWall => new Wall(texture, location, Direction.South, game.Rooms[roomIndex], canBeBombed), DungeonEnum.DownOpenDoor => new OpenDoor(texture, location, Direction.North, game.Rooms[roomIndex]), DungeonEnum.RightOpenDoor => new OpenDoor(texture, location, Direction.West, game.Rooms[roomIndex]), DungeonEnum.LeftOpenDoor => new OpenDoor(texture, location, Direction.East, game.Rooms[roomIndex]), DungeonEnum.UpOpenDoor => new OpenDoor(texture, location, Direction.South, game.Rooms[roomIndex]), DungeonEnum.DownLockedDoor => new LockedDoor(texture, location, Direction.North, game.Rooms[roomIndex]), DungeonEnum.RightLockedDoor => new LockedDoor(texture, location, Direction.West, game.Rooms[roomIndex]), DungeonEnum.LeftLockedDoor => new LockedDoor(texture, location, Direction.East, game.Rooms[roomIndex]), DungeonEnum.UpLockedDoor => new LockedDoor(texture, location, Direction.South, game.Rooms[roomIndex]), DungeonEnum.DownShutDoor => new ShutDoor(texture, location, Direction.North, game.Rooms[roomIndex]), DungeonEnum.RightShutDoor => new ShutDoor(texture, location, Direction.West, game.Rooms[roomIndex]), DungeonEnum.LeftShutDoor => new ShutDoor(texture, location, Direction.East, game.Rooms[roomIndex]), DungeonEnum.UpShutDoor => new ShutDoor(texture, location, Direction.South, game.Rooms[roomIndex]), DungeonEnum.DownBombedOpening => new BombedOpening(texture, location, Direction.North, game.Rooms[roomIndex]), DungeonEnum.RightBombedOpening => new BombedOpening(texture, location, Direction.West, game.Rooms[roomIndex]), DungeonEnum.LeftBombedOpening => new BombedOpening(texture, location, Direction.East, game.Rooms[roomIndex]), DungeonEnum.UpBombedOpening => new BombedOpening(texture, location, Direction.South, game.Rooms[roomIndex]), DungeonEnum.DarkRoom => new DarkRoom(texture, location, game), _ => throw new ArgumentException("Invalid sprite! " + spriteType.ToString() + " Sprite factory failed."), });
public Tile(Brush bgcolor, Brush bColor, int size, DungeonEnum type) { backgroundColor = bgcolor; borderColor = bColor; this.size = size; this.itemType = type; // this.items = items; }
public DungeonDistillation() : base(6198) { Name = "dungeon distillation"; int dungeonCount = Enum.GetNames(typeof(DungeonEnum)).Length; Dungeon = (DungeonEnum)Utility.RandomMinMax(1, dungeonCount - 1); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); //Version 0 if (version >= 0) { Dungeon = (DungeonEnum)reader.ReadInt(); } }
public static BaseWeapon CreateDungeonWeapon(BaseWeapon weapon, DungeonEnum dungeon) { weapon.Quality = Quality.Regular; weapon.ArcaneCharges = DungeonWeapon.ArcaneMaxCharges; weapon.ArcaneChargesMax = DungeonWeapon.ArcaneMaxCharges; weapon.Dungeon = dungeon; weapon.TierLevel = 1; weapon.Experience = 0; return(weapon); }
public IEnumerator Load() { if (File.Exists(Application.persistentDataPath + "/" + CurrentSaveFile + "/SaveFile.dat")) { loading = true; BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/" + CurrentSaveFile + "/SaveFile.dat", FileMode.Open); FileStream nameFile = File.Open(Application.persistentDataPath + "/" + CurrentSaveFile.ToString() + "name.tic", FileMode.Open); saveLoading = (SaveFileData)bf.Deserialize(file); saveName = (string)bf.Deserialize(nameFile); file.Close(); nameFile.Close(); // Making the right Dungeon Active StartingActiveDungeon = saveLoading.ActiveDungeon; if (StartingActiveDungeon != DungeonEnum.StarterDungeon) { SceneManager.LoadScene("PlayScene"); } else { SceneManager.LoadScene("PlayScene"); } for (int i = 0; i < 12; i++) { yield return(new WaitForEndOfFrame()); } CameraScript.GameController.transform.position = new Vector3(saveLoading.cameraPosition[0], saveLoading.cameraPosition[1], saveLoading.cameraPosition[2]); StartLoad(); Players = GameObject.FindGameObjectsWithTag("Player"); foreach (string name in saveLoading.CurrentLivingCharacters) { CharactersToLoad.Add(name); } foreach (GameObject player in Players) { if (!CharactersToLoad.Contains(player.name)) { player.SetActive(false); } } } else { Debug.Log("NoFileFound"); } }
public DungeonCoreLibraryEntry GetEntryDetail(DungeonEnum dungeon) { DungeonCoreLibraryEntry targetEntry = null; foreach (DungeonCoreLibraryEntry entry in m_LibraryEntries) { if (entry.Dungeon == dungeon) { return(entry); } } return(targetEntry); }
// private Item[] items; // The tile needs to keep track of what kind of tile it is // is it a null tile, a freespace, a item, a wall, a dragon tile? // Default Constructor public Tile(DungeonEnum type) { // Can have up to 3 items; //items = new Item[3]; backgroundColor = Brushes.Orange; borderColor = Brushes.Black; size = 5; // Item item1 = new Item("Treasure", Directory.GetCurrentDirectory() + @"\images\treasure00.png", 1); // This needs to goto the view; just put some string thing here saying // that there is a item and check for that and display that in the view. //ResourceItem item1 = new ResourceItem("Treasure", Properties.Resources, 1); //items[0] = item1; hasAnItem = false; itemType = type; }
public static Dungeon createDungeon(Vector3 _Position, Vector3 _Size, DungeonEnum _DungeonEnum, Dimension _ParentDimension) { Dungeon var_Dungeon = null; switch (_DungeonEnum) { case DungeonEnum.Cave: var_Dungeon = new CaveDungeon("", _Position, _Size, RegionEnum.Dungeon, _ParentDimension); break; /*case DungeonEnum.Room: * var_Dungeon = new RoomDungeon("", _Position, _Size, RegionEnum.Dungeon, _ParentDimension); * break;*/ } if (var_Dungeon != null) { //var_Dungeon.createDungeon(); return(var_Dungeon); } return(null); }
public Grid(int row, int col, DungeonEnum[,] grid) { mNumRows = row; mNumColumns = col; createStaticGrid(grid); }
public static void ConsumeMaterials(Mobile from, Mobile mobileTarget, DungeonMould dungeonMould, bool newWeapon, DungeonEnum dungeon) { if (from == null || mobileTarget == null) { return; } List <DungeonCore> m_DungeonCores = mobileTarget.Backpack.FindItemsByType <DungeonCore>(); List <DungeonDistillation> m_DungeonDistillations = mobileTarget.Backpack.FindItemsByType <DungeonDistillation>(); List <DungeonCore> m_MatchingDungeonCores = new List <DungeonCore>(); List <DungeonDistillation> m_MatchingDungeonDistillations = new List <DungeonDistillation>(); int coresNeeded = DungeonWeapon.CoresNeededForUpgrade; int distillationsNeeded = DungeonWeapon.DistillationNeededForUpgrade; if (newWeapon) { coresNeeded = DungeonWeapon.CoresNeededForCreation; distillationsNeeded = DungeonWeapon.DistillationNeededForCreation; } Queue m_Queue = new Queue(); foreach (DungeonCore dungeonCore in m_DungeonCores) { if (dungeonCore.Dungeon == dungeon) { if (dungeonCore.Amount > coresNeeded) { dungeonCore.Amount -= coresNeeded; coresNeeded = 0; } else { //Queue for Deletion coresNeeded -= dungeonCore.Amount; m_Queue.Enqueue(dungeonCore); } } if (coresNeeded <= 0) { break; } } while (m_Queue.Count > 0) { DungeonCore dungeonCore = (DungeonCore)m_Queue.Dequeue(); dungeonCore.Delete(); } m_Queue = new Queue(); foreach (DungeonDistillation dungeonDistillation in m_DungeonDistillations) { if (dungeonDistillation.Dungeon == dungeon) { m_Queue.Enqueue(dungeonDistillation); distillationsNeeded--; } if (distillationsNeeded <= 0) { break; } } while (m_Queue.Count > 0) { DungeonDistillation dungeonDistillation = (DungeonDistillation)m_Queue.Dequeue(); dungeonDistillation.Delete(); } if (dungeonMould != null) { dungeonMould.Delete(); } }
public static bool HasRequiredMaterials(Mobile from, Mobile mobileTarget, DungeonMould dungeonMould, bool newWeapon, DungeonEnum dungeon) { if (from == null) { return(false); } if (from.Backpack == null) { return(false); } if (mobileTarget == null) { return(false); } if (mobileTarget.Backpack == null) { return(false); } if (dungeonMould == null) { return(false); } if (dungeonMould.Deleted) { return(false); } if (!dungeonMould.IsChildOf(from.Backpack)) { return(false); } List <DungeonCore> m_DungeonCores = mobileTarget.Backpack.FindItemsByType <DungeonCore>(); List <DungeonDistillation> m_DungeonDistillations = mobileTarget.Backpack.FindItemsByType <DungeonDistillation>(); List <DungeonCore> m_MatchingDungeonCores = new List <DungeonCore>(); List <DungeonDistillation> m_MatchingDungeonDistillations = new List <DungeonDistillation>(); int totalMatchingDungeonCores = 0; foreach (DungeonCore dungeonCore in m_DungeonCores) { if (dungeonCore.Dungeon == dungeon) { totalMatchingDungeonCores += dungeonCore.Amount; m_MatchingDungeonCores.Add(dungeonCore); } } foreach (DungeonDistillation dungeonDistillation in m_DungeonDistillations) { if (dungeonDistillation.Dungeon == dungeon) { m_MatchingDungeonDistillations.Add(dungeonDistillation); } } if (newWeapon) { if (totalMatchingDungeonCores >= DungeonWeapon.CoresNeededForCreation && m_MatchingDungeonDistillations.Count >= DungeonWeapon.DistillationNeededForCreation) { return(true); } } else { if (totalMatchingDungeonCores >= DungeonWeapon.CoresNeededForUpgrade && m_MatchingDungeonDistillations.Count >= DungeonWeapon.DistillationNeededForUpgrade) { return(true); } } return(false); }
private void printSpot(DungeonEnum spot) { /* start printSpot */ if (spot == DungeonEnum.DRAGON) Console.Write("D"); if (spot == DungeonEnum.FREESPACE) Console.Write("F"); if (spot == DungeonEnum.WALL) Console.Write("W"); if (spot == DungeonEnum.ITEM) Console.Write("I"); if (spot == DungeonEnum.NULL) Console.Write("N"); }
public DungeonDistillation(DungeonEnum dungeonType) : base(6198) { Name = "dungeon distillation"; Dungeon = dungeonType; }
public static DungeonWeaponDetail GetDungeonWeaponDetail(DungeonEnum dungeon) { DungeonWeaponDetail detail = new DungeonWeaponDetail(); switch (dungeon) { case DungeonEnum.Covetous: detail.m_SpecialEffect = SpecialEffectType.PoisonWind; detail.m_EffectDisplayName = "Poison Wind"; detail.m_EffectDescription = ""; break; case DungeonEnum.Deceit: detail.m_SpecialEffect = SpecialEffectType.ShockStorm; detail.m_EffectDisplayName = "Shock Storm"; detail.m_EffectDescription = ""; break; case DungeonEnum.Despise: detail.m_SpecialEffect = SpecialEffectType.Command; detail.m_EffectDisplayName = "Command"; detail.m_EffectDescription = ""; break; case DungeonEnum.Destard: detail.m_SpecialEffect = SpecialEffectType.Whirlwind; detail.m_EffectDisplayName = "Whirlwind"; detail.m_EffectDescription = ""; break; case DungeonEnum.Fire: detail.m_SpecialEffect = SpecialEffectType.Firestorm; detail.m_EffectDisplayName = "Firestorm"; detail.m_EffectDescription = ""; break; case DungeonEnum.Hythloth: detail.m_SpecialEffect = SpecialEffectType.Execute; detail.m_EffectDisplayName = "Execute"; detail.m_EffectDescription = ""; break; case DungeonEnum.Ice: detail.m_SpecialEffect = SpecialEffectType.FrostNova; detail.m_EffectDisplayName = "Frost Nova"; detail.m_EffectDescription = ""; break; case DungeonEnum.Shame: detail.m_SpecialEffect = SpecialEffectType.ArcaneSurge; detail.m_EffectDisplayName = "Arcane Surge"; detail.m_EffectDescription = ""; break; case DungeonEnum.Wrong: detail.m_SpecialEffect = SpecialEffectType.Shadows; detail.m_EffectDisplayName = "Shadows"; detail.m_EffectDescription = ""; break; } return(detail); }
public static string GetName(this DungeonEnum dungeon) => Enum.GetName(dungeon.GetType(), dungeon);
public void createStaticGrid(DungeonEnum[,] grid) { tiles = new Tile[mNumRows, mNumColumns]; // Rows for (int i = 0; i < mNumRows; i++) { // Columns for (int j = 0; j < mNumColumns; j++) { // tiles[i, j] = new Tile(rand); tiles[i, j] = new Tile(grid[j, i]); } } }
public DungeonArmorDetail(DungeonEnum dungeonType, int tierLevel) { Dungeon = dungeonType; TierLevel = tierLevel; switch (Dungeon) { case DungeonEnum.None: break; case DungeonEnum.Deceit: DungeonName = "Deceit"; Hue = 1908; EffectHue = Hue - 1; TieredArmorRating = 40 + (5 * tierLevel); DexPenalty = -3; MeditationAllowance = ArmorMeditationAllowance.Half; EnergySiphonOnMeleeAttackChance = .20 + (.04 * tierLevel); gumpText = new string[] { "Deceit Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 50%", "", "Chance of Inflicting Energy Siphon on Melee Attack: " + Utility.CreatePercentageString(EnergySiphonOnMeleeAttackChance), }; break; case DungeonEnum.Destard: DungeonName = "Destard"; Hue = 1778; EffectHue = Hue - 1; TieredArmorRating = 55 + (5 * tierLevel); DexPenalty = -10; MeditationAllowance = ArmorMeditationAllowance.None; MeleeDamageReceivedBonus = .13 + (.03 * tierLevel); SpellDamageReceivedBonus = .13 + (.03 * tierLevel); BandageSelfTimeReduction = 2 + (.5 * tierLevel); gumpText = new string[] { "Destard Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 0%", "", "Melee Damage Reduction: " + Utility.CreatePercentageString(MeleeDamageReceivedBonus), "Spell Damage Reduction: " + Utility.CreatePercentageString(SpellDamageReceivedBonus), "Bandage Self Timer Reduction: " + BandageSelfTimeReduction.ToString() + " seconds", }; break; case DungeonEnum.Hythloth: DungeonName = "Hythloth"; Hue = 1769; EffectHue = Hue - 1; TieredArmorRating = 40 + (5 * tierLevel); DexPenalty = -3; MeditationAllowance = ArmorMeditationAllowance.Half; MeleeDamageInflictedBonus = .10 + (.025 * tierLevel); SpecialWeaponAttackBonus = .08 + (.02 * tierLevel); gumpText = new string[] { "Hythloth Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 50%", "", "Melee Damage Bonus: " + Utility.CreatePercentageString(MeleeDamageInflictedBonus), "Special Weapon Attack Chance Bonus: " + Utility.CreatePercentageString(SpecialWeaponAttackBonus), }; break; case DungeonEnum.Shame: DungeonName = "Shame"; Hue = 1763; EffectHue = Hue - 1; TieredArmorRating = 30 + (5 * tierLevel); DexPenalty = 0; MeditationAllowance = ArmorMeditationAllowance.All; SpellDamageInflictedBonus = .15 + (.05 * tierLevel); ReducedSpellManaCostChance = .15 + (.05 * tierLevel); gumpText = new string[] { "Shame Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 100%", "", "Spell Damage Bonus: " + Utility.CreatePercentageString(SpellDamageInflictedBonus), "Chance to Cast Spell At Reduced Mana Cost: " + Utility.CreatePercentageString(ReducedSpellManaCostChance), }; break; case DungeonEnum.Covetous: DungeonName = "Covetous"; Hue = 2212; EffectHue = Hue - 1; TieredArmorRating = 30 + (5 * tierLevel); DexPenalty = 0; MeditationAllowance = ArmorMeditationAllowance.All; PoisonDamageInflictedScalar = 1 + (.2 + (.025 * tierLevel)); PoisonSpellNoManaCostChance = .30 + (.05 * tierLevel); NoPoisonChargeSpentChance = .2 + (.025 * tierLevel); gumpText = new string[] { "Covetous Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 100%", "", "Poison Damage Inflicted Bonus: " + Utility.CreatePercentageString(PoisonDamageInflictedScalar - 1), "Chance to Cast Poison Spells At No Mana Cost: " + Utility.CreatePercentageString(PoisonSpellNoManaCostChance), "Chance to Apply Poison And Not Spend Poison Charge: " + Utility.CreatePercentageString(NoPoisonChargeSpentChance), }; break; case DungeonEnum.Wrong: DungeonName = "Wrong"; Hue = 2675; EffectHue = Hue - 1; TieredArmorRating = 40 + (5 * tierLevel); DexPenalty = -3; MeditationAllowance = ArmorMeditationAllowance.Half; BonusStealthSteps = 4 + (1 * tierLevel); BackstabDamageInflictedBonus = .40 + (.05 * tierLevel); StealthLeavesFootprints = true; gumpText = new string[] { "Wrong Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 50%", "", "Bonus Stealth Steps: " + BonusStealthSteps.ToString(), "Backstab Damage Inflicted Bonus: " + Utility.CreatePercentageString(BackstabDamageInflictedBonus), "Stealth Movement Now Leaves Footprints", }; break; case DungeonEnum.Despise: DungeonName = "Despise"; Hue = 2516; EffectHue = Hue - 1; TieredArmorRating = 30 + (5 * tierLevel); DexPenalty = 0; MeditationAllowance = ArmorMeditationAllowance.All; ProvokedCreatureDamageInflictedBonus = .2 + (.025 * tierLevel); IgnorePeacemakingBreakChance = .30 + (.05 * tierLevel); DiscordanceEffectBonus = .04 + (.015 * tierLevel); gumpText = new string[] { "Despise Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 100%", "", "Provoked Creature Damage Inflicted Bonus: " + Utility.CreatePercentageString(ProvokedCreatureDamageInflictedBonus), "Chance to Avoid Peacemaking Breaking: " + Utility.CreatePercentageString(IgnorePeacemakingBreakChance), "Discordance Effect Bonus: " + Utility.CreatePercentageString(DiscordanceEffectBonus), }; break; case DungeonEnum.Ice: DungeonName = "Ice"; Hue = 2579; EffectHue = Hue - 1; TieredArmorRating = 55 + (5 * tierLevel); DexPenalty = -10; MeditationAllowance = ArmorMeditationAllowance.None; BreathDamageReceivedScalar = 1 - (.40 + (.05 * tierLevel)); BleedDamageReceivedScalar = 1 - (.40 + (.05 * tierLevel)); PoisonDamageReceivedScalar = 1 - (.40 + (.05 * tierLevel)); DiseaseDamageReceivedScalar = 1 - (.40 + (.05 * tierLevel)); BandageHealThroughPoisonScalar = .40 + (.05 * tierLevel); SpecialEffectAvoidanceChance = .40 + (.05 * tierLevel); gumpText = new string[] { "Ice Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 0%", "", "Breath Damage Reduction: " + Utility.CreatePercentageString(1 - BreathDamageReceivedScalar), "Bleed Damage Reduction: " + Utility.CreatePercentageString(1 - BleedDamageReceivedScalar), "Poison Damage Reduction: " + Utility.CreatePercentageString(1 - PoisonDamageReceivedScalar), "Disease Damage Reduction: " + Utility.CreatePercentageString(1 - DiseaseDamageReceivedScalar), "Bandage Heal Through Poison Amount: " + Utility.CreatePercentageString(BandageHealThroughPoisonScalar), "Special Effect Avoidance Chance: " + Utility.CreatePercentageString(SpecialEffectAvoidanceChance), }; break; case DungeonEnum.Fire: DungeonName = "Fire"; Hue = 2635; EffectHue = Hue - 1; TieredArmorRating = 55 + (5 * tierLevel); DexPenalty = -10; MeditationAllowance = ArmorMeditationAllowance.None; BreathDamageReceivedScalar = 1 - (.40 + (.05 * tierLevel)); FlamestrikeOnMeleeAttackChance = 0.10 + (.05 * tierLevel); //0.05 + (.025 * tierLevel) Old FlamestrikeOnReceiveMeleeHitChance = 0.10 + (.05 * tierLevel); //0.05 + (.025 * tierLevel) Old gumpText = new string[] { "Fire Dungeon Armor", "Tier " + tierLevel.ToString(), "", "Armor Rating: " + TieredArmorRating.ToString(), "Dex Penalty: " + DexPenalty.ToString(), "Meditation Allowed: 0%", "", "Breath Damage Reduction: " + Utility.CreatePercentageString(1 - BreathDamageReceivedScalar), "Chance of Flamestrike on Melee Attack: " + Utility.CreatePercentageString(FlamestrikeOnMeleeAttackChance), "Chance of Flamestrike on Being Hit By Melee Attack: " + Utility.CreatePercentageString(FlamestrikeOnReceiveMeleeHitChance), }; break; } }
public DungeonMouldWeaponGump(Mobile gumpTarget, Mobile crafter, Mobile mobileTarget, DungeonMould mould, bool newWeapon, BaseWeapon weapon, DungeonEnum dungeon, int amountDemanded, bool confirmed) : base(10, 10) { m_GumpTarget = gumpTarget; m_Crafter = crafter; m_MobileTarget = mobileTarget; m_DungeonMould = mould; m_NewWeapon = newWeapon; m_Weapon = weapon; m_Dungeon = dungeon; m_AmountDemanded = amountDemanded; m_Confirmed = confirmed; bool selfCraft = (m_Crafter == m_MobileTarget); Closable = true; Disposable = true; Dragable = true; Resizable = false; AddImage(70, 100, 103); AddImage(5, 100, 103); AddImage(70, 5, 103); AddImage(5, 5, 103); AddImage(200, 100, 103); AddImage(200, 5, 103); AddImage(70, 281, 103); AddImage(5, 281, 103); AddImage(70, 186, 103); AddImage(5, 186, 103); AddImage(200, 281, 103); AddImage(200, 186, 103); AddImage(70, 374, 103); AddImage(5, 374, 103); AddImage(200, 374, 103); AddImage(17, 18, 3604, 2052); AddImage(76, 18, 3604, 2052); AddImage(204, 18, 3604, 2052); AddImage(17, 140, 3604, 2052); AddImage(76, 140, 3604, 2052); AddImage(204, 140, 3604, 2052); AddImage(17, 262, 3604, 2052); AddImage(76, 262, 3604, 2052); AddImage(204, 262, 3604, 2052); AddImage(17, 335, 3604, 2052); AddImage(76, 335, 3604, 2052); AddImage(204, 335, 3604, 2052); //----- int WhiteTextHue = 2655; int EffectHue = WhiteTextHue; string offerText = ""; if (!selfCraft) { if (m_GumpTarget == m_MobileTarget) { offerText = "Offer from " + m_Crafter.Name; AddLabel(Utility.CenteredTextOffset(175, offerText), 17, 149, offerText); } } if (m_NewWeapon) { offerText = "Create Dungeon Weapon"; if (selfCraft || m_GumpTarget == m_Crafter) { AddLabel(Utility.CenteredTextOffset(175, offerText), 17, WhiteTextHue, offerText); } else { AddLabel(Utility.CenteredTextOffset(175, offerText), 37, WhiteTextHue, offerText); } } else { offerText = "Upgrade Dungeon Weapon"; if (selfCraft || m_GumpTarget == m_Crafter) { AddLabel(Utility.CenteredTextOffset(175, offerText), 17, WhiteTextHue, offerText); } else { AddLabel(Utility.CenteredTextOffset(175, offerText), 37, WhiteTextHue, offerText); } } //Weapon Info int weaponTier = m_Weapon.TierLevel; string dungeonName = GetDungeonName(m_Dungeon) + " Dungeon"; string weaponName = m_Weapon.Name; if (weaponName == null) { weaponName = ""; } weaponName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(weaponName); int newDurability = DungeonWeapon.BaselineDurability + (DungeonWeapon.IncreasedDurabilityPerTier * weaponTier); int adjustedBlessedCharges = DungeonWeapon.ArcaneMaxCharges; double accuracy = 100 * (DungeonWeapon.BaseAccuracy + (DungeonWeapon.AccuracyPerTier * (double)weaponTier)); double tactics = DungeonWeapon.BaseTactics + (DungeonWeapon.TacticsPerTier * (double)weaponTier); double effectChance = DungeonWeapon.BaseEffectChance + (DungeonWeapon.BaseEffectChancePerTier * (double)weaponTier); effectChance *= DungeonWeapon.GetSpeedScalar(m_Weapon.Speed); DungeonArmor.DungeonArmorDetail detail = new DungeonArmor.DungeonArmorDetail(m_Dungeon, 1); EffectHue = detail.Hue - 1; int itemId = weapon.ItemID; int itemHue = EffectHue; int offsetX = 0; int offsetY = 0; AddLabel(Utility.CenteredTextOffset(120, dungeonName), 60, EffectHue, dungeonName); AddLabel(Utility.CenteredTextOffset(120, weaponName), 80, EffectHue, weaponName); AddItem(103 + m_Weapon.IconOffsetX, 115 + m_Weapon.IconOffsetY, m_Weapon.IconItemId, itemHue); AddLabel(97, 165, EffectHue, "Tier " + weaponTier.ToString()); AddLabel(71, 190, WhiteTextHue, "Charges:"); AddLabel(135, 190, EffectHue, adjustedBlessedCharges.ToString()); AddLabel(55, 210, WhiteTextHue, "Experience:"); AddLabel(135, 210, EffectHue, "0/" + DungeonWeapon.MaxDungeonExperience.ToString()); AddLabel(60, 230, WhiteTextHue, "Durability:"); AddLabel(135, 230, EffectHue, newDurability.ToString() + "/" + newDurability.ToString()); AddLabel(65, 250, WhiteTextHue, "Accuracy:"); AddLabel(135, 250, EffectHue, "+" + accuracy.ToString() + "%"); AddLabel(74, 270, WhiteTextHue, "Tactics:"); AddLabel(135, 270, EffectHue, "+" + tactics.ToString()); AddLabel(31, 290, WhiteTextHue, "Effect Chance:"); AddLabel(135, 290, EffectHue, Utility.CreateDecimalPercentageString(effectChance, 1)); AddLabel(30, 310, WhiteTextHue, "(scaled for weapon speed)"); DungeonWeaponDetail weaponDetail = DungeonWeapon.GetDungeonWeaponDetail(m_Dungeon); AddLabel(70, 335, WhiteTextHue, "Special Effect:"); AddButton(78, 359, 1210, 1209, 4, GumpButtonType.Reply, 0); AddLabel(98, 355, EffectHue, weaponDetail.m_EffectDisplayName); //----- if (newWeapon) { if (selfCraft || m_GumpTarget == m_MobileTarget) { AddLabel(225, 60, WhiteTextHue, "Choose Dungeon"); AddLabel(265, 95, WhiteTextHue, "Covetous"); AddLabel(265, 130, WhiteTextHue, "Deceit"); AddLabel(265, 165, WhiteTextHue, "Despise"); AddLabel(265, 200, WhiteTextHue, "Destard"); AddLabel(265, 235, WhiteTextHue, "Fire"); AddLabel(265, 270, WhiteTextHue, "Hythloth"); AddLabel(265, 305, WhiteTextHue, "Ice"); AddLabel(265, 340, WhiteTextHue, "Shame"); AddLabel(265, 375, WhiteTextHue, "Wrong"); if (m_Dungeon == DungeonEnum.Covetous) { AddButton(228, 90, 9724, 9721, 10, GumpButtonType.Reply, 0); } else { AddButton(228, 90, 9721, 9724, 10, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Deceit) { AddButton(228, 125, 9724, 9721, 11, GumpButtonType.Reply, 0); } else { AddButton(228, 125, 9721, 9724, 11, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Despise) { AddButton(228, 160, 9724, 9721, 12, GumpButtonType.Reply, 0); } else { AddButton(228, 160, 9721, 9724, 12, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Destard) { AddButton(228, 195, 9724, 9721, 13, GumpButtonType.Reply, 0); } else { AddButton(228, 195, 9721, 9724, 13, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Fire) { AddButton(228, 230, 9724, 9721, 14, GumpButtonType.Reply, 0); } else { AddButton(228, 230, 9721, 9724, 14, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Hythloth) { AddButton(228, 265, 9724, 9721, 15, GumpButtonType.Reply, 0); } else { AddButton(228, 265, 9721, 9724, 15, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Ice) { AddButton(228, 300, 9724, 9721, 16, GumpButtonType.Reply, 0); } else { AddButton(228, 300, 9721, 9724, 16, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Shame) { AddButton(228, 335, 9724, 9721, 17, GumpButtonType.Reply, 0); } else { AddButton(228, 335, 9721, 9724, 17, GumpButtonType.Reply, 0); } if (m_Dungeon == DungeonEnum.Wrong) { AddButton(228, 370, 9724, 9721, 18, GumpButtonType.Reply, 0); } else { AddButton(228, 370, 9721, 9724, 18, GumpButtonType.Reply, 0); } } } if (!selfCraft) { if (m_GumpTarget == m_Crafter) { AddLabel(26, 388, 149, "Price"); AddItem(57, 386, 3823); AddImage(103, 387, 2445); AddTextEntry(108, 388, 95, 20, WhiteTextHue, 4, m_AmountDemanded.ToString()); AddButton(214, 392, 1209, 1210, 3, GumpButtonType.Reply, 0); } else { AddLabel(26, 388, 149, "Price"); AddItem(57, 386, 3823); AddLabel(103, 388, WhiteTextHue, m_AmountDemanded.ToString()); } } if (selfCraft) { AddButton(24, 423, 2151, 2154, 1, GumpButtonType.Reply, 0); AddLabel(57, 426, WhiteTextHue, "Confirm"); } else { if (m_GumpTarget == m_Crafter) { if (m_Confirmed) { AddButton(191, 423, 2154, 2151, 2, GumpButtonType.Reply, 0); } else { AddButton(191, 423, 2151, 2154, 2, GumpButtonType.Reply, 0); } AddLabel(227, 427, WhiteTextHue, "Confirm Offer"); } else { AddButton(24, 423, 2151, 2154, 1, GumpButtonType.Reply, 0); AddLabel(57, 426, WhiteTextHue, "Accept Their Offer"); if (m_Confirmed) { AddImage(191, 423, 9729); } else { AddImage(191, 423, 9731); } AddLabel(227, 427, WhiteTextHue, "They Are Ready"); } } }
public static Dungeon createDungeon(String _Name, Vector3 _Position, Vector3 _Size, DungeonEnum _DungeonEnum, Dimension _ParentDimension) { return(generateRegionDungeon("", _Position, _Size, _DungeonEnum, _ParentDimension)); }
private static Dungeon generateRegionDungeon(String _Name, Vector3 _Position, Vector3 _Size, DungeonEnum _DungeonEnum, Dimension _ParentDimension) { Dungeon var_Result; var_Result = DungeonFactory.createDungeon(_Position, _Size, _DungeonEnum, _ParentDimension); fillWithChunks(var_Result); Logger.Logger.LogInfo("Region " + var_Result.Name + " wurde erstellt!"); return(var_Result); }
public void EjectDungeonCore(Mobile from, DungeonEnum dungeon, bool removeAll) { if (from == null || dungeon == null) { return; } DungeonCoreLibraryEntry entry = GetEntryDetail(dungeon); if (entry == null) { return; } if (entry.Count == 0) { from.SendMessage("You do not have any of that dungeon core currently stored within this library."); return; } if (from.Backpack == null) { return; } if (from.Backpack.TotalItems == from.Backpack.MaxItems) { from.SendMessage("Your backpack is at capacity. Please remove some items and try again."); return; } if (removeAll) { int itemCount = 0; for (int a = 0; a < 1000; a++) { if (entry.Count == 0) { break; } if (from.Backpack.TotalItems == from.Backpack.MaxItems) { break; } DungeonCore dungeonCore = (DungeonCore)Activator.CreateInstance(typeof(DungeonCore)); dungeonCore.Dungeon = dungeon; if (dungeonCore != null) { entry.Count--; from.Backpack.DropItem(dungeonCore); itemCount++; } } if (itemCount > 1) { from.SendMessage("You retrieve " + itemCount.ToString() + " dungeon cores from the library."); from.SendSound(addItemSound); } else if (itemCount == 1) { from.SendMessage("You retrieve a dungeon core from the library."); from.SendSound(addItemSound); } else { from.SendMessage("You do not have any dungeon cores of that in the library."); } } else { DungeonCore dungeonCore = (DungeonCore)Activator.CreateInstance(typeof(DungeonCore)); dungeonCore.Dungeon = dungeon; if (dungeonCore != null) { entry.Count--; from.Backpack.DropItem(dungeonCore); from.SendMessage("You retrieve a dungeon core from the library."); from.SendSound(addItemSound); } } }
public override void OnResponse(NetState sender, RelayInfo info) { #region Validate Mobiles Involved //Validate Mobiles bool crafterValid = true; bool mobileTargetValid = true; if (m_Crafter == null) { crafterValid = false; } else if (m_Crafter.Deleted || !m_Crafter.Alive) { crafterValid = false; } if (m_MobileTarget == null) { mobileTargetValid = false; } else if (m_MobileTarget.Deleted || !m_MobileTarget.Alive) { mobileTargetValid = false; } if (!crafterValid || !mobileTargetValid) { if (m_Crafter != null) { if (m_Crafter.HasGump(typeof(DungeonMouldWeaponGump))) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); } m_Crafter.SendMessage("You can no longer proceed with the crafting of that dungeon weapon."); } if (m_MobileTarget != null && m_Crafter != m_MobileTarget) { if (m_MobileTarget.HasGump(typeof(DungeonMouldWeaponGump))) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); } m_MobileTarget.SendMessage("You can no longer proceed with the crafting of that dungeon weapon."); } return; } if (crafterValid && mobileTargetValid && m_Crafter != m_MobileTarget) { if (Utility.GetDistance(m_Crafter.Location, m_MobileTarget.Location) > 2) { if (m_Crafter.HasGump(typeof(DungeonMouldWeaponGump))) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); } m_Crafter.SendMessage("You are too far away from the target to proceed with the crafting."); if (m_MobileTarget.HasGump(typeof(DungeonMouldWeaponGump))) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); } m_MobileTarget.SendMessage("You are too far away from the crafter to proceed with the crafting."); return; } if (!m_Crafter.InLOS(m_MobileTarget)) { if (m_Crafter.HasGump(typeof(DungeonMouldWeaponGump))) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); } m_Crafter.SendMessage("You are out of sight of the target and cannot continue crafting."); if (m_MobileTarget.HasGump(typeof(DungeonMouldWeaponGump))) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); } m_MobileTarget.SendMessage("You are out of sight of the crafter and cannot continue crafting."); return; } } #endregion bool selfCraft = (m_Crafter == m_MobileTarget); bool attemptCraft = false; //Close Gumps For Other Player if One Party Closes Theirs if (info.ButtonID == 0) { if (!selfCraft) { if (m_GumpTarget == m_Crafter) { if (m_MobileTarget.HasGump(typeof(DungeonMouldWeaponGump))) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendMessage("They have canceled the offer."); return; } } if (m_GumpTarget == m_MobileTarget) { if (m_Crafter.HasGump(typeof(DungeonMouldWeaponGump))) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); m_Crafter.SendMessage("They have declined the offer."); return; } } } } //Confirm / Accept if (info.ButtonID == 1) { if (selfCraft) { attemptCraft = true; } else if (m_GumpTarget == m_MobileTarget) { if (!m_Confirmed) { if (m_Crafter != null) { m_MobileTarget.SendMessage(m_Crafter.Name + " has not confirmed their offer price yet."); } m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); return; } else { attemptCraft = true; } } else { m_GumpTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_GumpTarget.SendGump(new DungeonMouldWeaponGump(m_Crafter, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); return; } } //Ready if (info.ButtonID == 2) { if (!selfCraft && m_GumpTarget == m_Crafter) { m_Confirmed = !m_Confirmed; m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); } m_GumpTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_GumpTarget.SendGump(new DungeonMouldWeaponGump(m_Crafter, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); return; } //Adjust Price if (info.ButtonID == 3) { if (!selfCraft && m_GumpTarget == m_Crafter) { //Set Gold Amount TextRelay demandAmountTextRelay = info.GetTextEntry(4); string demandAmountText = demandAmountTextRelay.Text.Trim(); try { m_AmountDemanded = Convert.ToInt32(demandAmountText); } catch (Exception e) { m_AmountDemanded = 0; } if (m_AmountDemanded > 500000) { m_AmountDemanded = 500000; } if (m_AmountDemanded < 0) { m_AmountDemanded = 0; } m_Confirmed = false; m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); m_MobileTarget.SendMessage("They have changed the asking price for their service."); m_GumpTarget.SendMessage("You change the asking price for your services. Click 'Confirm' to proceed."); } m_GumpTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_GumpTarget.SendGump(new DungeonMouldWeaponGump(m_Crafter, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); return; } //Special Effect if (info.ButtonID == 4) { DungeonWeaponDetail weaponDetail = DungeonWeapon.GetDungeonWeaponDetail(m_Dungeon); m_GumpTarget.SendMessage(weaponDetail.m_EffectDisplayName + ": " + weaponDetail.m_EffectDescription); m_GumpTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_GumpTarget.SendGump(new DungeonMouldWeaponGump(m_Crafter, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); return; } //Dungeon Selection if (info.ButtonID >= 10 && info.ButtonID <= 18) { if (m_NewWeapon) { if (selfCraft || m_GumpTarget == m_MobileTarget) { switch (info.ButtonID) { case 10: m_Dungeon = DungeonEnum.Covetous; break; case 11: m_Dungeon = DungeonEnum.Deceit; break; case 12: m_Dungeon = DungeonEnum.Despise; break; case 13: m_Dungeon = DungeonEnum.Destard; break; case 14: m_Dungeon = DungeonEnum.Fire; break; case 15: m_Dungeon = DungeonEnum.Hythloth; break; case 16: m_Dungeon = DungeonEnum.Ice; break; case 17: m_Dungeon = DungeonEnum.Shame; break; case 18: m_Dungeon = DungeonEnum.Wrong; break; } } } m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); m_Crafter.SendGump(new DungeonMouldWeaponGump(m_Crafter, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); if (m_Crafter != m_MobileTarget) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); } return; } //Attempt Crafting if (attemptCraft) { bool mouldValid = true; if (m_DungeonMould == null) { mouldValid = false; } else if (m_DungeonMould.Deleted) { mouldValid = false; } if (m_DungeonMould.RootParent != m_Crafter) { mouldValid = false; } if (!mouldValid) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); m_Crafter.SendMessage("The dungeon mould being used is no longer accessible."); if (m_Crafter != m_MobileTarget) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendMessage("The dungeon mould being used is no longer accessible."); } return; } bool weaponValid = true; if (m_Weapon == null) { weaponValid = false; } else if (m_Weapon.Deleted) { weaponValid = false; } if (selfCraft) { if (m_Weapon.RootParent != m_Crafter) { weaponValid = false; } } else { if (m_Weapon.RootParent != m_MobileTarget) { weaponValid = false; } } if (m_Weapon.TierLevel == DungeonWeapon.MaxDungeonTier) { weaponValid = false; } if (m_NewWeapon) { if (m_Weapon.TierLevel > 0) { weaponValid = false; } if (m_Weapon.CrafterName == "" || m_Weapon.Quality != Quality.Exceptional) { weaponValid = false; } if (m_Weapon.DamageLevel != WeaponDamageLevel.Regular || m_Weapon.AccuracyLevel != WeaponAccuracyLevel.Regular || m_Weapon.DurabilityLevel != WeaponDurabilityLevel.Regular) { weaponValid = false; } } if (!weaponValid) { m_Crafter.CloseGump(typeof(DungeonMouldWeaponGump)); m_Crafter.SendMessage("The weapon being targeted is no longer accessible."); if (m_Crafter != m_MobileTarget) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendMessage("The weapon being targeted is no longer accessible."); } return; } if (!selfCraft && m_AmountDemanded > 0) { if (Banker.GetBalance(m_MobileTarget) < m_AmountDemanded) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); m_MobileTarget.SendMessage("You do not have the gold amount requested for this transaction in your bankbox."); return; } } if (!HasRequiredMaterials(m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Dungeon)) { m_MobileTarget.CloseGump(typeof(DungeonMouldWeaponGump)); m_MobileTarget.SendGump(new DungeonMouldWeaponGump(m_MobileTarget, m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Weapon, m_Dungeon, m_AmountDemanded, m_Confirmed)); if (m_NewWeapon) { m_MobileTarget.SendMessage("You must have " + DungeonWeapon.CoresNeededForCreation.ToString() + " dungeon cores and " + DungeonWeapon.DistillationNeededForCreation.ToString() + " dungeon distillation of the matching dungeon in your backpack to create this dungeon weapon."); } else { m_MobileTarget.SendMessage("You must have " + DungeonWeapon.CoresNeededForUpgrade.ToString() + " dungeon cores and " + DungeonWeapon.DistillationNeededForUpgrade.ToString() + " dungeon distillation of the matching dungeon in your backpack to upgrade it's tier."); } return; } ConsumeMaterials(m_Crafter, m_MobileTarget, m_DungeonMould, m_NewWeapon, m_Dungeon); if (!selfCraft && m_AmountDemanded > 0) { Banker.Withdraw(m_MobileTarget, m_AmountDemanded); Banker.Deposit(m_Crafter, m_AmountDemanded); m_MobileTarget.SendSound(0x037); if (m_NewWeapon) { m_Crafter.SendMessage("You convert their weapon into a dungeon weapon and receive " + m_AmountDemanded.ToString() + " gold for your services."); m_MobileTarget.SendMessage("You pay " + m_AmountDemanded.ToString() + " gold for them to create a dungeon weapon for you."); } else { m_Crafter.SendMessage("You upgrade their dugneon weapon's tier and receive " + m_AmountDemanded.ToString() + " gold for your services."); m_MobileTarget.SendMessage("You pay " + m_AmountDemanded.ToString() + " gold for them to upgrade your dungeon weapon."); } } else { if (selfCraft) { if (m_NewWeapon) { m_Crafter.SendMessage("You convert your weapon into a dungeon weapon."); } else { m_Crafter.SendMessage("You upgrade your dungeon weapon's tier."); } } else { if (m_NewWeapon) { m_Crafter.SendMessage("You convert their weapon into a dungeon weapon."); m_MobileTarget.SendMessage("They create a dungeon weapon for you."); } else { m_Crafter.SendMessage("You upgrade their dungeon weapon's tier."); m_MobileTarget.SendMessage("They upgrade your dungeon weapon's tier for you."); } } } m_Crafter.PlaySound(0x2A); if (m_NewWeapon) { m_Weapon.Quality = Quality.Regular; m_Weapon.ArcaneCharges = DungeonWeapon.ArcaneMaxCharges; m_Weapon.ArcaneChargesMax = DungeonWeapon.ArcaneMaxCharges; m_Weapon.Dungeon = m_Dungeon; m_Weapon.TierLevel = 1; } else { m_Weapon.TierLevel++; } m_Weapon.Experience = 0; m_Weapon.MaxHitPoints = DungeonWeapon.BaselineDurability + (DungeonWeapon.IncreasedDurabilityPerTier * m_Weapon.TierLevel); m_Weapon.HitPoints = m_Weapon.MaxHitPoints; return; } }
public PlayerDungeonArmorProfile(Mobile wearer, BaseArmor armorPiece) { Player = wearer as PlayerMobile; if (Player == null) { DungeonArmorDetail = new DungeonArmorDetail(DungeonEnum.None, 1); return; } if (Player.RecentlyInPlayerCombat) { InPlayerCombat = true; } DungeonEnum currentDungeon = DungeonEnum.None; int lowestTier = 1000; List <Layer> m_Layers = new List <Layer>(); m_Layers.Add(Layer.Helm); m_Layers.Add(Layer.Neck); m_Layers.Add(Layer.InnerTorso); m_Layers.Add(Layer.Arms); m_Layers.Add(Layer.Gloves); m_Layers.Add(Layer.Pants); MatchingSet = true; for (int a = 0; a < m_Layers.Count; a++) { BaseArmor dungeonArmor = Player.FindItemOnLayer(m_Layers[a]) as BaseArmor; if (dungeonArmor == null) { MatchingSet = false; continue; } if (dungeonArmor.Dungeon == DungeonEnum.None || dungeonArmor.TierLevel == 0) { MatchingSet = false; } else { Pieces++; if (currentDungeon == DungeonEnum.None) { currentDungeon = dungeonArmor.Dungeon; lowestTierPiece = dungeonArmor; } else { if (currentDungeon != dungeonArmor.Dungeon) { MatchingSet = false; } } if (dungeonArmor.TierLevel < lowestTier) { lowestTier = dungeonArmor.TierLevel; lowestTierPiece = dungeonArmor; } } } //Single Piece of Armor Being Inspected if (armorPiece != null) { currentDungeon = armorPiece.Dungeon; lowestTier = armorPiece.TierLevel; } if (lowestTier == 1000) { lowestTier = 1; } DungeonArmorDetail = new DungeonArmorDetail(currentDungeon, lowestTier); }