Skip to content

Commit

Permalink
Version 0.3.2a
Browse files Browse the repository at this point in the history
GENERAL

- "magic skill" stat was renamed into "magic power" and now affects wand's damage/effect
- "willpower" was renamed into "attunement" and now affects recharge rate not as much
- potions of Strength now increase your magic power in addition to its previous effects
- Scholar now receives bonus magic power only on every 3rd level up
- Acolyte now receives bonus magic power only on every 6th level up
- Warrior and Brigand do not get additional magic power on level ups at all
- increased starting health for all character classes from by 5 points
- regeneration rate now depends on the max health amount only
- nerfed waterskins and oil lantern
- Acolyte now starts with three empty bottles instead of a potion of Overgrowth

WANDS & RINGS

- wand damage, recharge rate, and number of charges were significantly rebalanced
- combat wands now are Magic Missile, Disintegration, Smiting, Lightning, Acid Spray and Firebrand
- utility wands now are Ice Barrier, Thornvines, Force Blast, Charm, Life Drain and Damnation
- wands will never miss their target anymore (except Magic Missile)
- "utility" wands can miscast/squeeze charges, just like combat wands
- only unidentified and/or cursed wands will ever miscast now
- changed curse chances for wands/rings to be dependent on chapter rather than floor number
- wands and rings now have much more detailed descriptions

ALCHEMY & POTIONS

- brewing potions now requires an empty potion bottle and two specific herbs
- empty bottles can be found in shops, laboratories, and among the loot
- using incorrect herbs will give you unstable potion which is, well, unstable
- added potions of Rage, Toxic Gas, and Confusion Gas
- Potion of Overgrowth was replaced with Potion of Webbing
- Potion of Blessing was divided into Potion of Shield and Potion of Blessing
- Potion of Corrosive Gas was replaced with Potion of Caustic Ooze
- Potion of Caustic Ooze creates temporary acid puddles on the floor
- rain created by potions of Thunderstorm now can refill wells in its area of effect

HERBS & FOOD

- raw meat cannot be cooked by burning or freezing it, but is completely safe to eat
- burning raw meat will turn it into burned meat, which is a worse version of raw meat
- you can, however, cook raw meat in alchemy pots, making it more nutritional
- it can also be cooked with herbs to provide a much longer resistance buff when eaten
- herbs now require only one turn to be eaten (was three turns before)
- herbs now remove debuffs and apply short resistance buffs when eaten
- spawn rates of different herbs now depends on the current chapter
- implemented Feyleaf herb, which increases magical resistance when eaten
- Dreamweed was renamed into Dreamfoil and had its sprite changed slightly
- herbs and other types of food now have much more detailed descriptions

EQUIPMENT

- quarterstaffs now increase your magic power by 10-25% depending on their upgrade level
- rebalanced prices and quantities of ammunition and throwing weapons
- missile and flintlock weapons got their damage increased
- light throwing weapons can now inflict bonus damage on sneak attacks
- debuffs from special throwing weapons now ignore target's armor
- javelins and tomahawks can now knock their targets back on hit
- chakrams can now be used to hit several enemies at once
- harpoons were reworked and will be more reliable now
- throwing items at secret doors now also reveals them
- weapon enchantments do not provide bonus damage for certain wands anymore
- added a confirmation pop-up when equipping items which are too heavy for you

BUFFS & DEBUFFS

- the Enraged buff now has decreased effect, but lasts longer
- Mind Vision now increases Perception by 25%
- Levitation now increases Dexterity by 25%
- Invisibility now increases Stealth by 25%
- Invisibility is now dispelled on stealing
- Corrosion now causes its target to spawn an acid puddle on death
- Vertigo now prevents you from receiving "Focused" buff from skipping turns
- being Poisoned now decreases attack speed only by 25% (instead of 50%)
- electricity damage does not inflict Electrified debuff on its targets anymore
- electricity damage now just gets increased by 50% if the target is standing in the water

MOBS

- slightly buffed minimum damage for most of the mobs mobs
- Goo was tweaked to make its fight easier for new players and less annoying for veterans
- King of Dwarves was tweaked to make his fight to be less confusing/unfair for everyone
- carrion eaters, giant spiders and cave scorpions are now vulnerable to mind debuffs
- warlocks and evil eyes will not miss anymore (same as the corresponding wands)
- carrion eaters are not resistant to body and acid anymore
- updated giant spider sprites, and now they only spawn webs on death
- cave scorpions now spawn acid puddle instead of corrosive gas on death
- dwarf monks aren't resistant to mind effects anymore
- dwarf warlocks now deal more damage with their ranged attacks
- charmed mobs should be a bit more independent now
- hitting charmed/controlled mobs doesn't remove the effect from them

DUNGEON

