v3.0.0: added a remains item for Cleric, buffed Warrior's remains item

This commit is contained in:
Evan Debenham
2024-10-12 12:50:06 -04:00
parent 7ac96b40e3
commit ab2cb0cecf
7 changed files with 55 additions and 5 deletions

View File

@@ -903,6 +903,8 @@ items.remains.cloakscrap.name=scrap of fabric
items.remains.cloakscrap.desc=This scrap of translucent fabric looks like it came from a late Rogue's cloak of shadows. You can still feel a little mystical energy left in it, you can use it to give your artifacts a little charge boost. Doing this will destroy the fabric however. items.remains.cloakscrap.desc=This scrap of translucent fabric looks like it came from a late Rogue's cloak of shadows. You can still feel a little mystical energy left in it, you can use it to give your artifacts a little charge boost. Doing this will destroy the fabric however.
items.remains.sealshard.name=seal shards items.remains.sealshard.name=seal shards
items.remains.sealshard.desc=These tiny shards of red wax look like they came from the seal of a fallen Warrior. You can still feel a bit of willpower clinging to the seal, you can use it to give yourself a bit of shielding. Doing this will destroy the seal shards however. items.remains.sealshard.desc=These tiny shards of red wax look like they came from the seal of a fallen Warrior. You can still feel a bit of willpower clinging to the seal, you can use it to give yourself a bit of shielding. Doing this will destroy the seal shards however.
items.remains.tornpage.name=torn page
items.remains.tornpage.desc=This page looks like it was ripped out of an expired Cleric's holy tome. There's still a little divine energy clinging to it, you can use it to regain a little bit of health. Doing this will destroy the torn page however.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -90,8 +90,8 @@ public abstract class RemainsItem extends Item {
return new BowFragment(); return new BowFragment();
case DUELIST: case DUELIST:
return new BrokenHilt(); return new BrokenHilt();
case CLERIC: //TODO CLERIC remains item case CLERIC:
return new SealShard(); return new TornPage();
} }
} }

View File

@@ -38,7 +38,7 @@ public class SealShard extends RemainsItem {
@Override @Override
protected void doEffect(Hero hero) { protected void doEffect(Hero hero) {
Buff.affect(hero, Barrier.class).incShield(hero.HT/10); Buff.affect(hero, Barrier.class).incShield(Math.round(hero.HT/5f));
hero.sprite.showStatusWithIcon( CharSprite.POSITIVE, Integer.toString(hero.HT/10), FloatingText.SHIELDING ); hero.sprite.showStatusWithIcon( CharSprite.POSITIVE, Integer.toString(hero.HT/10), FloatingText.SHIELDING );
Sample.INSTANCE.play(Assets.Sounds.UNLOCK); Sample.INSTANCE.play(Assets.Sounds.UNLOCK);
} }

View File

@@ -0,0 +1,45 @@
/*
* Pixel Dungeon
* Copyright (C) 2012-2015 Oleg Dolya
*
* Shattered Pixel Dungeon
* Copyright (C) 2014-2024 Evan Debenham
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package com.shatteredpixel.shatteredpixeldungeon.items.remains;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.noosa.audio.Sample;
public class TornPage extends RemainsItem {
{
image = ItemSpriteSheet.TORN_PAGE;
}
@Override
protected void doEffect(Hero hero) {
int toHeal = Math.round(hero.HT/10f);
hero.HP = Math.min(hero.HP + toHeal, hero.HT);
hero.sprite.showStatusWithIcon( CharSprite.POSITIVE, Integer.toString(toHeal), FloatingText.HEALING );
Sample.INSTANCE.play( Assets.Sounds.READ );
}
}

View File

@@ -96,6 +96,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.remains.BrokenHilt;
import com.shatteredpixel.shatteredpixeldungeon.items.remains.BrokenStaff; import com.shatteredpixel.shatteredpixeldungeon.items.remains.BrokenStaff;
import com.shatteredpixel.shatteredpixeldungeon.items.remains.CloakScrap; import com.shatteredpixel.shatteredpixeldungeon.items.remains.CloakScrap;
import com.shatteredpixel.shatteredpixeldungeon.items.remains.SealShard; import com.shatteredpixel.shatteredpixeldungeon.items.remains.SealShard;
import com.shatteredpixel.shatteredpixeldungeon.items.remains.TornPage;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.Alchemize; import com.shatteredpixel.shatteredpixeldungeon.items.spells.Alchemize;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.BeaconOfReturning; import com.shatteredpixel.shatteredpixeldungeon.items.spells.BeaconOfReturning;
@@ -257,7 +258,7 @@ public enum Catalog {
CorpseDust.class, Embers.class, CeremonialCandle.class, DarkGold.class, DwarfToken.class, CorpseDust.class, Embers.class, CeremonialCandle.class, DarkGold.class, DwarfToken.class,
GooBlob.class, TengusMask.class, MetalShard.class, KingsCrown.class, GooBlob.class, TengusMask.class, MetalShard.class, KingsCrown.class,
LiquidMetal.class, ArcaneResin.class, LiquidMetal.class, ArcaneResin.class,
SealShard.class, BrokenStaff.class, CloakScrap.class, BowFragment.class, BrokenHilt.class); SealShard.class, BrokenStaff.class, CloakScrap.class, BowFragment.class, BrokenHilt.class, TornPage.class);
} }

View File

@@ -151,7 +151,8 @@ public class ItemSpriteSheet {
public static final int CLOAK_SCRAP = MISC_CONSUMABLE +18; public static final int CLOAK_SCRAP = MISC_CONSUMABLE +18;
public static final int BOW_FRAGMENT = MISC_CONSUMABLE +19; public static final int BOW_FRAGMENT = MISC_CONSUMABLE +19;
public static final int BROKEN_HILT = MISC_CONSUMABLE +20; public static final int BROKEN_HILT = MISC_CONSUMABLE +20;
public static final int TRINKET_CATA = MISC_CONSUMABLE +21; public static final int TORN_PAGE = MISC_CONSUMABLE +21;
public static final int TRINKET_CATA = MISC_CONSUMABLE +22;
static{ static{
assignItemRect(ANKH, 10, 16); assignItemRect(ANKH, 10, 16);
@@ -178,6 +179,7 @@ public class ItemSpriteSheet {
assignItemRect(CLOAK_SCRAP, 9, 9); assignItemRect(CLOAK_SCRAP, 9, 9);
assignItemRect(BOW_FRAGMENT, 12, 9); assignItemRect(BOW_FRAGMENT, 12, 9);
assignItemRect(BROKEN_HILT, 9, 9); assignItemRect(BROKEN_HILT, 9, 9);
assignItemRect(TORN_PAGE, 11, 13);
assignItemRect(TRINKET_CATA, 12, 11); assignItemRect(TRINKET_CATA, 12, 11);
} }