添加拟态王三阶段的一部分细节

This commit is contained in:
LingASDJ 2023-04-27 10:38:02 +08:00
parent 46d7648b49
commit 6cf586c24c
9 changed files with 123 additions and 4 deletions

View File

@ -87,7 +87,6 @@ dependencies {
//DEX
implementation 'com.android.support:multidex:1.0.3'
//noinspection GradleDependency
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
implementation project(path: ':services:updates:githubUpdates')

View File

@ -10,6 +10,10 @@ actors.mobs.bosses.diamondknight.iswar_go=最大的敌人往往就是你自己
actors.mobs.bosses.diamondknight.ok_go=好吧,让我们以最纯朴的战斗结束这次的较量吧。
actors.mobs.bosses.diamondknight.defeated=真是一场有趣的战斗,挑战者,这次就算你赢了!
actors.mobs.bosses.dcrystal.name=深蓝水晶
actors.mobs.bosses.dcrystal.desc=深蓝水晶将缓慢治愈宝箱之王,还请留意。
actors.mobs.salamander.name=深蓝蝾螈
actors.mobs.salamander.desc=来自森林的小生物,由于下方的邪恶力量侵蚀,它们已经由温顺变得凶猛。\n它们锋利的尾巴能穿透敌人它们十分的聪明且极其灵活必须趁其不备将之杀掉。

View File

@ -87,7 +87,7 @@ badges$badge.champion_5x=救世之主\n\n_开启10项以上挑战通关\n\n[不
badges$badge.unlock_mage=解锁法师
badges$badge.unlock_rogue=解锁盗贼
badges$badge.unlock_huntress=解锁女猎手
badges$badge.kill_dm=击败拟态之王\n\n一场”公平"的讨伐
badges$badge.kill_dm=击败拟态之王\n\n一场”公平"的对决
badges$badge.rlpt=_支离破碎征服者_\n\n开启挑战并击败古神\n\n_奖励0层随机神器(四大基座上)_
badges$badge.sbdjs=风暴袭来,未完待续\n\n你通过它成功离开却不知外面风暴袭来\n\n水晶之心仍然在你手中闪闪发光,或许,这事还没完!
badges$badge.kill_mg=击败冰雪魔女-冬铃\n\n冰雪之地的女王\n\n_奖励0层额外十字架(四大基座上,与DM720不叠加)_

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

View File

@ -315,6 +315,8 @@ public class Assets {
public static final String FREA = "sprites/boss/FireCrstal.png";
public static final String DREA = "sprites/boss/DCrstal.png";
public static final String ITEMS = "sprites/items/items.png";
public static final String WFS = "sprites/items/wf.png";
public static final String ITEM_ICONS = "sprites/item_icons.png";

View File

@ -0,0 +1,74 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses;
import static com.shatteredpixel.shatteredpixeldungeon.Difficulty.DifficultyConduct.HARD;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Beam;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.sprites.DCrystalSprites;
public class DCrystal extends Mob {
{
spriteClass = DCrystalSprites.class;
//困难模式水晶血量翻倍
HP = HT = Dungeon.isDIFFICULTY(HARD) ? 80 : 40;
properties.add(Property.MINIBOSS);
properties.add(Property.INORGANIC);
properties.add(Property.ELECTRIC);
properties.add(Property.IMMOVABLE);
state = PASSIVE;
baseSpeed =0;
}
@Override
protected boolean act() {
ColdChestBossLevel.State level = ((ColdChestBossLevel) Dungeon.level).pro();
if (level == ColdChestBossLevel.State.VSBOSS_START || level == ColdChestBossLevel.State.VSYOU_START || level
== ColdChestBossLevel.State.VSLINK_START) {
onZapComplete();
//困难模式回合缩减值2回合
spend(Dungeon.isDIFFICULTY(HARD)? 2f : 5f);
}
return super.act();
}
private void onZapComplete(){
for (Mob boss : Dungeon.level.mobs.toArray(new Mob[0])) {
//如果宝箱王存在且在五格范围内给予它血量吧
//困难模式治疗范围改为无限
if(boss instanceof DiamondKnight && Dungeon.level.distance(pos, boss.pos) <= 5 || Dungeon.isDIFFICULTY(HARD) && boss instanceof DiamondKnight) {
//最高加到半血
if (boss.HP < boss.HT/2){
if (sprite.visible || boss.sprite.visible) {
sprite.parent.add(new Beam.DeathRayS(sprite.center(), boss.sprite.center()));
}
//困难模式+6血量 治疗血量翻倍
boss.HP = Math.min(Dungeon.isDIFFICULTY(HARD)?boss.HP+6 : boss.HP + 3, boss.HT/2);
if (boss.sprite.visible) boss.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 );
//不符合的情况下给予3回合激素涌动
} else if (boss.buff(Adrenaline.class) == null) {
if (sprite.visible || boss.sprite.visible) {
sprite.parent.add(new Beam.HealthRay(sprite.center(), boss.sprite.center()));
}
Buff.affect(boss, Adrenaline.class, 3f);
}
next();
}
}
}
}

View File

@ -13,8 +13,8 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.DCrystal;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.DiamondKnight;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.watabou.utils.Bundle;
@ -82,6 +82,10 @@ public class ColdChestBossLevel extends Level {
private static final short T = Terrain.PEDESTAL;
private static final short S = Terrain.STATUE;
public static int[] FourCrystal = new int[]{
651,787,643,507
};
private static final int[] WorldRoomShort = {
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,W,W,W,W,
W,E,E,E,W,W,W,W,W,E,E,E,E,E,E,E,W,J,W,E,E,E,E,E,E,E,W,W,W,W,W,E,E,E,W,
@ -288,7 +292,15 @@ public class ColdChestBossLevel extends Level {
ScrollOfTeleportation.appear(boss,647);
//玩家移动到初始位
ScrollOfTeleportation.appear(hero, 962);
drop( new PotionOfPurity(),648 );
//drop( new PotionOfPurity(),648 );
//生成四个水晶宝箱王持续回血
for (int i : FourCrystal) {
DCrystal ds = new DCrystal();
ds.pos = i;
GameScene.add(ds);
}
boss.HP = 300;
pro = VSBOSS_START;
}

View File

@ -0,0 +1,28 @@
package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.watabou.noosa.TextureFilm;
public class DCrystalSprites extends MobSprite {
public DCrystalSprites () {
super();
texture( Assets.Sprites.DREA );
TextureFilm frames = new TextureFilm( texture, 16, 16 );
idle = new Animation( 1, false );
idle.frames( frames, 0 );
run = idle.clone();
attack = idle.clone();
die = new Animation( 1, false );
die.frames( frames, 2 );
play( idle );
}
}