public void DrawSkill() { for (int i = 0; i < m_CraftItem.Skills.Count; i++) { CraftSkill skill = m_CraftItem.Skills.GetAt(i); double minSkill = skill.MinSkill; _ = skill.MaxSkill; if (minSkill < 0) { minSkill = 0; } AddHtmlLocalized(170, 132 + (i * 20), 200, 18, AosSkillBonuses.GetLabel(skill.SkillToMake), LabelColor, false, false); AddLabel(430, 132 + (i * 20), LabelHue, string.Format("{0:F1}", minSkill)); } CraftSubResCol res = (m_CraftItem.UseSubRes2 ? m_CraftSystem.CraftSubRes2 : m_CraftSystem.CraftSubRes); int resIndex = -1; CraftContext context = m_CraftSystem.GetContext(m_From); if (context != null) { resIndex = (m_CraftItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); } bool allRequiredSkills = true; double chance = m_CraftItem.GetSuccessChance(m_From, resIndex > -1 ? res.GetAt(resIndex).ItemType : null, m_CraftSystem, false, ref allRequiredSkills); double excepChance = m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From); if (chance < 0.0) { chance = 0.0; } else if (chance > 1.0) { chance = 1.0; } AddHtmlLocalized(170, 80, 250, 18, 1044057, LabelColor, false, false); // Success Chance: AddLabel(430, 80, LabelHue, $"{chance * 100:F1}%"); if (m_ShowExceptionalChance) { if (excepChance < 0.0) { excepChance = 0.0; } else if (excepChance > 1.0) { excepChance = 1.0; } AddHtmlLocalized(170, 100, 250, 18, 1044058, 32767, false, false); // Exceptional Chance: AddLabel(430, 100, LabelHue, $"{excepChance * 100:F1}%"); } }
public SelectSkillGump(SoulStone stone, Mobile from) : base(50, 50) { m_Stone = stone; AddPage(0); AddBackground(0, 0, 520, 440, 0x13BE); AddImageTiled(10, 10, 500, 20, 0xA40); AddImageTiled(10, 40, 500, 360, 0xA40); AddImageTiled(10, 410, 500, 20, 0xA40); AddAlphaRegion(10, 10, 500, 420); AddHtmlLocalized(10, 12, 500, 20, 1061087, 0x7FFF, false, false); // Which skill do you wish to transfer to the Soulstone? AddButton(10, 410, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 412, 450, 20, 1060051, 0x7FFF, false, false); // CANCEL for (int i = 0, n = 0; i < from.Skills.Length; i++) { Skill skill = from.Skills[i]; if (skill.Base > 0.0) { int p = n % 30; if (p == 0) { int page = n / 30; if (page > 0) { AddButton(260, 380, 0xFA5, 0xFA6, 0, GumpButtonType.Page, page + 1); AddHtmlLocalized(305, 382, 200, 20, 1011066, 0x7FFF, false, false); // Next page } AddPage(page + 1); if (page > 0) { AddButton(10, 380, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page); AddHtmlLocalized(55, 382, 200, 20, 1011067, 0x7FFF, false, false); // Previous page } } int x = (p % 2 == 0) ? 10 : 260; int y = (p / 2) * 20 + 40; AddButton(x, y, 0xFA5, 0xFA6, i + 1, GumpButtonType.Reply, 0); AddHtmlLocalized(x + 45, y + 2, 200, 20, AosSkillBonuses.GetLabel(skill.SkillName), 0x7FFF, false, false); n++; } } }
public ConfirmTransferGump(SoulStone stone, Mobile from) : base(50, 50) { m_Stone = stone; AddBackground(0, 0, 520, 440, 0x13BE); AddImageTiled(10, 10, 500, 20, 0xA40); AddImageTiled(10, 40, 500, 360, 0xA40); AddImageTiled(10, 410, 500, 20, 0xA40); AddAlphaRegion(10, 10, 500, 420); AddHtmlLocalized(10, 12, 500, 20, 1070709, 0x7FFF, false, false); // <CENTER>Confirm Soulstone Transfer</CENTER> /* <CENTER>Soulstone</CENTER><BR> * You are using a Soulstone. This powerful artifact allows you to remove skill points * from your character and store them in the stone for later retrieval. In order to use * the stone, you must make sure your Skill Lock for the indicated skill is pointed downward. * Click the "Skills" button on your Paperdoll to access the Skill List, and double-check * your skill lock.<BR><BR> * * Once you activate the stone, all skill points in the indicated skill will be removed from * your character. These skill points can later be retrieved. IMPORTANT: When retrieving * skill points from a Soulstone, the Soulstone WILL REPLACE any existing skill points * already on your character!<BR><BR> * * This is an Account Bound Soulstone. Skill pointsstored inside can be retrieved by any * character on the same account as the character who placed them into the stone. */ AddHtmlLocalized(10, 42, 500, 110, 1061067, 0x7FFF, false, true); AddHtmlLocalized(10, 200, 390, 20, 1070718, 0x7FFF, false, false); // Skill Stored: AddHtmlLocalized(210, 200, 390, 20, AosSkillBonuses.GetLabel(stone.Skill), 0x7FFF, false, false); Skill fromSkill = from.Skills[stone.Skill]; AddHtmlLocalized(10, 220, 390, 20, 1062298, 0x7FFF, false, false); // Current Value: AddLabel(210, 220, 0x481, fromSkill.Base.ToString("0.0")); AddHtmlLocalized(10, 240, 390, 20, 1062299, 0x7FFF, false, false); // Current Cap: AddLabel(210, 240, 0x481, fromSkill.Cap.ToString("0.0")); AddHtmlLocalized(10, 260, 390, 20, 1062300, 0x7FFF, false, false); // New Value: AddLabel(210, 260, 0x481, stone.SkillValue.ToString("0.0")); AddButton(10, 360, 0xFA5, 0xFA6, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 362, 450, 20, 1070719, 0x7FFF, false, false); // Activate the stone. I am ready to retrieve the skill points from it. AddButton(10, 380, 0xFA5, 0xFA6, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 382, 450, 20, 1070723, 0x7FFF, false, false); // Remove all skill points from this stone and DO NOT absorb them. AddButton(10, 410, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(45, 412, 450, 20, 1060051, 0x7FFF, false, false); // CANCEL }
public override void WriteToGump(Gump g, ref int y) { int skillLabel = AosSkillBonuses.GetLabel(m_Skill); string args; if (m_ThresholdFixed % 10 == 0) { args = String.Format("#{0}\t{1}", skillLabel, m_ThresholdFixed / 10); // as seen on OSI } else { args = String.Format("#{0}\t{1:0.0}", skillLabel, (double)m_ThresholdFixed / 10); // for non-integer skill levels } g.AddHtmlLocalized(98, y, 312, 16, 1077485, args, 0x15F90, false, false); // Increase ~1_SKILL~ to ~2_VALUE~ y += 16; }
public override void GetProperties(ObjectPropertyList list) { base.GetProperties(list); if (!IsEmpty) { list.Add(1070721, "#{0}\t{1:0.0}", AosSkillBonuses.GetLabel(Skill), SkillValue); // Skill stored: ~1_skillname~ ~2_skillamount~ } string name = LastUserName; if (name == null) { name = string.Format("#{0}", 1074235); // Unknown } list.Add(1041602, "{0}", name); // Owner: ~1_val~ }
public InternalGump(Mobile mobile, SpecialScroll scroll) : base(25, 50) { m_Mobile = mobile; m_Scroll = scroll; AddPage(0); AddBackground(25, 10, 420, 200, 5054); AddImageTiled(33, 20, 401, 181, 2624); AddAlphaRegion(33, 20, 401, 181); AddHtmlLocalized(40, 48, 387, 100, m_Scroll.Message, true, true); AddHtmlLocalized(125, 148, 200, 20, 1049478, 0xFFFFFF, false, false); // Do you wish to use this scroll? AddButton(100, 172, 4005, 4007, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(135, 172, 120, 20, 1046362, 0xFFFFFF, false, false); // Yes AddButton(275, 172, 4005, 4007, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(310, 172, 120, 20, 1046363, 0xFFFFFF, false, false); // No if (m_Scroll.Title != 0) { AddHtmlLocalized(40, 20, 260, 20, m_Scroll.Title, 0xFFFFFF, false, false); } else { AddHtml(40, 20, 260, 20, m_Scroll.DefaultTitle, false, false); } if (m_Scroll is StatCapScroll) { AddHtmlLocalized(310, 20, 120, 20, 1038019, 0xFFFFFF, false, false); // Power } else { AddHtmlLocalized(310, 20, 120, 20, AosSkillBonuses.GetLabel(m_Scroll.Skill), 0xFFFFFF, false, false); } }
public virtual string GetNameLocalized() => $"#{AosSkillBonuses.GetLabel(Skill)}";
public virtual string GetNameLocalized() { return(String.Concat("#", AosSkillBonuses.GetLabel(m_Skill).ToString())); }
public override void GetProperties(ObjectPropertyList list) { base.GetProperties(list); if (Blessed) { if (BlessedFor != null) { list.Add(1072304, !String.IsNullOrEmpty(BlessedFor.Name) ? BlessedFor.Name : "Unnamed Warrior"); // Owned by ~1_name~ } else { list.Add(1072304, "Nobody"); // Owned by ~1_name~ } } if (Parent is Mobile && m_MaxChargeTime > 0) { if (m_ChargeTime > 0) { list.Add(1074884, m_ChargeTime.ToString()); // Charge time left: ~1_val~ } else { list.Add(1074883); // Fully Charged } } list.Add(1075085); // Requirement: Mondain's Legacy if (m_Killer != null && !m_Killer.IsEmpty && m_Killer.Amount > 0) { list.Add(1072388, "{0}\t{1}", m_Killer.Name != null ? m_Killer.Name.ToString() : "Unknown", m_Killer.Amount); // ~1_NAME~ Killer: +~2_val~% } if (m_Protection != null && !m_Protection.IsEmpty && m_Protection.Amount > 0) { list.Add(1072387, "{0}\t{1}", m_Protection.Name != null ? m_Protection.Name.ToString() : "Unknown", m_Protection.Amount); // ~1_NAME~ Protection: +~2_val~% } if (m_ExceptionalBonus != 0) { list.Add(1072395, "#{0}\t{1}", AosSkillBonuses.GetLabel(m_Skill), m_ExceptionalBonus); // ~1_NAME~ Exceptional Bonus: ~2_val~% } if (m_SuccessBonus != 0) { list.Add(1072394, "#{0}\t{1}", AosSkillBonuses.GetLabel(m_Skill), m_SuccessBonus); // ~1_NAME~ Bonus: ~2_val~% } m_AosSkillBonuses.GetProperties(list); int prop; if ((prop = m_AosAttributes.WeaponDamage) != 0) { list.Add(1060401, prop.ToString()); // damage increase ~1_val~% } if ((prop = m_AosAttributes.DefendChance) != 0) { list.Add(1060408, prop.ToString()); // defense chance increase ~1_val~% } if ((prop = m_AosAttributes.BonusDex) != 0) { list.Add(1060409, prop.ToString()); // dexterity bonus ~1_val~ } if ((prop = m_AosAttributes.EnhancePotions) != 0) { list.Add(1060411, prop.ToString()); // enhance potions ~1_val~% } if ((prop = m_AosAttributes.CastRecovery) != 0) { list.Add(1060412, prop.ToString()); // faster cast recovery ~1_val~ } if ((prop = m_AosAttributes.CastSpeed) != 0) { list.Add(1060413, prop.ToString()); // faster casting ~1_val~ } if ((prop = m_AosAttributes.AttackChance) != 0) { list.Add(1060415, prop.ToString()); // hit chance increase ~1_val~% } if ((prop = m_AosAttributes.BonusHits) != 0) { list.Add(1060431, prop.ToString()); // hit point increase ~1_val~ } if ((prop = m_AosAttributes.BonusInt) != 0) { list.Add(1060432, prop.ToString()); // intelligence bonus ~1_val~ } if ((prop = m_AosAttributes.LowerManaCost) != 0) { list.Add(1060433, prop.ToString()); // lower mana cost ~1_val~% } if ((prop = m_AosAttributes.LowerRegCost) != 0) { list.Add(1060434, prop.ToString()); // lower reagent cost ~1_val~% } if ((prop = m_AosAttributes.Luck) != 0) { list.Add(1060436, prop.ToString()); // luck ~1_val~ } if ((prop = m_AosAttributes.BonusMana) != 0) { list.Add(1060439, prop.ToString()); // mana increase ~1_val~ } if ((prop = m_AosAttributes.RegenMana) != 0) { list.Add(1060440, prop.ToString()); // mana regeneration ~1_val~ } if ((prop = m_AosAttributes.NightSight) != 0) { list.Add(1060441); // night sight } if ((prop = m_AosAttributes.ReflectPhysical) != 0) { list.Add(1060442, prop.ToString()); // reflect physical damage ~1_val~% } if ((prop = m_AosAttributes.RegenStam) != 0) { list.Add(1060443, prop.ToString()); // stamina regeneration ~1_val~ } if ((prop = m_AosAttributes.RegenHits) != 0) { list.Add(1060444, prop.ToString()); // hit point regeneration ~1_val~ } if ((prop = m_AosAttributes.SpellChanneling) != 0) { list.Add(1060482); // spell channeling } if ((prop = m_AosAttributes.SpellDamage) != 0) { list.Add(1060483, prop.ToString()); // spell damage increase ~1_val~% } if ((prop = m_AosAttributes.BonusStam) != 0) { list.Add(1060484, prop.ToString()); // stamina increase ~1_val~ } if ((prop = m_AosAttributes.BonusStr) != 0) { list.Add(1060485, prop.ToString()); // strength bonus ~1_val~ } if ((prop = m_AosAttributes.WeaponSpeed) != 0) { list.Add(1060486, prop.ToString()); // swing speed increase ~1_val~% } if (Core.ML && (prop = m_AosAttributes.IncreasedKarmaLoss) != 0) { list.Add(1075210, prop.ToString()); // Increased Karma Loss ~1val~% } if (m_MaxCharges > 0) { list.Add(1060741, m_Charges.ToString()); // charges: ~1_val~ } if (m_Slayer != TalismanSlayerName.None) { list.Add(1072503 + (int)m_Slayer); } }
public override void GetProperties(ObjectPropertyList list) { base.GetProperties(list); list.Add(1072395, "#{0}\t{1}", AosSkillBonuses.GetLabel(SkillName.Cooking), _Bonus); // ~1_NAME~ Exceptional Bonus: ~2_val~% }
public void DrawSkill() { for (int i = 0; i < m_CraftItem.Skills.Count; i++) { CraftSkill skill = m_CraftItem.Skills.GetAt(i); double minSkill = skill.MinSkill, maxSkill = skill.MaxSkill; if (minSkill < 0) { minSkill = 0; } AddHtmlLocalized(170, 155 + (i * 20), 200, 18, AosSkillBonuses.GetLabel(skill.SkillToMake), LabelColor, false, false); AddLabel(430, 155 + (i * 20), LabelHue, String.Format("{0:F1}", minSkill)); } CraftSubResCol res = (m_CraftItem.UseSubRes2 ? m_CraftSystem.CraftSubRes2 : m_CraftSystem.CraftSubRes); int resIndex = -1; CraftContext context = m_CraftSystem.GetContext(m_From); if (context != null) { resIndex = (m_CraftItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); } bool allRequiredSkills = true; double successChance = m_CraftItem.GetSuccessChance(m_From, resIndex > -1 ? res.GetAt(resIndex).ItemType : null, m_CraftSystem, false, ref allRequiredSkills); double exceptionalChance = m_CraftItem.GetExceptionalChance(m_CraftSystem, successChance, m_From); bool skillGainPossible = false; if (successChance < 0.0) { successChance = 0.0; } else if (successChance > 1.0) { successChance = 1.0; } if (exceptionalChance < 0.0) { exceptionalChance = 0.0; } else if (exceptionalChance > 1.0) { exceptionalChance = 1.0; } if (successChance > 0 && successChance < 1.0) { skillGainPossible = true; } int startY = 80; AddHtmlLocalized(170, startY, 250, 18, 1044057, LabelColor, false, false); // Success Chance: AddLabel(430, startY, LabelHue, String.Format("{0:F1}%", successChance * 100)); startY += 20; if (m_ShowExceptionalChance) { if (exceptionalChance < 0.0) { exceptionalChance = 0.0; } else if (exceptionalChance > 1.0) { exceptionalChance = 1.0; } AddHtmlLocalized(170, startY, 250, 18, 1044058, 32767, false, false); // Exceptional Chance: AddLabel(430, startY, LabelHue, String.Format("{0:F1}%", exceptionalChance * 100)); startY += 20; } if (skillGainPossible) { AddLabel(169, startY, 2599, "Skill Gain Possible"); } }
public void DrawSkill() { for (int i = 0; i < m_CraftItem.Skills.Count; i++) { CraftSkill skill = m_CraftItem.Skills.GetAt(i); double minSkill = skill.MinSkill, maxSkill = skill.MaxSkill; if (minSkill < 0) { minSkill = 0; } string textminSkills = "Débutant"; if (minSkill >= 30 && minSkill < 40) { textminSkills = "Néophite"; } else if (minSkill >= 40 && minSkill < 50) { textminSkills = "Novice"; } else if (minSkill >= 50 && minSkill < 60) { textminSkills = "Apprenti"; } else if (minSkill >= 60 && minSkill < 70) { textminSkills = "Compagnon"; } else if (minSkill >= 70 && minSkill < 80) { textminSkills = "Expert"; } else if (minSkill >= 80 && minSkill < 90) { textminSkills = "Adepte"; } else if (minSkill >= 90 && minSkill < 100) { textminSkills = "Maître"; } else if (minSkill >= 100 && minSkill < 110) { textminSkills = "Grand Maître"; } AddHtmlLocalized(170, 132 + (i * 20), 200, 18, AosSkillBonuses.GetLabel(skill.SkillToMake), LabelColor, false, false); if (m_From.AccessLevel >= AccessLevel.GameMaster) { AddLabel(430, 132 + (i * 20), LabelHue, String.Format("{0:F1}", minSkill)); } else { AddLabel(430, 132 + (i * 20), LabelHue, String.Format("{0}", textminSkills)); } } CraftSubResCol res = (m_CraftItem.UseSubRes2 ? m_CraftSystem.CraftSubRes2 : m_CraftSystem.CraftSubRes); int resIndex = -1; CraftContext context = m_CraftSystem.GetContext(m_From); if (context != null) { resIndex = (m_CraftItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); } bool allRequiredSkills = true; double chance = m_CraftItem.GetSuccessChance(m_From, resIndex > -1 ? res.GetAt(resIndex).ItemType : null, m_CraftSystem, false, ref allRequiredSkills); double excepChance = m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From); m_Chance = chance; // Scriptiz : on stocke la chance if (chance < 0.0) { chance = 0.0; } else if (chance > 1.0) { chance = 1.0; } string textchance = "Nulle"; if (chance > 0 && chance <= 0.2) { textchance = "Faible"; } else if (chance > 0.2 && chance <= 0.4) { textchance = "Possible"; } else if (chance > 0.4 && chance <= 0.6) { textchance = "Moyenne"; } else if (chance > 0.6 && chance <= 0.8) { textchance = "Favorable"; } else if (chance > 0.8 && chance < 1) { textchance = "Grande"; } else if (chance == 1) { textchance = "Aisée"; } AddHtmlLocalized(170, 80, 250, 18, 1044057, LabelColor, false, false); if (m_From.AccessLevel >= AccessLevel.GameMaster) { AddLabel(430, 80, LabelHue, String.Format("{0:F1}%", chance * 100)); } else { AddLabel(430, 80, LabelHue, String.Format("{0}", textchance)); } if (m_ShowExceptionalChance) { if (excepChance < 0.0) { excepChance = 0.0; } else if (excepChance > 1.0) { excepChance = 1.0; } if (m_From.AccessLevel >= AccessLevel.GameMaster) { AddHtmlLocalized(170, 100, 250, 18, 1044058, 32767, false, false); // Exceptional Chance: AddLabel(430, 100, LabelHue, String.Format("{0:F1}%", excepChance * 100)); } } }
public SelectSkillGump(SoulStone stone, Mobile from) : base(50, 50) { this.m_Stone = stone; this.AddPage(0); this.AddBackground(0, 0, 520, 440, 0x13BE); this.AddImageTiled(10, 10, 500, 20, 0xA40); this.AddImageTiled(10, 40, 500, 360, 0xA40); this.AddImageTiled(10, 410, 500, 20, 0xA40); this.AddAlphaRegion(10, 10, 500, 420); this.AddHtmlLocalized(10, 12, 500, 20, 1061087, 0x7FFF, false, false); // Which skill do you wish to transfer to the Soulstone? this.AddButton(10, 410, 0xFB1, 0xFB2, 0, GumpButtonType.Reply, 0); this.AddHtmlLocalized(45, 412, 450, 20, 1060051, 0x7FFF, false, false); // CANCEL for (int i = 0, n = 0; i < from.Skills.Length; i++) { Skill skill = from.Skills[i]; if (!Core.AOS) { if (skill.SkillName == SkillName.Chivalry || skill.SkillName == SkillName.Necromancy) { continue; } } if (!Core.SE) { if (skill.SkillName == SkillName.Bushido || skill.SkillName == SkillName.Ninjitsu) { continue; } } if (!Core.ML) { if (skill.SkillName == SkillName.Spellweaving) { continue; } } if (!Core.SA) { if (skill.SkillName == SkillName.Imbuing || skill.SkillName == SkillName.Mysticism || skill.SkillName == SkillName.Throwing) { continue; } } if (skill.Base > 0.0) { int p = n % 30; if (p == 0) { int page = n / 30; if (page > 0) { this.AddButton(260, 380, 0xFA5, 0xFA6, 0, GumpButtonType.Page, page + 1); this.AddHtmlLocalized(305, 382, 200, 20, 1011066, 0x7FFF, false, false); // Next page } this.AddPage(page + 1); if (page > 0) { this.AddButton(10, 380, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page); this.AddHtmlLocalized(55, 382, 200, 20, 1011067, 0x7FFF, false, false); // Previous page } } int x = (p % 2 == 0) ? 10 : 260; int y = (p / 2) * 20 + 40; this.AddButton(x, y, 0xFA5, 0xFA6, i + 1, GumpButtonType.Reply, 0); this.AddHtmlLocalized(x + 45, y + 2, 200, 20, AosSkillBonuses.GetLabel(skill.SkillName), 0x7FFF, false, false); n++; } } }