From 9e43944bd4e0a619bd63111d29da2fd105c32e3b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 13 Dec 2019 17:37:35 -0500 Subject: [PATCH] v0.8.0: tweaks to mimics: - mimics now have a weak outline when hidden instead of no outline - mimics no longer hit heroes through stealth when opened - added a hint to mimic descriptions --- core/src/main/assets/mimic.png | Bin 2962 -> 3026 bytes .../actors/mobs/CrystalMimic.java | 15 +++++++++++---- .../actors/mobs/GoldenMimic.java | 2 +- .../actors/mobs/Mimic.java | 4 ++-- .../messages/actors/actors.properties | 3 ++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/core/src/main/assets/mimic.png b/core/src/main/assets/mimic.png index 1d8e5f201208ee0ccb8917ca224102cb24dbb911..473575c359f23e26c53d81784f824605af07f0d4 100644 GIT binary patch delta 2591 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 B#Bl%s delta 2525 zcmV<32_p8=7m^o{BpP>6OjJbx004D$b()%*WHS|qM;-R|_KjIBu|Z-14XBKTG5`Po zTy#=SQvj2}0Wp)%0T7e&0UCdg$d5q)010kML_t(|0qm5CZsITyhJ64bu>(E`HiT>2 z_kYKoNk&`Tsbp0fA+5TfDu!vsmA}7s#M1mnD!p2*q>@wldBRe!^=7luYbtDh8rO=- zzaXd)Nu??*b)&c2t!}7P19~-;{|M_*2zT00sR>K1;K4>KDz$kQaNB=&-Ta9KHfW5s zf-quv`e~y*71pBw?sQFs^-Nf4L{X^+R0iC3yKWEiJ1W9hXT8M~tgzO>jzfr1%mnfG zls>GVH@MLamAbG()__8)^Pd83yS_Ud4qZmQJpUWrW1d#-*-DIlfUI^LgwQ_2bmb3#5xb z@I|#PShsBtwY}Y148S>KhQT;fxbF2Ve z0nmpt0Cc}@a0P!r+*k|#&c5A^3m_h1Od+NC{s>FG1PQHJPl5yq6JH8RRlwF)dU^>G z-FyYScg}nNcBd~!6o32L2py+aF*obyC93?b0OK;KX9Q_RZbjnsuT*fJW_x6e=5*poe<&-Nt2 z1zgO5+=x(iE(7*ZHp2qFH0J0N=|>cX2F*x&DaB-OUh3zj?Jc(k3w=->D5a&i5Y z0|h+7Gldva;QxR8J0M>#eZBBFYi2gP5xuqj{NsQ2^P=Fg0PlJ(z)Ot&DW&j;&u5B1 zqyPr%n}jJ}FMYMJ!bTH|g(`$G%l5oC6$O9x4q&7J=THFf(*qDfjDh)ne-Xy|CSg(^ z{MhHFWWn;qtS&qX35$i%+4eJ%{lQG;tY8!X`xDav6aagFxp)K$fPH*KK;I8m4~Z#@ z8J~aUi&3y9EVndR%#10w$E;?^6yJop;P=NPsd%4_wyIOe^ z5aTdB9``t`*FU5HBLH2@nc&RSg-w2da{uyoBqNUi>s#9~_TAEUZOi)3vA=gOtJV(# z>xU5UF^1Rm@S|RWg3-k+f`SMOZwe`$QS5(TndK!Y*y$1Id++RkW!2(rPp9mPQ)4D%qqN)te>ZBZ#`1+}WT`~L56Gws~DIG2#kHD)ijUy>b1hYR0- zKwelp!R9kP2JnCacz^-G0T`I-1SGKjNiZYKVCyqIz5xkv1rp#2B#3Xm8dB-`d@g^L z9LoPEEcHS!mvgq71pBw?sP$g_o*=Uh@z4YC=Ix(H}w|e zH&jGptZ5CVV1zLicI=$@V#JBRC-r|}{kXxUE~(^&6|w*nlAV7Fw5oUYe!s7GR3L!P z91g}}3%HZF&rt3_5XvY9f z{v3S>(Zk>A-+*+#;`72ouYkTk3h4R#?DzbP1I}0lW{v0~7d`z}lwiy23WMo5cV^aPD*} zg1g@*2|#~9u|5&(bzWGf{{Ualf5!^Y6##uW13>-b3Rj>3ePh7inzvhHodbRELlJ_1 zzq_d(K|(9mlORFD#2uf{h&%P9lh#9^j7CIML5lr({oz{8*2SlTk56irtlo$k|wYjCT4|B`A0`~6-Uy_Ek?Si=F1$2}al zi1}q443~dF5D3ksDXf3t1RozCaN^Pq=*cwxBcdlETIq>POIU-!AC6$SwB|*?*7kk* zq=E|^2ImwrsP!SSBb>O1o&;#62QH!)!UhP#r5#Wmu^*i5vKJO;bKHR`heyI^A}xPxCj+C8!**;R~}#J5V1oj z0J6UzBS8U>y`N`Kg#sY^bWg+@0cgaqg%Len^A|<1AN|)2-o0%H9|G#fm>{M2z6)!;1Q{@*XF-OAnLi3?Qz7ne^!yTJ z`f>!O$@^)V-nM)Ma!x7d{Jx9ni93L33#%G&f2*eeKH&g9p#VZ;R@wm-qW>n?5Eh90 nTfMbo1s)xNiV#wT`b&NTpEgjPCoclD00000NkvXXu0mjf9&o0v diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalMimic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalMimic.java index 8f048ab9b..d07c41c5b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalMimic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/CrystalMimic.java @@ -69,16 +69,23 @@ public class CrystalMimic extends Mimic { @Override public String description() { if (alignment == Alignment.NEUTRAL){ + String desc = null; for (Item i : items){ if (i instanceof Artifact){ - return Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "artifact")); + desc = Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "artifact")); + break; } else if (i instanceof Ring){ - return Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "ring")); + desc = Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "ring")); + break; } else if (i instanceof Wand){ - return Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "wand")); + desc = Messages.get(Heap.class, "crystal_chest_desc", Messages.get(Heap.class, "wand")); + break; } } - return Messages.get(Heap.class, "locked_chest_desc"); + if (desc == null) { + desc = Messages.get(Heap.class, "locked_chest_desc"); + } + return desc + "\n\n" + Messages.get(this, "hidden_hint"); } else { return super.description(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GoldenMimic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GoldenMimic.java index 5a8cade6d..2815f31f1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GoldenMimic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GoldenMimic.java @@ -55,7 +55,7 @@ public class GoldenMimic extends Mimic { @Override public String description() { if (alignment == Alignment.NEUTRAL){ - return Messages.get(Heap.class, "locked_chest_desc"); + return Messages.get(Heap.class, "locked_chest_desc") + "\n\n" + Messages.get(this, "hidden_hint"); } else { return super.description(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java index 46027f9ba..5bbebdc8a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mimic.java @@ -103,7 +103,7 @@ public class Mimic extends Mob { @Override public String description() { if (alignment == Alignment.NEUTRAL){ - return Messages.get(Heap.class, "chest_desc"); + return Messages.get(Heap.class, "chest_desc") + "\n\n" + Messages.get(this, "hidden_hint"); } else { return super.description(); } @@ -179,7 +179,7 @@ public class Mimic extends Mob { @Override public int attackSkill( Char target ) { - if (target != null && alignment == Alignment.NEUTRAL){ + if (target != null && alignment == Alignment.NEUTRAL && target.invisible <= 0){ return INFINITE_ACCURACY; } else { return 6 + level; diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties index 90efe2eb1..dd1330fb0 100644 --- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties +++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties @@ -525,7 +525,7 @@ actors.mobs.gnolltrickster.name=gnoll trickster actors.mobs.gnolltrickster.desc=A strange looking creature, even by gnoll standards. It hunches forward with a wicked grin, almost cradling the satchel hanging over its shoulder. Its eyes are wide with a strange mix of fear and excitement.\n\nThere is a large collection of poorly made darts in its satchel, they all seem to be tipped with various harmful substances. actors.mobs.goldenmimic.name=golden mimic -actors.mobs.goldenmimic.desc=Mimics are magical creatures which can take any shape they wish. In dungeons they almost always choose a shape of a treasure chest, in order to lure in unsuspecting adventurers.\n\nGolden mimics are tougher mimics which try to attract the strongest adventurers. They have the best loot, but are also much stronger than regular mimics. +actors.mobs.goldenmimic.desc=Mimics are magical creatures which can take any shape they wish. In dungeons they almost always choose a shape of a treasure chest, in order to lure in unsuspecting adventurers.\n\nGolden mimics are tougher mimics which try to attract the strongest adventurers. They have better loot, but are also much stronger than regular mimics. actors.mobs.golem.name=golem actors.mobs.golem.def_verb=blocked @@ -566,6 +566,7 @@ actors.mobs.king$undead.desc=These undead dwarves, risen by the will of the King actors.mobs.mimic.name=mimic actors.mobs.mimic.reveal=That chest is a mimic! +actors.mobs.mimic.hidden_hint=Something about this chest feels off... Walking up and trying to open it might be a bad idea. actors.mobs.mimic.desc=Mimics are magical creatures which can take any shape they wish. In dungeons they almost always choose a shape of a treasure chest, in order to lure in unsuspecting adventurers.\n\nMimics have a nasty bite, but often hold more treasure than a regular chest. actors.mobs.necromancer.name=necromancer