- moved old wandmaker NPC to the Sewers, and sad ghost NPC to the Prison
- decreased amount of water in the bonus well rooms (only guaranteed wells are on the 4th floor of a chapter)
- poison dart traps were changed into confusion gas traps
- toxic gas trap now releases toxic gas instead of corrosive gas
- trapped vaults now can be filled with summoning traps
- made item piles on the already visited tiles visible through the fog of war
- small changes to the layout of the second boss floor nd imp's shop floor
- secret doors on the 2nd floor are now guaranteed only if you have not unlocked at least one of the strength, upgrade or boss badges yet
  • Loading branch information
ConsideredHamster committed Aug 11, 2019
1 parent 17d1c3f commit f00be05
Show file tree
Hide file tree
Showing 521 changed files with 11,710 additions and 7,862 deletions.
8 changes: 4 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
compileSdkVersion 28
buildToolsVersion '26.0.2'

defaultConfig {
applicationId "com.consideredhamster.yetanotherpixeldungeon"
minSdkVersion 9
targetSdkVersion 21
versionCode 319
versionName '0.3.1j'
targetSdkVersion 28
versionCode 325
versionName '0.3.2a'
archivesBaseName = "yapd-$versionName"
}

Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file removed app/src/main/assets/buffs_large.png
Binary file not shown.
Binary file removed app/src/main/assets/buffs_small.png
Binary file not shown.
Binary file removed app/src/main/assets/effects.png
Binary file not shown.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added app/src/main/assets/enemies/mob_iceblock.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added app/src/main/assets/enemies/mob_shadowlash.png
File renamed without changes
File renamed without changes
Binary file added app/src/main/assets/enemies/mob_spider.png
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added app/src/main/assets/enemies/mob_tentacle.png
File renamed without changes
Binary file added app/src/main/assets/enemies/mob_thornvine.png
File renamed without changes
File renamed without changes
File renamed without changes
Binary file removed app/src/main/assets/items.png
Diff not rendered.
Binary file removed app/src/main/assets/mob_spider.png
Diff not rendered.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file removed app/src/main/assets/npc_iceblock.png
Diff not rendered.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file removed app/src/main/assets/specks.png
Diff not rendered.
Binary file added app/src/main/assets/terrain/hazard_ice.png
Binary file added app/src/main/assets/terrain/hazard_ooze.png
Binary file added app/src/main/assets/terrain/hazard_rune.png
Binary file added app/src/main/assets/terrain/hazard_web.png
File renamed without changes
Binary file added app/src/main/assets/terrain/tiles0.png
Binary file added app/src/main/assets/terrain/tiles1.png
Binary file added app/src/main/assets/terrain/tiles2.png
Binary file added app/src/main/assets/terrain/tiles3.png
Binary file added app/src/main/assets/terrain/tiles4.png
Binary file added app/src/main/assets/terrain/traps.png
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file removed app/src/main/assets/tiles0.png
Diff not rendered.
Binary file removed app/src/main/assets/tiles1.png
Diff not rendered.
Binary file removed app/src/main/assets/tiles2.png
Diff not rendered.
Binary file removed app/src/main/assets/tiles3.png
Diff not rendered.
Binary file removed app/src/main/assets/tiles4.png
Diff not rendered.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added app/src/main/assets/visuals/buffs_large.png
Binary file added app/src/main/assets/visuals/buffs_small.png
Binary file added app/src/main/assets/visuals/effects.png
File renamed without changes
Binary file added app/src/main/assets/visuals/items.png
Binary file added app/src/main/assets/visuals/specks.png
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -535,11 +535,11 @@ public static void validateAllWandsIdentified() {

if ( Dungeon.difficulty > Difficulties.EASY && Dungeon.hero != null && Dungeon.hero.isAlive() &&
!local.contains( Badge.ALL_WANDS_IDENTIFIED ) && Wand.allKnown()) {

Badge badge = Badge.ALL_WANDS_IDENTIFIED;
local.add( badge );
displayBadge( badge );

validateAllItemsIdentified();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@ public static Item get() {
((Ring)item).syncGem();
}

if (item instanceof Wand) {
((Wand)item).syncWood();
}
// if (item instanceof Wand) {
// ((Wand)item).syncWood();
// }

return item;
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.Buff;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Blinded;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.special.Recharging;
import com.consideredhamster.yetanotherpixeldungeon.levels.painters.ShopPainter;
import com.watabou.noosa.Game;
import com.consideredhamster.yetanotherpixeldungeon.actors.Actor;
Expand Down Expand Up @@ -83,14 +84,15 @@ public class Dungeon {
public static int potionOfExperience;
public static int scrollsOfUpgrade;
public static int scrollsOfEnchantment;

public static int ankhs;
// public static int vials;
public static int wands;
public static int rings;
public static int ammos;

public static int bottles;
public static int scrolls;
public static int torches;
// public static boolean dewVial; // true if the dew vial can be spawned
public static int transmutation; // depth number for a well of transmutation

public static int challenges;
public static int difficulty;
Expand Down Expand Up @@ -137,14 +139,15 @@ public static void init() {
potionOfExperience = 0;
scrollsOfUpgrade = 0;
scrollsOfEnchantment = 0;

ankhs = 0;
// vials = 0;
wands = 0;
rings = 0;
ammos = 0;

bottles = 0;
scrolls = 0;
torches = 0;
// dewVial = true;
// transmutation = Random.IntRange( 6, 14 );

chapters = new HashSet<Integer>();

Expand All @@ -162,8 +165,9 @@ public static void init() {
QuickSlot.quickslotValue_3 = null;

hero = new Hero();
Buff.affect( hero, Satiety.class ).setValue( Satiety.MAXIMUM );

Buff.affect( hero, Satiety.class ).setValue( Satiety.MAXIMUM );
Buff.affect( hero, Recharging.class );

Badges.reset();

Expand Down Expand Up @@ -324,9 +328,6 @@ public static void switchLevel( final Level level, int pos ) {

hero.pos = pos != -1 ? pos : level.exit;

// Light light = hero.buff( Light.class );
// hero.viewDistance = light == null ? bonus.viewDistance : Math.max( Light.DISTANCE, bonus.viewDistance );

observe();
}

Expand Down Expand Up @@ -386,7 +387,19 @@ public static boolean ringsNeeded() {
public static boolean ammosNeeded() {
int[] quota = {1, 0, 5, 1, 11, 2, 17, 3, 23, 4, 29, 5};

return chance( quota, ammos);
return chance( quota, ammos );
}

public static boolean bottlesNeeded() {
int[] quota = {1, 0, 5, 1, 11, 2, 17, 3, 23, 4, 29, 5};

return chance( quota, bottles );
}

public static boolean scrollsNeeded() {
int[] quota = {1, 0, 5, 1, 11, 2, 17, 3, 23, 4, 29, 5};

return chance( quota, scrolls );
}

public static boolean torchesNeeded() {
Expand Down Expand Up @@ -437,6 +450,8 @@ private static boolean chance( int[] quota, int number ) {
private static final String WANDS = "wands";
private static final String RINGS = "rings";
private static final String AMMOS = "ammos";
private static final String BOTTLES = "bottles";
private static final String SCROLLS = "scrolls";
private static final String TORCHES = "torches";
private static final String WT = "transmutation";
private static final String CHAPTERS = "chapters";
Expand Down Expand Up @@ -488,13 +503,14 @@ public static void saveGame( String fileName ) throws IOException {
bundle.put( POE, potionOfExperience );
bundle.put( SOU, scrollsOfUpgrade );
bundle.put( SOE, scrollsOfEnchantment );
// bundle.put( DV, dewVial );
bundle.put( WT, transmutation );

bundle.put( ANKHS, ankhs );
// bundle.put( VIALS, vials );
bundle.put( WANDS, wands );
bundle.put( RINGS, rings );
bundle.put( AMMOS, ammos);
bundle.put( AMMOS, ammos );

bundle.put( BOTTLES, bottles );
bundle.put( SCROLLS, scrolls );
bundle.put( TORCHES, torches );

int count = 0;
Expand Down Expand Up @@ -602,14 +618,15 @@ public static void loadGame( String fileName, boolean fullLoad ) throws IOExcept
potionOfExperience = bundle.getInt( POE );
scrollsOfUpgrade = bundle.getInt( SOU );
scrollsOfEnchantment = bundle.getInt( SOE );
// dewVial = bundle.getBoolean( DV );
transmutation = bundle.getInt( WT );

ankhs = bundle.getInt( ANKHS );
// vials = bundle.getInt( VIALS );
wands = bundle.getInt( WANDS );
rings = bundle.getInt( RINGS );
ammos = bundle.getInt( AMMOS );
torches = bundle.getInt(TORCHES);

bottles = bundle.getInt( BOTTLES );
scrolls = bundle.getInt( SCROLLS );
torches = bundle.getInt( TORCHES );

if (fullLoad) {
chapters = new HashSet<Integer>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
import com.consideredhamster.yetanotherpixeldungeon.actors.Char;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Burning;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Corrosion;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Vertigo;
import com.consideredhamster.yetanotherpixeldungeon.actors.buffs.debuffs.Withered;
import com.consideredhamster.yetanotherpixeldungeon.levels.Level;
import com.consideredhamster.yetanotherpixeldungeon.misc.utils.GLog;
import com.consideredhamster.yetanotherpixeldungeon.visuals.effects.particles.FlameParticle;
import com.consideredhamster.yetanotherpixeldungeon.visuals.effects.particles.SparkParticle;
Expand All @@ -40,6 +42,10 @@ public abstract class Element {
public abstract int proc( Char target, int damage );

public static final Physical PHYSICAL = new Physical();
public static final Physical.Falling FALLING = new Physical.Falling();

public static final Knockback KNOCKBACK = new Knockback();
public static final Ensnaring ENSNARING = new Ensnaring();

public static final Flame FLAME = new Flame();
public static final Flame.Periodic FLAME_PERIODIC = new Flame.Periodic();
Expand All @@ -52,21 +58,14 @@ public abstract class Element {

public static final Mind MIND = new Mind();
public static final Body BODY = new Body();
public static final Dispel DISPEL = new Dispel();

public static final Frost FROST = new Frost();

public static final Dispel DISPEL = new Dispel();
public static final Energy ENERGY = new Energy();

public static final Unholy UNHOLY = new Unholy();
public static final Falling FALLING = new Falling();
public static final Doom DOOM = new Doom();

public static class Physical extends Element {

@Override
public int proc( Char target, int damage ) {
return damage;
}
}

public static class Flame extends Element {

Expand All @@ -78,7 +77,7 @@ public int proc( Char target, int damage ) {
}

if( Random.Float() < 0.5f ){
BuffActive.addFromDamage( target, Burning.class, damage );
BuffActive.addFromDamage( target, Burning.class, damage * 2 );
}

return damage;
Expand All @@ -99,23 +98,27 @@ public static class Shock extends Element {
@Override
public int proc( Char target, int damage ) {

Shocked buff = target.buff( Shocked.class );

if( buff != null ){

buff.discharge();

} else {

if( Random.Float() < 0.25f ){
BuffActive.addFromDamage( target, Shocked.class, damage * 2 );
}
if( !target.flying && Level.water[ target.pos ] ){
damage += ( damage / 2 + Random.Int( damage % 2 + 1 ) );
}

// if (target.sprite.visible) {
// target.sprite.centerEmitter().burst( SparkParticle.FACTORY, (int)Math.sqrt( damage ) + 1 );
// Shocked buff = target.buff( Shocked.class );
//
// if( buff != null ){
//
// buff.discharge();
//
// } else {
//
// if( Random.Float() < 0.25f ){
// BuffActive.addFromDamage( target, Shocked.class, damage * 2 );
// }

}
//
//// if (target.sprite.visible) {
//// target.sprite.centerEmitter().burst( SparkParticle.FACTORY, (int)Math.sqrt( damage ) + 1 );
//// }
//
// }

return damage;
}
Expand All @@ -140,7 +143,7 @@ public int proc( Char target, int damage ) {
}

if( Random.Float() < 0.75f ){
BuffActive.addFromDamage( target, Corrosion.class, damage * 3 );
BuffActive.addFromDamage( target, Corrosion.class, damage * 2 );
}

return damage;
Expand Down Expand Up @@ -228,17 +231,47 @@ public int proc( Char target, int damage ) {
}
}

public static class Falling extends Element {
public static class Doom extends Element {

@Override
public int proc( Char target, int damage ) {

// if( damage < target.HP ) {
return damage;

}
}


public static class Physical extends Element {

@Override
public int proc( Char target, int damage ){
return damage;
}

public static class Falling extends Physical {
@Override
public int proc( Char target, int damage ){
BuffActive.addFromDamage( target, Crippled.class, damage );
// }
return damage;
}
}
}

public static class Knockback extends Element {
@Override
public int proc( Char target, int damage ){
// not actually needed, because knockback deals physical damage
// maybe make some separate class from Element for such effects?
return damage;
}
}

public static class Ensnaring extends Element {
@Override
public int proc( Char target, int damage ){
// yeah, I guess I really should add a separate class for cases like these
return damage;
}
}

Expand All @@ -249,6 +282,31 @@ public static class Resist {
public static final float PARTIAL = 0.5f;
public static final float IMMUNE = 1.0f;

public static int modifyValue( int value, Char target, Element type ) {

float resist = Element.Resist.getResistance( target, type );

if( !Element.Resist.checkIfDefault( resist ) ) {

if ( Element.Resist.checkIfNegated( resist ) ) {

value = 0;

} else if ( Element.Resist.checkIfPartial( resist ) ) {

value = value / 2 + Random.Int( value % 2 + 1 );

} else if ( Element.Resist.checkIfAmplified( resist ) ) {

value = value * 3 / 2 + Random.Int( value % 2 + 1 );

}

}

return value;
}

public static float getResistance( Char target, Element type ) {

Float resistance = DEFAULT;
Expand Down
Loading

0 comments on commit f00be05

Please sign in to comment.