public bool AttemptSelectItem(kItem ki, Item item) { byte startLevel = ki.upgradeLevel; if (startLevel >= 7 && (startLevel >= 8 || !transcendenceCrown)) { return(false); } this.ki = ki; this.item = item; selected = true; upgradeSuccess = 90 - startLevel * 10; if (startLevel == 0) { upgradeCost = (int)(item.value / 50); } else if (startLevel == 1) { upgradeCost = (int)(item.value / 30); } else if (startLevel == 2) { upgradeCost = (int)(item.value / 20); } else if (startLevel == 3) { upgradeCost = (int)(item.value / 10); } else if (startLevel == 4) { upgradeCost = (int)(item.value / 5); } else if (startLevel == 5) { upgradeCost = (int)(item.value / 3); } else if (startLevel == 6) { upgradeCost = (int)(item.value / 2); } else if (startLevel == 7) { upgradeCost = (int)(item.value); } else if (startLevel == 8) { upgradeCost = (int)(item.value * 1.5); } return(true); }
public bool AttemptSelectItem(kItem tKi, Item tItem) { byte startLevel = tKi.UpgradeLevel; if (startLevel >= 7 && (startLevel >= 8 || !TranscendenceCrown)) { return(false); } Ki = tKi; Item = tItem; Selected = true; UpgradeSuccess = 90 - startLevel * 10; if (startLevel == 0) { UpgradeCost = tItem.value / 20; } else if (startLevel == 1) { UpgradeCost = tItem.value / 15; } else if (startLevel == 2) { UpgradeCost = tItem.value / 10; } else if (startLevel == 3) { UpgradeCost = tItem.value / 8; } else if (startLevel == 4) { UpgradeCost = tItem.value / 5; } else if (startLevel == 5) { UpgradeCost = tItem.value / 3; } else if (startLevel == 6) { UpgradeCost = tItem.value / 2; } else if (startLevel == 7) { UpgradeCost = tItem.value; } else if (startLevel == 8) { UpgradeCost = (int)(tItem.value * 1.5); } return(true); }
public void SelectItem(Projectile projectile) { Player owner = Main.player[projectile.owner]; SelectedItem = owner.inventory[owner.selectedItem]; projectile.minion = SelectedItem.summon || projectile.minion; foreach (Element element in Enum.GetValues(typeof(Element))) { if (SelectedItem.netID == 0) { continue; } kItem t = SelectedItem.GetGlobalItem <kItem>(); if (t.ElementalDamage.ContainsKey(element)) { ElementalDamage[element] = t.ElementalDamage[element]; } else { ElementalDamage[element] = 0; } } }
public void Reset() { ki = null; item = null; selected = false; }
public override void PostDraw(SpriteBatch spriteBatch, Player player) { if (character.permanence < 1) { permanenceCrown = false; } if (character.transcendence < 1) { transcendenceCrown = false; } spriteBatch.Draw(GFX.anvil, new Vector2(GuiPosition.X - 150f * scale, GuiPosition.Y - 100f * scale), Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Upgrading an item increases its power, but does not always succeed", new Vector2(GuiPosition.X - 176f * scale, GuiPosition.Y - 148f * scale), Color.White, scale); if (permanenceCrown) { spriteBatch.DrawStringWithShadow(Main.fontMouseText, "If the upgrade fails, the item will be downgraded.", new Vector2(GuiPosition.X - 176f * scale, GuiPosition.Y - 124 * scale), Color.Lime, scale); } else { spriteBatch.DrawStringWithShadow(Main.fontMouseText, "If the upgrade fails, the item will be destroyed.", new Vector2(GuiPosition.X - 176f * scale, GuiPosition.Y - 124 * scale), Color.Red, scale); } spriteBatch.Draw(guardianCrown ? GFX.button_crown_pressed : GFX.button_crown, BtnExperiencePos, Color.White, scale); spriteBatch.Draw(GFX.guardianCrown, BtnExperiencePos + new Vector2(9f, 10f) * scale, guardianCrown ? Color.Gray : Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Increases success chance of upgrades by 10%", BtnExperiencePos + new Vector2(64f, 4f) * scale, Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "at the cost of a much higher price in currency", BtnExperiencePos + new Vector2(64f, 28f) * scale, Color.White, scale); spriteBatch.Draw(permanenceCrown ? GFX.button_crown_pressed : GFX.button_crown, BtnPermanencePos, Color.White, scale); spriteBatch.Draw(Main.itemTexture[mod.ItemType <PermanenceCrown>()], BtnPermanencePos + new Vector2(9f, 10f) * scale, permanenceCrown ? Color.Gray : Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontItemStack, character.permanence.ToString(), BtnPermanencePos + new Vector2(8f, 24f) * scale, Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "When an upgrade fails, items are downgraded", BtnPermanencePos + new Vector2(64f, 4f) * scale, Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "instead of being destroyed. " + (character.permanence == 1 ? "1 crown left." : character.permanence + " crowns left."), BtnPermanencePos + new Vector2(64f, 28f) * scale, Color.White, scale); spriteBatch.Draw(transcendenceCrown ? GFX.button_crown_pressed : GFX.button_crown, BtnTranscendencePos, Color.White, scale); spriteBatch.Draw(Main.itemTexture[mod.ItemType <BlacksmithCrown>()], BtnTranscendencePos + new Vector2(9f, 10f) * scale, transcendenceCrown ? Color.Gray : Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontItemStack, character.transcendence.ToString(), BtnTranscendencePos + new Vector2(8f, 24f) * scale, Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Allows you to upgrade an item to +8", BtnTranscendencePos + new Vector2(64f, 4f) * scale, Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, character.transcendence == 1 ? "1 crown left." : character.transcendence + " crowns left.", BtnTranscendencePos + new Vector2(64f, 28f) * scale, Color.White, scale); spriteBatch.Draw(GFX.button_close, BtnCancelPos, Color.White, scale); if (!selected) { spriteBatch.DrawStringWithShadow(Main.fontMouseText, "<Right-click a weapon to select it for upgrading>", new Vector2(GuiPosition.X - 176f * scale, GuiPosition.Y + 128f * scale), Color.White, scale); } else { if (ki.upgradeLevel >= PlayerCharacter.defaultMaxUpgradeLevel && !transcendenceCrown) { ki = null; item = null; selected = false; } spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Selected item: " + item.HoverName, new Vector2(GuiPosition.X - 192f * scale, GuiPosition.Y + 128f * scale), Color.White, scale); int modifier = guardianCrown ? 4 : 1; if (player.Wealth() >= upgradeCost * modifier) { int bonusChance = guardianCrown ? 10 : 0; spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Upgrade Cost: " + API.MoneyToString(upgradeCost * modifier), new Vector2(GuiPosition.X - 192f * scale, GuiPosition.Y + 152f * scale), Color.White, scale); spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Chance to succeed: " + (upgradeSuccess + bonusChance).ToString() + "%", new Vector2(GuiPosition.X - 192f * scale, GuiPosition.Y + 176f * scale), bonusChance > 0 ? Color.Lime : Color.White, scale); spriteBatch.Draw(GFX.button_upgrade, BtnUpgradePos, Color.White, scale); if (new Rectangle((int)BtnUpgradePos.X, (int)BtnUpgradePos.Y, (int)(GFX.BTN_WIDTH * scale), (int)(GFX.BTN_HEIGHT * scale)).Contains(Main.mouseX, Main.mouseY) && Main.mouseLeft && Main.mouseLeftRelease) { Main.PlaySound(SoundID.MenuTick); if (ki.upgradeLevel >= PlayerCharacter.defaultMaxUpgradeLevel) { character.transcendence -= 1; } if (Main.rand.Next(100) < upgradeSuccess + bonusChance) { ki.Upgrade(item); } else { if (permanenceCrown) { ki.Downgrade(item); } else { ki.Destroy(item); } } if (permanenceCrown && bonusChance + upgradeSuccess < 100) { character.permanence -= 1; } player.RemoveCoins(upgradeCost * modifier); if (!AttemptSelectItem(ki, item)) { CloseGUI(); } } } else { spriteBatch.DrawStringWithShadow(Main.fontMouseText, "Upgrade Cost: " + API.MoneyToString(upgradeCost * modifier), new Vector2(GuiPosition.X - 192f * scale, GuiPosition.Y + 152f * scale), Color.Red, scale); } } if (position != null) { if (Vector2.Distance(player.Center, position) > 128) { CloseGUI(); } } }