v3.1.0: Loosened ID and uncurse reqs for Mage's Staff and Dried Rose

This commit is contained in:
Evan Debenham
2025-04-13 15:27:41 -04:00
parent 5212e1818a
commit c55ccb26d7
3 changed files with 32 additions and 23 deletions

View File

@@ -231,8 +231,8 @@ items.artifacts.driedrose$wndghosthero.desc=The ghost is weak on their own, but
items.artifacts.driedrose$wndghosthero.weapon_prompt=Select a weapon items.artifacts.driedrose$wndghosthero.weapon_prompt=Select a weapon
items.artifacts.driedrose$wndghosthero.armor_prompt=Select an armor items.artifacts.driedrose$wndghosthero.armor_prompt=Select an armor
items.artifacts.driedrose$wndghosthero.cant_unique=The ghost can't use unique items. items.artifacts.driedrose$wndghosthero.cant_unique=The ghost can't use unique items.
items.artifacts.driedrose$wndghosthero.cant_unidentified=You don't know enough about that item. items.artifacts.driedrose$wndghosthero.cant_cursed=Those ghost can only use equipment that you're sure isn't cursed.
items.artifacts.driedrose$wndghosthero.cant_cursed=You can't give the ghost cursed equipment. items.artifacts.driedrose$wndghosthero.cant_strength_unknown=The ghost may not be strong enough to use that.
items.artifacts.driedrose$wndghosthero.cant_strength=The ghost is not strong enough to use that. items.artifacts.driedrose$wndghosthero.cant_strength=The ghost is not strong enough to use that.
##ghost hero ##ghost hero
@@ -1927,10 +1927,10 @@ items.weapon.melee.magesstaff.ac_zap=ZAP
items.weapon.melee.magesstaff.prompt=Select a wand items.weapon.melee.magesstaff.prompt=Select a wand
items.weapon.melee.magesstaff.imbue=You imbue your staff with the %s. items.weapon.melee.magesstaff.imbue=You imbue your staff with the %s.
items.weapon.melee.magesstaff.preserved=The previous wand was preserved! items.weapon.melee.magesstaff.preserved=The previous wand was preserved!
items.weapon.melee.magesstaff.conflict=The conflicting magics erase the enchantment on your staff. items.weapon.melee.magesstaff.imbue_desc=Are you sure you want to imbue your staff with this wand?\n\nIf the wand being imbued is the same or higher level than the staff, the staff will inherit the level of that wand plus a single one of its own upgrades.
items.weapon.melee.magesstaff.id_first=You'll need to identify this wand first. items.weapon.melee.magesstaff.imbue_level=This imbue will result in a _+%d staff._
items.weapon.melee.magesstaff.cursed=You can't use a cursed wand. items.weapon.melee.magesstaff.imbue_unknown=You don't know this wand's level, but this imbue will result in at least a _+%d staff._
items.weapon.melee.magesstaff.imbue_desc=Are you sure you want to imbue your staff with this wand?\n\nIf the wand being imbued is the same or higher level than the staff, the staff will inherit the level of that wand plus a single one of its own upgrades.\n\nThis imbue will result in a _level %d_ staff. items.weapon.melee.magesstaff.imbue_cursed=_If you imbue a cursed wand, then your staff will become cursed as well!_
items.weapon.melee.magesstaff.imbue_lost=The wand currently imbued in your staff _will be lost_. items.weapon.melee.magesstaff.imbue_lost=The wand currently imbued in your staff _will be lost_.
items.weapon.melee.magesstaff.imbue_talent=The wand currently imbued in your staff _will be returned at +0_. items.weapon.melee.magesstaff.imbue_talent=The wand currently imbued in your staff _will be returned at +0_.
items.weapon.melee.magesstaff.yes=Yes, I'm sure items.weapon.melee.magesstaff.yes=Yes, I'm sure

View File

