v0.7.0: added 3 initial elixirs
This commit is contained in:
parent
4688324c6e
commit
0184c86aad
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
@ -32,6 +32,7 @@ public class EarthImbue extends FlavourBuff {
|
||||||
|
|
||||||
{
|
{
|
||||||
type = buffType.POSITIVE;
|
type = buffType.POSITIVE;
|
||||||
|
announced = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final float DURATION = 30f;
|
public static final float DURATION = 30f;
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class FireImbue extends Buff {
|
||||||
|
|
||||||
{
|
{
|
||||||
type = buffType.POSITIVE;
|
type = buffType.POSITIVE;
|
||||||
|
announced = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final float DURATION = 30f;
|
public static final float DURATION = 30f;
|
||||||
|
|
|
@ -33,6 +33,7 @@ public class ToxicImbue extends Buff {
|
||||||
|
|
||||||
{
|
{
|
||||||
type = buffType.POSITIVE;
|
type = buffType.POSITIVE;
|
||||||
|
announced = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final float DURATION = 30f;
|
public static final float DURATION = 30f;
|
||||||
|
|
|
@ -25,6 +25,9 @@ import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfDragonsBlood;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfEarthenPower;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfToxicEssence;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
|
||||||
|
@ -121,7 +124,10 @@ public abstract class Recipe {
|
||||||
|
|
||||||
private static Recipe[] twoIngredientRecipes = new Recipe[]{
|
private static Recipe[] twoIngredientRecipes = new Recipe[]{
|
||||||
new Blandfruit.CookFruit(),
|
new Blandfruit.CookFruit(),
|
||||||
new TippedDart.TipDart()
|
new TippedDart.TipDart(),
|
||||||
|
new ElixirOfDragonsBlood.Recipe(),
|
||||||
|
new ElixirOfEarthenPower.Recipe(),
|
||||||
|
new ElixirOfToxicEssence.Recipe()
|
||||||
};
|
};
|
||||||
|
|
||||||
private static Recipe[] threeIngredientRecipes = new Recipe[]{
|
private static Recipe[] threeIngredientRecipes = new Recipe[]{
|
||||||
|
|
|
@ -380,13 +380,17 @@ public class Potion extends Item {
|
||||||
return handler.known().size() == potions.length;
|
return handler.known().size() == potions.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected int splashColor(){
|
||||||
|
return ItemSprite.pick( image, 8, 10 );
|
||||||
|
}
|
||||||
|
|
||||||
protected void splash( int cell ) {
|
protected void splash( int cell ) {
|
||||||
|
|
||||||
Fire fire = (Fire)Dungeon.level.blobs.get( Fire.class );
|
Fire fire = (Fire)Dungeon.level.blobs.get( Fire.class );
|
||||||
if (fire != null)
|
if (fire != null)
|
||||||
fire.clear( cell );
|
fire.clear( cell );
|
||||||
|
|
||||||
final int color = ItemSprite.pick( image, 8, 10 );
|
final int color = splashColor();
|
||||||
|
|
||||||
Char ch = Actor.findChar(cell);
|
Char ch = Actor.findChar(cell);
|
||||||
if (ch != null) {
|
if (ch != null) {
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2018 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.potions.elixirs;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||||
|
|
||||||
|
public abstract class Elixir extends Potion {
|
||||||
|
|
||||||
|
public abstract void apply( Hero hero );
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isKnown() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2018 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.potions.elixirs;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FireImbue;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
|
||||||
|
public class ElixirOfDragonsBlood extends Elixir {
|
||||||
|
|
||||||
|
{
|
||||||
|
//TODO finish visuals
|
||||||
|
image = ItemSpriteSheet.ELIXIR_DRAGON;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Hero hero) {
|
||||||
|
Buff.affect(hero, FireImbue.class).set(FireImbue.DURATION);
|
||||||
|
Sample.INSTANCE.play( Assets.SND_BURNING );
|
||||||
|
hero.sprite.emitter().burst(FlameParticle.FACTORY, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int splashColor() {
|
||||||
|
return 0xFFFF002A;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||||
|
|
||||||
|
{
|
||||||
|
inputs = new Class[]{PotionOfLiquidFlame.class, PotionOfPurity.class};
|
||||||
|
inQuantity = new int[]{1, 1};
|
||||||
|
|
||||||
|
cost = 2;
|
||||||
|
|
||||||
|
output = ElixirOfDragonsBlood.class;
|
||||||
|
outQuantity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2018 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.potions.elixirs;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EarthImbue;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EarthParticle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHaste;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfParalyticGas;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
|
||||||
|
public class ElixirOfEarthenPower extends Elixir {
|
||||||
|
|
||||||
|
{
|
||||||
|
//TODO finish visuals
|
||||||
|
image = ItemSpriteSheet.ELIXIR_EARTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Hero hero) {
|
||||||
|
Buff.affect(hero, EarthImbue.class, EarthImbue.DURATION);
|
||||||
|
hero.sprite.emitter().burst(EarthParticle.FACTORY, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int splashColor() {
|
||||||
|
return 0xFF603913;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||||
|
|
||||||
|
{
|
||||||
|
inputs = new Class[]{PotionOfParalyticGas.class, PotionOfHaste.class};
|
||||||
|
inQuantity = new int[]{1, 1};
|
||||||
|
|
||||||
|
cost = 2;
|
||||||
|
|
||||||
|
output = ElixirOfEarthenPower.class;
|
||||||
|
outQuantity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2018 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.potions.elixirs;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ToxicImbue;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfToxicGas;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
|
||||||
|
public class ElixirOfToxicEssence extends Elixir {
|
||||||
|
|
||||||
|
{
|
||||||
|
//TODO finish visuals
|
||||||
|
image = ItemSpriteSheet.ELIXIR_TOXIC;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Hero hero) {
|
||||||
|
Buff.affect(hero, ToxicImbue.class).set(ToxicImbue.DURATION);
|
||||||
|
hero.sprite.emitter().burst(PoisonParticle.SPLASH, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int splashColor() {
|
||||||
|
return 0xFF00B34A;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
|
||||||
|
|
||||||
|
{
|
||||||
|
inputs = new Class[]{PotionOfToxicGas.class, PotionOfPurity.class};
|
||||||
|
inQuantity = new int[]{1, 1};
|
||||||
|
|
||||||
|
cost = 2;
|
||||||
|
|
||||||
|
output = ElixirOfToxicEssence.class;
|
||||||
|
outQuantity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -514,8 +514,18 @@ public class ItemSpriteSheet {
|
||||||
for (int i = SEEDS; i < SEEDS+16; i++)
|
for (int i = SEEDS; i < SEEDS+16; i++)
|
||||||
assignItemRect(i, 10, 10);
|
assignItemRect(i, 10, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final int ELIXIRS = xy(1, 25); //16 slots
|
||||||
|
public static final int ELIXIR_DRAGON = ELIXIRS+0;
|
||||||
|
public static final int ELIXIR_TOXIC = ELIXIRS+1;
|
||||||
|
public static final int ELIXIR_EARTH = ELIXIRS+2;
|
||||||
|
static{
|
||||||
|
assignItemRect(ELIXIR_DRAGON, 10, 14);
|
||||||
|
assignItemRect(ELIXIR_TOXIC, 10, 14);
|
||||||
|
assignItemRect(ELIXIR_EARTH, 10, 14);
|
||||||
|
}
|
||||||
|
|
||||||
private static final int FOOD = xy(1, 25); //16 slots
|
private static final int FOOD = xy(1, 28); //16 slots
|
||||||
public static final int MEAT = FOOD+0;
|
public static final int MEAT = FOOD+0;
|
||||||
public static final int STEAK = FOOD+1;
|
public static final int STEAK = FOOD+1;
|
||||||
public static final int OVERPRICED = FOOD+2;
|
public static final int OVERPRICED = FOOD+2;
|
||||||
|
@ -539,7 +549,7 @@ public class ItemSpriteSheet {
|
||||||
assignItemRect(BLAND_CHUNKS,14, 6);
|
assignItemRect(BLAND_CHUNKS,14, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int QUEST = xy(1, 26); //32 slots
|
private static final int QUEST = xy(1, 29); //32 slots
|
||||||
public static final int SKULL = QUEST+0;
|
public static final int SKULL = QUEST+0;
|
||||||
public static final int DUST = QUEST+1;
|
public static final int DUST = QUEST+1;
|
||||||
public static final int CANDLE = QUEST+2;
|
public static final int CANDLE = QUEST+2;
|
||||||
|
@ -555,10 +565,9 @@ public class ItemSpriteSheet {
|
||||||
assignItemRect(PICKAXE, 14, 14);
|
assignItemRect(PICKAXE, 14, 14);
|
||||||
assignItemRect(ORE, 15, 15);
|
assignItemRect(ORE, 15, 15);
|
||||||
assignItemRect(TOKEN, 12, 12);
|
assignItemRect(TOKEN, 12, 12);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int BAGS = xy(1, 28); //16 slots
|
private static final int BAGS = xy(1, 31); //16 slots
|
||||||
public static final int VIAL = BAGS+0;
|
public static final int VIAL = BAGS+0;
|
||||||
public static final int POUCH = BAGS+1;
|
public static final int POUCH = BAGS+1;
|
||||||
public static final int HOLDER = BAGS+2;
|
public static final int HOLDER = BAGS+2;
|
||||||
|
@ -572,7 +581,7 @@ public class ItemSpriteSheet {
|
||||||
assignItemRect(HOLSTER, 15, 16);
|
assignItemRect(HOLSTER, 15, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
//64 free slots
|
//16 free slots
|
||||||
|
|
||||||
|
|
||||||
private static void assignItemRect( int item, int width, int height){
|
private static void assignItemRect( int item, int width, int height){
|
||||||
|
|
|
@ -546,6 +546,19 @@ items.potions.potionoftoxicgas.desc=Uncorking or shattering this pressurized gla
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###elixirs
|
||||||
|
items.potions.elixirs.elixirofdragonsblood.name=elixir of dragon's blood
|
||||||
|
items.potions.elixirs.elixirofdragonsblood.desc=TODO
|
||||||
|
|
||||||
|
items.potions.elixirs.elixiroftoxicessence.name=elixir of toxic essence
|
||||||
|
items.potions.elixirs.elixiroftoxicessence.desc=TODO
|
||||||
|
|
||||||
|
items.potions.elixirs.elixirofearthenpower.name=elixir of earthen power
|
||||||
|
items.potions.elixirs.elixirofearthenpower.desc=TODO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###exotic potions
|
###exotic potions
|
||||||
items.potions.exotic.exoticpotion.turquoise=exotic turquoise potion
|
items.potions.exotic.exoticpotion.turquoise=exotic turquoise potion
|
||||||
items.potions.exotic.exoticpotion.crimson=exotic crimson potion
|
items.potions.exotic.exoticpotion.crimson=exotic crimson potion
|
||||||
|
|
Loading…
Reference in New Issue
Block a user