Update Items And New Wepaon

This commit is contained in:
LingASDJ 2023-04-20 17:24:59 +08:00
parent f2dc8b910e
commit 1d65a31b74
9 changed files with 140 additions and 13 deletions

View File

@ -150,6 +150,11 @@ items.weapon.melee.washcrime.desc=铁链的末端绑了一把巨镰,上面的
items.weapon.melee.washcrime$diedghost.name=未安息的亡魂
items.weapon.melee.washcrime$diedghost.desc=肉身已然逝去,灵魂尚未得到安息,脑海遵照主人的意愿,直到真正的死亡降临。
items.weapon.melee.bloodthirstythorn.name=嗜血荆棘
items.weapon.melee.bloodthirstythorn.desc=浸染鲜血的倒悬之树。舍弃了仅存的秩序,独留狂暴与混乱。\n-攻击时有概率给敌人施加Γ流血和恐惧Γ效果。\n-特性该武器拥有与蓄血圣杯相同的升级方式最高等级10级。等级+3前每次攻击有概率扣除使用者2点生命值并施加流血效果。等级+5及以后时攻击距离增加一格并移除其负面影响。在10级时每次攻击将恢复造成伤害的一定比列的生命值。\n_-这是一把十分精准的武器_
items.weapon.melee.bloodthirstythorn.stats_desc=这株植物已经汲取了Γ你的生命精华Γ并滋养长大现在它的攻击范围扩大一格精准度提高_20%_。
items.weapon.melee.bloodthirstythorn.stats_descx=\n\n你的Γ生命精华Γ让这株植物再次变得茁壮现在它会在_每次攻击敌人_时汲取一定的数值回馈给你。
#MLPDSTOREYBOOKS
items.books.bookslist.hellfirebooks.name=《浊焰事件》

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -260,7 +260,7 @@ public abstract class ChampionHero extends FlavourBuff {
@Override
public boolean act() {
//detach();
multiplier += 0.1f;
multiplier += 0.5f;
spend(3*TICK);
return true;
}

View File

@ -317,7 +317,7 @@ public class Hero extends Char {
strBonus += (int)Math.floor(STR * (0.03f + 0.05f*pointsInTalent(Talent.STRONGMAN)));
}
//TODO 无力 本大层-3力量 : 坚毅 本大层力量+2
//无力 本大层-3力量 : 坚毅 本大层力量+2
if(Dungeon.hero.buff(MagicGirlSayNoSTR.class) != null){
strBonus -= 3;
} else if(Dungeon.hero.buff(BlessGoodSTR.class) != null) {

View File

@ -49,7 +49,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
import com.shatteredpixel.shatteredpixeldungeon.items.Ankh;
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
@ -110,8 +109,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfGodIce;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfScale;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.hightwand.WandOfHightHunderStorm;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.FireFishSword;
@ -132,8 +131,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSt
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.AikeLaier;
import com.shatteredpixel.shatteredpixeldungeon.plants.Blindweed;
import com.shatteredpixel.shatteredpixeldungeon.plants.Firebloom;
import com.watabou.utils.Random;
public enum HeroClass {
@ -178,27 +175,24 @@ public enum HeroClass {
if (Dungeon.isChallenged(Challenges.PRO)){
new WandOfHightHunderStorm().quantity(11).identify().collect();
new LockSword().quantity(1).identify().collect();
new PotionOfInvisibility().quantity(45).identify().collect();
new PotionOfLevitation().quantity(100).identify().collect();
new SDBSword().quantity(1).identify().collect();
Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f);
new BloodthirstyThorn().quantity(1).identify().collect();
new Gauntlet().quantity(1).identify().collect();
new WashCrime().quantity(1).identify().collect();
new Cake().quantity(100).identify().collect();
new TengusMask().quantity(1).identify().collect();
new KingsCrown().quantity(1).identify().collect();
new ScrollOfIdentify().quantity(45).identify().collect();
new ScrollOfTransmutation().quantity(45).identify().collect();
new BeaconOfReturning().quantity(11).identify().collect();
new WarHammer().quantity(1).identify().collect();
new EtherealChains().quantity(1).identify().collect();
new Firebloom.Seed().quantity(50).identify().collect();
new Blindweed.Seed().quantity(50).identify().collect();
new StoneOfFlock().quantity(50).identify().collect();
new PotionOfMindVision().quantity(50).identify().collect();
new PotionOfStrength().quantity(50).identify().collect();

View File

@ -0,0 +1,125 @@
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class BloodthirstyThorn extends MeleeWeapon {
{
image = ItemSpriteSheet.BloodDir;
hitSound = Assets.Sounds.HIT_SLASH;
hitSoundPitch = 0.9f;
ACC = 1.75f;
RCH=1;
tier=6;
}
@Override
public int min(int lvl) {
return 4 +lvl*2;
}
@Override
public int max(int lvl) {
return 14 + lvl*7;
}
@Override
public int STRReq(int lvl){
return 8;
}
private void getHerodamageHp(Hero hero) {
int damage = 2;
hero.damage(damage,this);
}
@Override
public int proc(Char attacker, Char defender, int damage ) {
// 等级+3前每次攻击有概率扣除使用者2点生命值并施加流血效果
// 等级+5及以后时攻击距离增加一格并移除其负面影响
if (level() < 4 && Random.Float() > 0.35f) {
getHerodamageHp(hero);
Buff.affect(attacker, Bleeding.class).set(7);
} else if (level() >= 10) {
//吸血为每次伤害/5 例如=50/5=10 Math.min()不超出
attacker.HP += Math.min( attacker.HT, damage/5);
// hero.sprite.showStatus(CharSprite.POSITIVE, ("+" +Math.min( attacker.HT, damage/5) + "HP"));
} else {
getHerodamageHp(hero);
Buff.affect(attacker, Bleeding.class).set(7);
}
//恐惧和流血
if(level()>=0 && Random.Float()>0.45f){
Buff.affect(defender, Bleeding.class).set(7);
Buff.affect(defender, Terror.class, Terror.DURATION ).object = curUser.id();
}
return super.proc(attacker, defender, damage);
}
//动态改变图标1
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
super.image = ItemSpriteSheet.BloodDir;
if (level() >= 5) {
super.image = ItemSpriteSheet.BloodDied;
//在载入存档更新图标的同时更新攻击范围
RCH=2;
} else {
super.image = ItemSpriteSheet.BloodDir;
}
}
//动态改变图标2
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
super.image = ItemSpriteSheet.BloodDir;
if (level() >= 5) {
//在保存存档更新图标的同时更新攻击范围
super.image = ItemSpriteSheet.BloodDied;
RCH=2;
} else {
super.image = ItemSpriteSheet.BloodDir;
}
}
//动态改变图标3
@Override
public int image() {
super.image = ItemSpriteSheet.BloodDir;
if (level() >= 5) {
super.image = ItemSpriteSheet.BloodDied;
//在更新图标的同时更新攻击范围
RCH=2;
} else {
super.image = ItemSpriteSheet.BloodDir;
}
return image;
}
@Override
public String statsInfo(){
if (isIdentified() && level() >= 10 ) {
return Messages.get(this, "stats_desc")+Messages.get(this, "stats_descx");
} else if (isIdentified() && level() >= 5) {
return Messages.get(this, "stats_desc");
} else {
return "";
}
}
}

View File

@ -590,8 +590,8 @@ public class GameScene extends PixelScene {
}
/*
TODO 检查是否存在诅咒buff然后在下楼的时候背刺英雄一下
TODO 魔女的低语束缚 本大层每下一层穿戴的装备必定被诅咒
检查是否存在诅咒buff然后在下楼的时候背刺英雄一下
魔女的低语束缚 本大层每下一层穿戴的装备必定被诅咒
*/
if(Dungeon.hero.buff(MagicGirlSayCursed.class) != null){
CursingTrap cursed = new CursingTrap();

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.85f;
fadeTime = 0.1f;
}
SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){

View File

@ -759,6 +759,9 @@ public class ItemSpriteSheet {
public static final int DASlade = BAGS+77;
public static final int BloodDir = BAGS+78;
public static final int BloodDied = BAGS+79;
static{
assignItemRect(VIAL, 16, 16);
assignItemRect(POUCH, 14, 15);