@@ -904,11 +904,11 @@ public class DriedRose extends Artifact {
} else if (item.unique) { } else if (item.unique) {
GLog.w( Messages.get(WndGhostHero.class, "cant_unique")); GLog.w( Messages.get(WndGhostHero.class, "cant_unique"));
hide(); hide();
} else if (!item.isIdentified()) { } else if (item.cursed || !item.cursedKnown) {
GLog.w( Messages.get(WndGhostHero.class, "cant_unidentified")); GLog.w(Messages.get(WndGhostHero.class, "cant_cursed"));
hide(); hide();
} else if (item.cursed) { } else if (!item.levelKnown && ((MeleeWeapon)item).STRReq(0) > rose.ghostStrength()){
GLog.w( Messages.get(WndGhostHero.class, "cant_cursed")); GLog.w( Messages.get(WndGhostHero.class, "cant_strength_unknown"));
hide(); hide();
} else if (((MeleeWeapon)item).STRReq() > rose.ghostStrength()) { } else if (((MeleeWeapon)item).STRReq() > rose.ghostStrength()) {
GLog.w( Messages.get(WndGhostHero.class, "cant_strength")); GLog.w( Messages.get(WndGhostHero.class, "cant_strength"));
@@ -979,11 +979,11 @@ public class DriedRose extends Artifact {
} else if (item.unique || ((Armor) item).checkSeal() != null) { } else if (item.unique || ((Armor) item).checkSeal() != null) {
GLog.w( Messages.get(WndGhostHero.class, "cant_unique")); GLog.w( Messages.get(WndGhostHero.class, "cant_unique"));
hide(); hide();
} else if (!item.isIdentified()) { } else if (item.cursed || !item.cursedKnown) {
GLog.w( Messages.get(WndGhostHero.class, "cant_unidentified")); GLog.w(Messages.get(WndGhostHero.class, "cant_cursed"));
hide(); hide();
} else if (item.cursed) { } else if (!item.levelKnown && ((Armor)item).STRReq(0) > rose.ghostStrength()){
GLog.w( Messages.get(WndGhostHero.class, "cant_cursed")); GLog.w( Messages.get(WndGhostHero.class, "cant_strength_unknown"));
hide(); hide();
} else if (((Armor)item).STRReq() > rose.ghostStrength()) { } else if (((Armor)item).STRReq() > rose.ghostStrength()) {
GLog.w( Messages.get(WndGhostHero.class, "cant_strength")); GLog.w( Messages.get(WndGhostHero.class, "cant_strength"));

View File

@@ -249,6 +249,7 @@ public class MagesStaff extends MeleeWeapon {
level(targetLevel); level(targetLevel);
this.wand = wand; this.wand = wand;
wand.levelKnown = wand.curChargeKnown = true;
updateWand(false); updateWand(false);
wand.curCharges = Math.min(wand.maxCharges, wand.curCharges+oldStaffcharges); wand.curCharges = Math.min(wand.maxCharges, wand.curCharges+oldStaffcharges);
if (owner != null){ if (owner != null){
@@ -257,6 +258,12 @@ public class MagesStaff extends MeleeWeapon {
applyWandChargeBuff(Dungeon.hero); applyWandChargeBuff(Dungeon.hero);
} }
if (wand.cursed && (!this.cursed || !this.hasCurseEnchant())){
equipCursed(Dungeon.hero);
this.cursed = this.cursedKnown = true;
enchant(Enchantment.randomCurse());
}
//This is necessary to reset any particles. //This is necessary to reset any particles.
//FIXME this is gross, should implement a better way to fully reset quickslot visuals //FIXME this is gross, should implement a better way to fully reset quickslot visuals
int slot = Dungeon.quickslot.getSlot(this); int slot = Dungeon.quickslot.getSlot(this);
@@ -416,14 +423,6 @@ public class MagesStaff extends MeleeWeapon {
public void onSelect( final Item item ) { public void onSelect( final Item item ) {
if (item != null) { if (item != null) {
if (!item.isIdentified()) {
GLog.w(Messages.get(MagesStaff.class, "id_first"));
return;
} else if (item.cursed){
GLog.w(Messages.get(MagesStaff.class, "cursed"));
return;
}
if (wand == null){ if (wand == null){
applyWand((Wand)item); applyWand((Wand)item);
} else { } else {
@@ -436,7 +435,17 @@ public class MagesStaff extends MeleeWeapon {
newLevel = trueLevel(); newLevel = trueLevel();
} }
String bodyText = Messages.get(MagesStaff.class, "imbue_desc", newLevel); String bodyText = Messages.get(MagesStaff.class, "imbue_desc");
if (item.isIdentified()){
bodyText += "\n\n" + Messages.get(MagesStaff.class, "imbue_level", newLevel);
} else {
bodyText += "\n\n" + Messages.get(MagesStaff.class, "imbue_unknown", trueLevel());
}
if (!item.cursedKnown || item.cursed){
bodyText += "\n\n" + Messages.get(MagesStaff.class, "imbue_cursed");
}
if (Dungeon.hero.hasTalent(Talent.WAND_PRESERVATION) if (Dungeon.hero.hasTalent(Talent.WAND_PRESERVATION)
&& Dungeon.hero.buff(Talent.WandPreservationCounter.class) == null){ && Dungeon.hero.buff(Talent.WandPreservationCounter.class) == null){
bodyText += "\n\n" + Messages.get(MagesStaff.class, "imbue_talent"); bodyText += "\n\n" + Messages.get(MagesStaff.class, "imbue_talent");