update beta 21 p.2.85

This commit is contained in:
LingASDJ 2022-12-04 00:49:51 +08:00
parent c7c5ecc664
commit 698828c54e
16 changed files with 190 additions and 100 deletions

View File

@ -16,8 +16,8 @@ allprojects {
appName = 'Magic Ling Pixel Dungeon'
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
appVersionCode =700720
appVersionName = '0.6.0.0-Beta21-p2.8'
appVersionCode =700721
appVersionName = '0.6.0.0-Beta21-p2.85'
appJavaCompatibility = JavaVersion.VERSION_1_8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -159,8 +159,8 @@ actors.buffs.watersoulx.desc=水灵的祝福已经在你身上,现在你可以
actors.mobs.lb.blacksoul.name=暗影
actors.mobs.lb.blacksoul.desc=由于重生十字架的缘故,因此你再次重生了。但你先前的东西都被自己的暗影亡魂夺走了,杀死它,夺回自己的一切!
actors.mobs.bosses.crystaldiedtower.name=神秘结晶-未激活
actors.mobs.bosses.crystaldiedtower.desc=来自于雪凛峡谷商人总部的神秘结晶……,据说激活后十分危险!
actors.mobs.bosses.crystaldiedtower.name=雪凛结晶
actors.mobs.bosses.crystaldiedtower.desc=来自于雪凛峡谷商人总部的神秘结晶……,激活后将周期性的发射激光。
actors.mobs.bosses.crystallingtower.name=元素结晶-已激活
actors.mobs.bosses.crystallingtower.desc=神秘的元素结晶已经被魔女完全激活,正是它让魔女所向披靡!摧毁它!
@ -429,11 +429,11 @@ levels.yoggodhardbosslevel.well_desc = 井中涌动着空间的魔力。也许
actors.mobs.magicgirldead.name =冰雪魔女
actors.mobs.magicgirldead.desc =冰雪魔女曾经是翼绫的护法,因为地牢事变而被黑魔法腐蚀成了魔女\n\n现在她极度憎恨一切,你很不幸的踏入了她的领地.\n\n要么你死,要么我活.\n\n她非常难缠并且已经毫无理智如果你没有准备好势必会被她暴打。
actors.mobs.magicgirldead.desc =冰雪魔女曾经是翼绫的护法,因为地牢事变而被黑魔法腐蚀成了魔女\n\n现在她极度憎恨一切,你很不幸的踏入了她的领地.\n\n要么你死,要么我活.\n\n她非常难缠并且已经毫无理智如果你没有准备好势必会被她暴打。\n_千万不要让她踩到水否则她将非常危险。
actors.mobs.magicgirldead.arise=出来吧,我的傀儡!
actors.mobs.magicgirldead.damaged =水晶结界,审判这个无知之徒!
actors.mobs.magicgirldead.arise2=出来吧,我的傀儡!
actors.mobs.magicgirldead.shield2 =水源啊,你是否知道,翼绫不再是翼绫,家园不再是家园!
actors.mobs.magicgirldead.shield2 = 水源乃生命之源,但也能致人与死地
actors.mobs.magicgirldead.shield =迷幻的水源啊,请赐予我力量吧!
actors.mobs.magicgirldead.notice =人类!你不应该来到这里!
actors.mobs.magicgirldead.die =我 终 于 能 再 次 看 见 了 你 了!!!
@ -632,8 +632,7 @@ actors.mobs.slime_sz.name=史莱姆-圣紫守护者
actors.mobs.slime_sz.desc=史莱姆七大守护者中的_圣紫使者_\n它发出的攻击有几率让入侵者受到_迟缓效果_
actors.mobs.slimeking.name=史莱姆王子
actors.mobs.slimeking.desc=\n\n\n\n史莱姆中最大的一只史莱姆个体现在它仍然还在统治着圣境密林层\n别看它样貌可爱它鲨起人来毫不手软\n\
如果你靠的太近它就会发怒召唤_史莱姆七大守护者_来让你知道什么叫 身 心 愉 悦
actors.mobs.slimeking.desc=史莱姆王子,圣境密林的守护者,没有人能从它这里活着走过去。\n\n-机制说明:移动极其缓慢但有无限使用的锁链。血量低于一半后立刻呼唤_当前楼层至多3个怪物_前来支援(只可触发一次),并且移速恢复正常但_锁链功能失效_且_自身防御降为0_以及近战有概率造成_双倍伤害_。
actors.mobs.slimeking.notice=你将会死在圣境密林!
actors.mobs.slimeking.defeated=不……这不可能……
actors.mobs.slimeking.arise=我的史莱姆守卫们,快点出来支援本王!

View File

@ -382,7 +382,7 @@ windows.wndtradeitem.oks=进行对话
windows.wndstory.dm920=Yog-Dzewa的陨落其实背后有太多的秘密。\nYog的后面是一个连Yog都害怕的一个DM终极实验品\n它是造成矮人国度堕落的元凶它是灾难的象征\n它是曾经的死灵军团的杀手锏它是死亡的代言词\n它是连Yog-Dzewa都要敬畏它三分的DM920,\n你需直面你不可逃避你的路途就是为此而来。\n已经没有退路唯有放手一搏无论它是真是假\n但你明白不击败他死的就只能是自己
windows.wndgoshop.szo=地牢商人
windows.wndgoshop.ary=哦,我注意到你对我的东西蠢蠢欲动。如果你想动什么歪心思,我劝你还是放弃吧!!!\n\n商人正在非常警惕的看见你如果你想抢劫商店本层恐怕会发生奇妙的变换。\n\n那么对于商人的警告你的选择是
windows.wndgoshop.ary=哦,我注意到你对我的东西蠢蠢欲动。如果你想动什么歪心思,我劝你还是放弃吧!!!\n\n商人正在非常警惕的看见你如果你想抢劫商店本层恐怕会发生奇妙的变换。\n\n那么对于商人的警告你的选择是\n-_注意:抢劫将会前往雪凛峡谷并且将会被禁止使用重生十字架。_
windows.wndgoshop.yes=抢劫
windows.wndgoshop.no=放弃
windows.wndgoshop.notbad=好吧,我以为你想抢劫商店的……

View File

@ -48,6 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbili
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping;
@ -65,6 +66,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfLivingEarth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfPrismaticLight;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfScale;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfTransfusion;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
@ -102,8 +104,11 @@ public class ElementalBlast extends ArmorAbility {
effectTypes.put(WandOfTransfusion.class, MagicMissile.BLOOD_CONE);
effectTypes.put(WandOfCorruption.class, MagicMissile.SHADOW_CONE);
effectTypes.put(WandOfRegrowth.class, MagicMissile.FOLIAGE_CONE);
effectTypes.put(WandOfGodIce.class, MagicMissile.FROST_CONE);
effectTypes.put(WandOfBlueFuck.class, MagicMissile.FROST_CONE);
//TODO FIXED 将要修复的
effectTypes.put(WandOfScale.class, MagicMissile.FOLIAGE_CONE);
effectTypes.put(WandOfGodIce.class, MagicMissile.FOLIAGE_CONE);
effectTypes.put(WandOfBlueFuck.class, MagicMissile.FOLIAGE_CONE);
}
private static final HashMap<Class<?extends Wand>, Float> damageFactors = new HashMap<>();
@ -121,6 +126,9 @@ public class ElementalBlast extends ArmorAbility {
damageFactors.put(WandOfTransfusion.class, 0f);
damageFactors.put(WandOfCorruption.class, 0f);
damageFactors.put(WandOfRegrowth.class, 0f);
//TODO FIXED 将要修复的
damageFactors.put(WandOfScale.class, 0f);
damageFactors.put(WandOfGodIce.class, 0f);
damageFactors.put(WandOfBlueFuck.class, 0f);
}
@ -158,11 +166,11 @@ public class ElementalBlast extends ArmorAbility {
if (wandCls == WandOfDisintegration.class){
projectileProps = Ballistica.STOP_TARGET;
//*** Wand of Fireblast ***
//*** Wand of Fireblast ***
} else if (wandCls == WandOfFireblast.class){
projectileProps = projectileProps | Ballistica.IGNORE_SOFT_SOLID;
//*** Wand of Warding ***
//*** Wand of Warding ***
} else if (wandCls == WandOfWarding.class){
projectileProps = Ballistica.STOP_TARGET;
@ -179,7 +187,7 @@ public class ElementalBlast extends ArmorAbility {
);
}
final float effectMulti = 1f + 0.2f*hero.pointsInTalent(Talent.ELEMENTAL_POWER);
final float effectMulti = 1f + 0.25f*hero.pointsInTalent(Talent.ELEMENTAL_POWER);
//cast a ray 2/3 the way, and do effects
Class<? extends Wand> finalWandCls = wandCls;
@ -203,7 +211,7 @@ public class ElementalBlast extends ArmorAbility {
GameScene.add( Blob.seed( cell, 4, Electricity.class ) );
}
//*** Wand of Fireblast ***
//*** Wand of Fireblast ***
} else if (finalWandCls == WandOfFireblast.class){
if (Dungeon.level.map[cell] == Terrain.DOOR){
Level.set(cell, Terrain.OPEN_DOOR);
@ -216,13 +224,13 @@ public class ElementalBlast extends ArmorAbility {
GameScene.add( Blob.seed( cell, 4, Fire.class ) );
}
//*** Wand of Frost ***
//*** Wand of Frost ***
} else if (finalWandCls == WandOfFrost.class){
if (fire != null){
fire.clear(cell);
}
//*** Wand of Prismatic Light ***
//*** Wand of Prismatic Light ***
} else if (finalWandCls == WandOfPrismaticLight.class){
for (int n : PathFinder.NEIGHBOURS9) {
int c = cell+n;
@ -242,7 +250,7 @@ public class ElementalBlast extends ArmorAbility {
}
}
//*** Wand of Regrowth ***
//*** Wand of Regrowth ***
} else if (finalWandCls == WandOfRegrowth.class){
//TODO: spend 3 charges worth of regrowth energy from staff?
int t = Dungeon.level.map[cell];
@ -275,20 +283,20 @@ public class ElementalBlast extends ArmorAbility {
Buff.affect( mob, Paralysis.class, effectMulti*Paralysis.DURATION/2 );
}
//*** Wand of Fireblast ***
//*** Wand of Fireblast ***
} else if (finalWandCls == WandOfFireblast.class){
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
Buff.affect( mob, Burning.class ).reignite( mob );
}
//*** Wand of Corrosion ***
//*** Wand of Corrosion ***
} else if (finalWandCls == WandOfCorrosion.class){
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
Buff.affect( mob, Corrosion.class ).set(4, Math.round(6*effectMulti));
charsHit++;
}
//*** Wand of Blast Wave ***
//*** Wand of Blast Wave ***
} else if (finalWandCls == WandOfBlastWave.class){
if (mob.alignment != Char.Alignment.ALLY) {
Ballistica aim = new Ballistica(hero.pos, mob.pos, Ballistica.WONT_STOP);
@ -300,27 +308,27 @@ public class ElementalBlast extends ArmorAbility {
true);
}
//*** Wand of Frost ***
//*** Wand of Frost ***
} else if (finalWandCls == WandOfFrost.class){
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
Buff.affect( mob, Frost.class, effectMulti*Frost.DURATION );
}
//*** Wand of Prismatic Light ***
//*** Wand of Prismatic Light ***
} else if (finalWandCls == WandOfPrismaticLight.class){
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
Buff.prolong(mob, Blindness.class, effectMulti*Blindness.DURATION/2);
charsHit++;
}
//*** Wand of Warding ***
//*** Wand of Warding ***
} else if (finalWandCls == WandOfWarding.class){
if (mob instanceof WandOfWarding.Ward){
((WandOfWarding.Ward) mob).wandHeal(0, effectMulti);
charsHit++;
}
//*** Wand of Transfusion ***
//*** Wand of Transfusion ***
} else if (finalWandCls == WandOfTransfusion.class){
if(mob.alignment == Char.Alignment.ALLY || mob.buff(Charm.class) != null){
int healing = Math.round(10*effectMulti);
@ -349,14 +357,14 @@ public class ElementalBlast extends ArmorAbility {
}
charsHit++;
//*** Wand of Corruption ***
//*** Wand of Corruption ***
} else if (finalWandCls == WandOfCorruption.class){
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
Buff.prolong(mob, Amok.class, effectMulti*5f);
charsHit++;
}
//*** Wand of Regrowth ***
//*** Wand of Regrowth ***
} else if (finalWandCls == WandOfRegrowth.class){
if (mob.alignment != Char.Alignment.ALLY) {
Buff.prolong( mob, Roots.class, effectMulti*Roots.DURATION );
@ -371,8 +379,9 @@ public class ElementalBlast extends ArmorAbility {
//*** Wand of Magic Missile ***
if (finalWandCls == WandOfMagicMissile.class) {
Buff.affect(hero, Recharging.class, effectMulti* Recharging.DURATION / 2f);
SpellSprite.show( hero, SpellSprite.CHARGE );
//*** Wand of Living Earth ***
//*** Wand of Living Earth ***
} else if (finalWandCls == WandOfLivingEarth.class && charsHit > 0){
for (Mob m : Dungeon.level.mobs){
if (m instanceof WandOfLivingEarth.EarthGuardian){
@ -382,21 +391,22 @@ public class ElementalBlast extends ArmorAbility {
}
}
//*** Wand of Frost ***
//*** Wand of Frost ***
} else if (finalWandCls == WandOfFrost.class){
if ((hero.buff(Burning.class)) != null) {
hero.buff(Burning.class).detach();
}
//*** Wand of Prismatic Light ***
//*** Wand of Prismatic Light ***
} else if (finalWandCls == WandOfPrismaticLight.class){
Buff.prolong( hero, Light.class, effectMulti*50f);
}
charsHit = Math.min(5, charsHit);
charsHit = Math.min(4 + hero.pointsInTalent(Talent.REACTIVE_BARRIER), charsHit);
if (charsHit > 0 && hero.hasTalent(Talent.REACTIVE_BARRIER)){
Buff.affect(hero, Barrier.class).setShield(charsHit*2*hero.pointsInTalent(Talent.REACTIVE_BARRIER));
int shielding = Math.round(charsHit*2.5f*hero.pointsInTalent(Talent.REACTIVE_BARRIER));
Buff.affect(hero, Barrier.class).setShield(shielding);
}
hero.spendAndNext(Actor.TICK);
@ -441,4 +451,4 @@ public class ElementalBlast extends ArmorAbility {
public Talent[] talents() {
return new Talent[]{Talent.BLAST_RADIUS, Talent.ELEMENTAL_POWER, Talent.REACTIVE_BARRIER, Talent.HEROIC_ENERGY};
}
}
}

View File

@ -355,7 +355,7 @@ public class DimandKing extends Boss {
if (bestPos != enemy.pos) ScrollOfTeleportation.appear(furthest, bestPos);
yell(Messages.get(this, "teleport_" + Random.IntRange(1, 2)));
if(Dungeon.isChallenged(STRONGER_BOSSES)) {
doYogLasers();
//doYogLasers();
}
return true;
}
@ -372,7 +372,7 @@ public class DimandKing extends Boss {
new Flare(5, 32).color(0xFF6060, false).show(sprite, 1.5f);
yell(Messages.get(this,"buff_all"));
if(Dungeon.isChallenged(STRONGER_BOSSES)) {
doYogLasers();
//doYogLasers();
}
}
@ -381,7 +381,7 @@ public class DimandKing extends Boss {
new Flare(6, 32).color(0xFF22FF, false).show(sprite, 1.5f);
yell(Messages.get(this, "sacrifice"));
if(Dungeon.isChallenged(STRONGER_BOSSES)) {
doYogLasers();
//doYogLasers();
}
}
@ -401,7 +401,7 @@ public class DimandKing extends Boss {
new Flare(7, 32).color(0x303030, false).show(sprite, 1.5f);
yell(Messages.get(this,"death_rattle"));
if(Dungeon.isChallenged(STRONGER_BOSSES)) {
doYogLasers();
//doYogLasers();
}
}
@ -412,7 +412,7 @@ public class DimandKing extends Boss {
summonsMade++;
yell(Messages.get(this, "more_summon"));
if(Dungeon.isChallenged(STRONGER_BOSSES)) {
doYogLasers();
//doYogLasers();
}
new Flare(4, 32).color(0x4040FF, false).show(sprite, 1.5f);
}

View File

@ -13,6 +13,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ArcaneArmor;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barrier;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill;
@ -130,11 +131,11 @@ public class MagicGirlDead extends Boss {
for(int i=0;i<Math.min(phase/2, 4);++i){
summonCaster(Random.Int(4), places.get(i),false);
}
}else{
destroyAll();
for(int i=0;i<phase/2+1;++i){
summonCaster(Random.Int(6), findRandomPlaceForCaster(), false);
}
// }else{
// destroyAll();
// for(int i=0;i<phase/2+1;++i){
// summonCaster(Random.Int(6), findRandomPlaceForCaster(), false);
// }
}
activateAll();
@ -155,11 +156,11 @@ public class MagicGirlDead extends Boss {
for (Buff buff : hero.buffs()) {
if (buff instanceof RoseShiled) {
buff.detach();
GLog.b("玫瑰结界的创始人是翼绫,你怎么敢用她的技能?");
GLog.b("……你妄图使用这种方法来逃脱吗?");
}
if (buff instanceof HaloFireImBlue ||buff instanceof FireImbue) {
buff.detach();
GLog.b("你想免疫火的伤害?在我这里,没有可能!/kill @e[type=FireImbue=All] enemy!");
GLog.b("……你妄图使用这种方法来逃脱吗?");
}
}
if(buff(RageAndFire.class)!=null){
@ -194,10 +195,10 @@ public class MagicGirlDead extends Boss {
if (Dungeon.level.heroFOV[step] && HP < 200) {
if (buff(Haste.class) == null) {
Buff.affect(this, RoseShiled.class, 15f);
Buff.affect(this, Barrier.class).setShield( 20);
Buff.affect(this, Haste.class, 5f);
Buff.affect(this, ArcaneArmor.class).set(Dungeon.hero.lvl + 10, 10);
Buff.affect(this, Healing.class).setHeal(40, 0f, 6);
Buff.affect(this, Healing.class).setHeal(10, 0f, 6);
new SRPDICLRPRO().spawnAround(pos);
Buff.affect(this, Adrenaline.class, 20f);
yell( Messages.get(this, "arise2") );

View File

@ -185,10 +185,10 @@ public abstract class Mob extends Char {
if (Dungeon.isChallenged(Challenges.SBSG) && scaleFactor == 1f && !properties().contains(Property.NOBIG) && !properties().contains(Property.BOSS)&& !properties().contains(Property.MINIBOSS) ){
scaleFactor = Random.Float(1f, 1.6f);
HT = (int) (HT * scaleFactor);
if (scaleFactor >= 1.4f){
if (scaleFactor >= 1.4f && HT >= 1){
HP = HT = (int) (HT * 1.45f);
} else {
HP = HT = (int) (HT / 1.45f);
HP = HT = (int) (HT * 1f);
}
sprite.linkVisuals(this);
sprite.link(this);

View File

@ -27,18 +27,18 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Boss;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.HalomethaneBurning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.effects.Chains;
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.keys.SkeletonKey;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -48,27 +48,66 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Music;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle;
import com.watabou.utils.Callback;
import com.watabou.utils.PathFinder;
import com.watabou.utils.Random;
public class SlimeKing extends Golem implements Callback {
public class SlimeKing extends Boss {
private final String[] attackCurse = {"雕虫小技", "班门弄斧",
"GAMEOVER"};
private int combo = 0;
private static final float TIME_TO_ZAP = 0.5f;
private boolean PartCold = false;
private static final String partcold = "partcold";
private static final String chainsused = "chainsused";
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put(partcold, PartCold);
bundle.put(chainsused, chainsUsed);
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
PartCold = bundle.getBoolean(partcold);
chainsUsed = bundle.getBoolean(chainsused);
}
{
HP =100;
HP =140;
HT= 140;
EXP = 20;
defenseSkill = 12;
spriteClass = SlimeKingSprite.class;
properties.add(Property.LARGE);
lootChance = 1;
HUNTING = new Hunting();
properties.add(Property.BOSS);
baseSpeed = 0.4f;
}
@Override
public boolean act() {
BossHealthBar.assignBoss(this);
if(HP < 70 && !PartCold){
baseSpeed = 1f;
SummoningTrap var4 = new SummoningTrap();
var4.pos = super.pos;
var4.activate();
PartCold = true;
chainsUsed = true;
GLog.n("你彻底激怒我了!!!");
} else if (HP < 70) {
baseSpeed = 1f;
}
return super.act();
}
private void zap() {
@ -118,7 +157,11 @@ public class SlimeKing extends Golem implements Callback {
@Override
public int damageRoll() {
return Random.NormalIntRange( 5, 8 );
if(HP < 70 && Random.Float() > 0.10f) {
return Random.NormalIntRange(8, 12);
} else {
return Random.NormalIntRange(4, 6);
}
}
@Override
@ -133,10 +176,10 @@ public class SlimeKing extends Golem implements Callback {
}
int damage2 = SlimeKing.super.attackProc(enemy, this.combo + damage);
this.combo++;
int effect = Random.Int(2)+combo;
if (enemy.buff(Poison.class) == null) {
Buff.affect( enemy, Poison.class).set((effect-2) );
}
int effect = Random.Int(3);
// if (enemy.buff(Poison.class) == null && Random.Float() <= 0.25f) {
// Buff.affect( enemy, Poison.class).set((effect-2) );
// }
if (this.combo > 3) {
this.combo = 1;
}
@ -145,7 +188,11 @@ public class SlimeKing extends Golem implements Callback {
@Override
public int drRoll() {
return Random.NormalIntRange(5, 2);
if(HP < 70 && !PartCold) {
return 0;
} else {
return 5;
}
}
private boolean chainsUsed = false;
@ -194,14 +241,16 @@ public class SlimeKing extends Golem implements Callback {
}
}
}
chainsUsed = true;
//chainsUsed = true;
return true;
}
private void pullEnemy( Char enemy, int pullPos ){
enemy.pos = pullPos;
Dungeon.level.occupyCell(enemy);
Cripple.prolong(enemy, Cripple.class, 4f);
if (enemy == hero) {
hero.interrupt();
Dungeon.observe();
@ -218,7 +267,7 @@ public class SlimeKing extends Golem implements Callback {
@Override
public void notice() {
super.notice();
BossHealthBar.assignBoss(this);
// BossHealthBar.assignBoss(this);
Music.INSTANCE.play(Assets.BGM_BOSSA, true);
yell( Messages.get(this, "notice") );
//summon();
@ -250,34 +299,26 @@ public class SlimeKing extends Golem implements Callback {
Badges.KILLSLIMKING();
yell( Messages.get(this, "defeated") );
for (Mob mob : (Iterable<Mob>)Dungeon.level.mobs.clone()) {
if ( mob instanceof Slime_Lg||
mob instanceof Slime_Qs||
mob instanceof Slime_Sn||
mob instanceof Slime_Sz||
mob instanceof Slime_Lt||
mob instanceof Slime_Red||
mob instanceof Slime_Orange) {
if ( mob instanceof Swarm||
mob instanceof Crab||
mob instanceof Rat||
mob instanceof Slime ) {
mob.die( cause );
}
}
}
@Override
public void call() {
next();
}
private class Hunting extends Mob.Hunting{
@Override
public boolean act( boolean enemyInFOV, boolean justAlerted ) {
enemySeen = enemyInFOV;
//放风筝必死
//140血强制更新玩家血量为1 赋予燃烧 失明 流血 弱化
if (++HP+1 >= 141){
hero.HP = 1;
Buff.affect(hero, HalomethaneBurning.class).reignite(hero);
GLog.b( Messages.get(this, "cus") );
}
// //放风筝必死
// //140血强制更新玩家血量为1 赋予燃烧 失明 流血 弱化
// if (++HP+1 >= 141){
// hero.HP = 1;
// Buff.affect(hero, HalomethaneBurning.class).reignite(hero);
// GLog.b( Messages.get(this, "cus") );
// }
if (!chainsUsed
&& enemyInFOV
&& !isCharmedBy( enemy )

View File

@ -23,7 +23,7 @@ public class CrystalLingTower extends Mob {
{
spriteClass = IceStalSprites.class;
HP = HT = 400;
HP = HT = 150;
properties.add(Property.MINIBOSS);

View File

@ -2,6 +2,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import static com.shatteredpixel.shatteredpixeldungeon.levels.ShopBossLevel.CryStalPosition;
import static com.shatteredpixel.shatteredpixeldungeon.levels.ShopBossLevel.FALSEPosition;
import static com.shatteredpixel.shatteredpixeldungeon.levels.ShopBossLevel.TRUEPosition;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
@ -78,7 +79,7 @@ import java.util.HashSet;
public class FireMagicDied extends Mob implements Callback {
private static final float TIME_TO_ZAP = 1f;
private static final float TIME_TO_ZAP = 6f;
{
HP = HT = 500;
@ -544,7 +545,7 @@ public class FireMagicDied extends Mob implements Callback {
Sample.INSTANCE.play( Assets.Sounds.DEBUFF );
}
int dmg = Random.NormalIntRange( 2, 4 );
int dmg = Random.NormalIntRange( 1, 2 );
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if(Random.NormalIntRange(0,9)<4) {
@ -583,7 +584,7 @@ public class FireMagicDied extends Mob implements Callback {
enemy.sprite.burst( 0x000000, 5 );
}
} else if (HP > 400) {
if (Random.NormalFloat( 2, 20 ) == 4) {
if (Random.NormalFloat( 2, 9 ) == 4) {
GLog.n( Messages.get(FireMagicDied.class, "died_kill",Dungeon.hero.name()) );
}
zap();
@ -724,6 +725,8 @@ public class FireMagicDied extends Mob implements Callback {
abc.pos = TRUEPosition;
GameScene.add(abc);
this.pos = FALSEPosition;
Buff.affect(this, DwarfMaster.DKBarrior.class).setShield(1000);
Buff.append(hero, BeamTowerAdbility.class).towerPos = TRUEPosition;

View File

@ -337,11 +337,11 @@ abstract public class Weapon extends KindOfWeapon {
public static abstract class Enchantment implements Bundlable {
private static final Class<?>[] common = new Class<?>[]{
Blazing.class, Chilling.class, Kinetic.class, Shocking.class, HaloBlazing.class};
Blazing.class, Chilling.class, Kinetic.class, Shocking.class};
private static final Class<?>[] uncommon = new Class<?>[]{
Blocking.class, Blooming.class, Elastic.class,
Lucky.class, Projecting.class, Unstable.class};
Lucky.class, Projecting.class, Unstable.class,HaloBlazing.class};
private static final Class<?>[] rare = new Class<?>[]{
Corrupting.class, Grim.class, Vampiric.class};

View File

@ -229,19 +229,19 @@ public class CavesGirlDeadLevel extends Level {
W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W,
W, W, W, W, W, W, W, W, W, W, X, W, W, W, W, W, W, W, W, W, W,
W, W, W, W, W, e, e, e, e, e, e, e, e, e, e, e, W, W, W, W, W,
W, W, W, W, T, e, e, e, e, e, e, e, e, e, e, e, T, W, W, W, W,
W, W, W, e, e, T, e, e, e, e, e, e, e, e, e, T, e, e, W, W, W,
W, W, W, e, e, e, T, e, e, e, W, e, e, e, T, e, e, e, W, W, W,
W, W, W, e, e, e, e, T, e, e, W, e, e, T, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, T, e, W, e, T, e, e, e, e, e, W, W, W,
W, W, W, W, e, e, e, e, e, e, e, e, e, e, e, e, e, W, W, W, W,
W, W, W, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, T, T, T, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, W, W, W, T, D, T, W, W, W, e, e, e, W, W, W,
W, W, W, e, e, e, W, W, W, T, W, T, W, W, W, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, T, T, T, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, T, e, W, e, T, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, T, e, e, W, e, e, T, e, e, e, e, W, W, W,
W, W, W, e, e, e, T, e, e, e, W, e, e, e, T, e, e, e, W, W, W,
W, W, W, e, e, T, e, e, e, e, e, e, e, e, e, T, e, e, W, W, W,
W, W, W, W, T, e, e, e, e, e, e, e, e, e, e, e, T, W, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, W, e, e, e, e, e, e, e, W, W, W,
W, W, W, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, W, W, W,
W, W, W, W, e, e, e, e, e, e, e, e, e, e, e, e, e, W, W, W, W,
W, W, W, W, W, e, e, e, e, e, e, e, e, e, e, e, W, W, W, W, W,
W, W, W, W, W, W, W, W, W, W, E, W, W, W, W, W, W, W, W, W, W,
W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W, W,

View File

@ -80,7 +80,7 @@ public class ShopBossLevel extends Level {
};
public static int TRUEPosition = WIDTH * 17 + 17;
public static int FALSEPosition = WIDTH * 22 + 17;
@Override
public void unseal() {
super.unseal();

View File

@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene {
fadeTime += 0.9f; //adds 1 second total
//speed up transition when debugging
} else if (DeviceCompat.isDebug()){
fadeTime = 0.9f;
fadeTime = 0.1f;
}
SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){

View File

@ -15,10 +15,12 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.IceStalSprites;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.sprites.KagenoNusujinSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MagicGirlSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MimicSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MurdererSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
@ -33,6 +35,7 @@ import java.util.ArrayList;
public class vM0_6_7_X_Changes {
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
add_v0_6_16_Changes(changeInfos);
add_v0_6_15_Changes(changeInfos);
add_v0_6_14_Changes(changeInfos);
add_v0_6_13_Changes(changeInfos);
@ -51,6 +54,39 @@ public class vM0_6_7_X_Changes {
add_v0_6_0_Changes(changeInfos);
}
public static void add_v0_6_16_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.85", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes = new ChangeInfo("调整", false, null);
changes.hardlight(Window.GREEN_COLOR);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new IceStalSprites(), ("浊焰魔女"),
("浊焰魔女攻击力降低,且三阶段的结晶生命值下降。" )));
changes.addButton(new ChangeButton(new MagicGirlSprite(), ("冰雪魔女"),
("地形调整冰雪魔女特殊情况下获得的玫瑰结界换成奥术护盾20点" )));
changes.addButton(new ChangeButton(new MimicSprite.Dimand(), ("钻石宝箱王"),
("梦魇Boss挑战下不再发射激光" )));
changes.addButton(new ChangeButton(new SlimeKingSprite(), ("史莱姆王"),
("几乎是完全重做:\n" +
"机制说明:移动极其缓慢但有无限使用的锁链。\n" +
"血量低于一半后立刻呼唤_当前楼层至多3个怪物_前来支援(只可触发一次),\n" +
"并且移速恢复正常但_锁链功能失效_且_自身防御降为0_以及近战有概率造成_双倍伤害_。" )));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("杂项改动"),
("1.部分素材进行了调整优化……\n2.修复了突变巨兽的0血Bug,在新存档生效")));
}
public static void add_v0_6_15_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.8", true, "");
changes.hardlight(Window.TITLE_COLOR);