Update BetaP3-PreTest2

- Add New 5 depth Boss
This commit is contained in:
LingASDJ 2023-02-09 19:58:20 +08:00
parent 1ec3158d7f
commit 662f7452d7
9 changed files with 140 additions and 8 deletions

View File

@ -1,6 +1,13 @@
####MLPD-P3文本
items.weapon.melee.lifetreesword.name=“倒悬的生命树”
items.weapon.melee.lifetreesword.desc=克里弗斯之果破碎时,四周的藤蔓缠结在暴露出的种子上,形成剑的形状。剑身触碰到生物时会汲取他们的生命力提供给种子,期待着它再一结出猩红的果实。\n\n特别说明克里弗斯之果Boss专武每击杀_100只怪物_掉落一颗克里弗斯幼果。
items.weapon.melee.lifetreesword.desc=克里弗斯之果破碎时,四周的藤蔓缠结在暴露出的种子上,形成剑的形状。剑身触碰到生物时会汲取他们的生命力提供给种子,期待着它再一结出猩红的果实。\n\n特别说明克里弗斯之果Boss专武每击杀_100只怪物_掉落一颗克里弗斯幼果,并重置杀敌计数。\n\n杀敌数:
items.food.crivusfruitsfood.name=克里弗斯幼果
items.food.crivusfruitsfood.desc=从“倒悬的生命树”中脱落的水果,看起来非常的香甜可口。
items.food.crivusfruitsfood.eat_msg2=你感觉味道十分不错,香甜可口,回味无穷……
items.quest.crivusfruitsflake.name=赤果碎片
items.quest.crivusfruitsflake.desc=克里弗斯之果破碎时,炸的四分五裂,但看起来大概无法食用。\n\n物品自身并没有什么实际用途但长期的魔力汲取让它拥有一股神秘的力量或许它能商人眼前一亮。它本身还可以用作炼金制作一些不错的东西。再不济它也能提供相当的炼金能量。
###MLPD

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

View File

@ -26,8 +26,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.food.CrivusFruitsFood;
import com.shatteredpixel.shatteredpixeldungeon.items.keys.CrystalKey;
import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey;
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CrivusFruitsFlake;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -36,6 +39,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CrivusFruitsSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.PathFinder;
import com.watabou.utils.Random;
//克里弗斯之果 本体
public class CrivusFruits extends Mob {
@ -220,6 +225,27 @@ public class CrivusFruits extends Mob {
Dungeon.level.drop( new CrystalKey( Dungeon.depth ), pos ).sprite.drop();
Dungeon.level.drop( new IronKey( Dungeon.depth ), pos-1 ).sprite.drop();
Dungeon.level.drop( new IronKey( Dungeon.depth ), pos+1 ).sprite.drop();
int blobs = Random.chances(new float[]{0, 0, 6, 3, 1});
for (int i = 0; i < blobs; i++){
int ofs;
do {
ofs = PathFinder.NEIGHBOURS8[Random.Int(6)];
} while (!Dungeon.level.passable[pos + ofs]);
Dungeon.level.drop( new CrivusFruitsFood(), pos + ofs ).sprite.drop( pos );
}
int flakes = Random.chances(new float[]{0, 0, 6, 3, 1});
for (int i = 0; i < flakes; i++){
int ofs;
do {
ofs = PathFinder.NEIGHBOURS8[Random.Int(8)];
} while (!Dungeon.level.passable[pos + ofs]);
Dungeon.level.drop( new CrivusFruitsFlake(), pos + ofs ).sprite.drop( pos );
}
Dungeon.level.drop( new LifeTreeSword(), pos ).sprite.drop();
}
{

View File

@ -0,0 +1,29 @@
package com.shatteredpixel.shatteredpixeldungeon.items.food;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bless;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
public class CrivusFruitsFood extends Food {
{
stackable = true;
image = ItemSpriteSheet.CrivusFruitFood;
defaultAction = AC_EAT;
bones = true;
}
protected void satisfy( Hero hero ){
Buff.affect(hero, Hunger.class).satisfy(50f);
Buff.prolong(hero, Bless.class, 20f);
Buff.affect(hero, Adrenaline.class, 10f);
hero.spend( eatingTime() );
GLog.p(Messages.get(this, "eat_msg2"));
}
}

View File

@ -0,0 +1,32 @@
package com.shatteredpixel.shatteredpixeldungeon.items.quest;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
public class CrivusFruitsFlake extends Item {
{
image = ItemSpriteSheet.CrivusFruitflake;
stackable = true;
}
@Override
public boolean isUpgradable() {
return false;
}
@Override
public boolean isIdentified() {
return true;
}
@Override
public int value() {
return quantity * 90;
}
@Override
public int energyVal() {
return quantity * 3;
}
}

View File

@ -21,7 +21,12 @@
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.items.food.CrivusFruitsFood;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Bundle;
public class LifeTreeSword extends MeleeWeapon {
@ -29,8 +34,36 @@ public class LifeTreeSword extends MeleeWeapon {
image = ItemSpriteSheet.LifeTreeSword;
tier = 3;
}
bones = false;
public String desc() {
return Messages.get(this, "desc")+"_"+getFood+"_";
}
public int proc(Char attacker, Char defender, int damage ) {
if (defender.HP <= damage && getFood < 99){
//判定为死亡
getFood+=111;
} else {
Dungeon.level.drop( new CrivusFruitsFood(), defender.pos ).sprite.drop();
getFood=0;
}
return super.proc(attacker, defender, damage);
}
private int getFood = 0;
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
this.getFood = bundle.getInt("getFood");
}
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put("getFood", this.getFood);
}
@Override

View File

@ -15,7 +15,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Bundle;
public class LockSword extends MeleeWeapon {
public int lvl = 0;
private int lvl = 0;
public LockSword() {
super.image = ItemSpriteSheet.DG3;

View File

@ -60,11 +60,11 @@ public class TitleScene extends PixelScene {
placeTorch(title.x + 22, title.y + 46);
placeTorch(title.x + title.width - 22, title.y + 46);
placeTorch2(title.x + -5, title.y + 63);
placeTorch2(title.x + title.width - 15, title.y + 63);
placeTorch3(title.x + -10, title.y + 46);
placeTorch3(title.x + title.width - 10, title.y + 46);
// placeTorch2(title.x + -5, title.y + 63);
// placeTorch2(title.x + title.width - 15, title.y + 63);
//
// placeTorch3(title.x + -10, title.y + 46);
// placeTorch3(title.x + title.width - 10, title.y + 46);
Image swordLeft = new Image( BannerSprites.get( BannerSprites.Type.SWORD ) ) {
private float preCurTime = 0;

View File

@ -666,6 +666,9 @@ public class ItemSpriteSheet {
public static final int TOKEN = QUEST+6;
public static final int BLOB = QUEST+7;
public static final int SHARD = QUEST+8;
public static final int CrivusFruitFood = QUEST+9;
public static final int CrivusFruitflake = QUEST+10;
static{
assignItemRect(SKULL, 16, 11);
assignItemRect(DUST, 12, 11);
@ -676,6 +679,8 @@ public class ItemSpriteSheet {
assignItemRect(TOKEN, 12, 12);
assignItemRect(BLOB, 10, 9);
assignItemRect(SHARD, 8, 10);
assignItemRect(CrivusFruitFood, 11, 14);
assignItemRect(CrivusFruitflake, 13, 13);
}
private static final int BAGS = xy(1, 31); //16 slots