v2.0.0: added a unique starting thrown weapon for the duelist
This commit is contained in:
@@ -507,7 +507,7 @@ actors.hero.heroclass.huntress_unlock=To unlock the Huntress _hit enemies with t
|
|||||||
|
|
||||||
actors.hero.heroclass.duelist=Duelist
|
actors.hero.heroclass.duelist=Duelist
|
||||||
actors.hero.heroclass.duelist_desc_short=The Duelist is a weapons master who can use her weapon to trigger a _special weapon ability._ This special ability is _different for every weapon._
|
actors.hero.heroclass.duelist_desc_short=The Duelist is a weapons master who can use her weapon to trigger a _special weapon ability._ This special ability is _different for every weapon._
|
||||||
actors.hero.heroclass.duelist_desc=The Duelist starts with a _unique rapier_ with a special ability that recharges over time.\n\nEvery weapon in the game has a _different special ability_ that the Duelist can use.\n\nThe duelist also starts with _three throwing knives_, cloth armor, a waterskin, and a velvet pouch.\n\nThe Duelist automatically identifies:\n_-_ Scrolls of Identify\n_-_ Potions of Strength\n_-_ Scrolls of Mirror Image
|
actors.hero.heroclass.duelist_desc=The Duelist starts with a _unique rapier_ with a special ability that recharges over time.\n\nEvery weapon in the game has a _different special ability_ that the Duelist can use.\n\nThe duelist also starts with _two throwing spikes_, cloth armor, a waterskin, and a velvet pouch.\n\nThe Duelist automatically identifies:\n_-_ Scrolls of Identify\n_-_ Potions of Strength\n_-_ Scrolls of Mirror Image
|
||||||
actors.hero.heroclass.duelist_unlock=To unlock the Duelist _equip a tier 2 or higher weapon with no strength penalty._
|
actors.hero.heroclass.duelist_unlock=To unlock the Duelist _equip a tier 2 or higher weapon with no strength penalty._
|
||||||
|
|
||||||
actors.hero.herosubclass.berserker=berserker
|
actors.hero.herosubclass.berserker=berserker
|
||||||
|
|||||||
@@ -1785,6 +1785,9 @@ items.weapon.missiles.throwingknife.desc=These lightweight knives are balanced t
|
|||||||
items.weapon.missiles.throwingspear.name=throwing spear
|
items.weapon.missiles.throwingspear.name=throwing spear
|
||||||
items.weapon.missiles.throwingspear.desc=These lightweight spears have thin frames which are clearly designed to be thrown, and not thrusted.
|
items.weapon.missiles.throwingspear.desc=These lightweight spears have thin frames which are clearly designed to be thrown, and not thrusted.
|
||||||
|
|
||||||
|
items.weapon.missiles.throwingspike.name=throwing spike
|
||||||
|
items.weapon.missiles.throwingspike.desc=These pointed shafts of metal are meant to be thrown into distant enemies. While they aren't very strong, their simple all-metal construction makes them reasonably durable.
|
||||||
|
|
||||||
items.weapon.missiles.throwingstone.name=throwing stone
|
items.weapon.missiles.throwingstone.name=throwing stone
|
||||||
items.weapon.missiles.throwingstone.desc=These stones are sanded down to make them able to be thrown with more power than a regular stone. Despite the craftsmanship, they still aren't a very reliable weapon.
|
items.weapon.missiles.throwingstone.desc=These stones are sanded down to make them able to be thrown with more power than a regular stone. Despite the craftsmanship, they still aren't a very reliable weapon.
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
+4
-3
@@ -68,6 +68,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Rapier;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Rapier;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.watabou.utils.DeviceCompat;
|
import com.watabou.utils.DeviceCompat;
|
||||||
@@ -216,11 +217,11 @@ public enum HeroClass {
|
|||||||
(hero.belongings.weapon = new Rapier()).identify();
|
(hero.belongings.weapon = new Rapier()).identify();
|
||||||
hero.belongings.weapon.activate(hero);
|
hero.belongings.weapon.activate(hero);
|
||||||
|
|
||||||
ThrowingKnife knives = new ThrowingKnife();
|
ThrowingSpike spikes = new ThrowingSpike();
|
||||||
knives.quantity(3).collect();
|
spikes.quantity(2).collect();
|
||||||
|
|
||||||
Dungeon.quickslot.setSlot(0, hero.belongings.weapon);
|
Dungeon.quickslot.setSlot(0, hero.belongings.weapon);
|
||||||
Dungeon.quickslot.setSlot(1, knives);
|
Dungeon.quickslot.setSlot(1, spikes);
|
||||||
|
|
||||||
new PotionOfStrength().identify();
|
new PotionOfStrength().identify();
|
||||||
new ScrollOfMirrorImage().identify();
|
new ScrollOfMirrorImage().identify();
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingCl
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingHammer;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingHammer;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Tomahawk;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Tomahawk;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
||||||
@@ -411,7 +412,8 @@ public class Generator {
|
|||||||
|
|
||||||
MIS_T1.classes = new Class<?>[]{
|
MIS_T1.classes = new Class<?>[]{
|
||||||
ThrowingStone.class,
|
ThrowingStone.class,
|
||||||
ThrowingKnife.class
|
ThrowingKnife.class,
|
||||||
|
ThrowingSpike.class
|
||||||
};
|
};
|
||||||
MIS_T1.probs = new float[]{ 6, 5 };
|
MIS_T1.probs = new float[]{ 6, 5 };
|
||||||
|
|
||||||
|
|||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Pixel Dungeon
|
||||||
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
|
*
|
||||||
|
* Shattered Pixel Dungeon
|
||||||
|
* Copyright (C) 2014-2022 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.weapon.missiles;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
|
||||||
|
public class ThrowingSpike extends MissileWeapon {
|
||||||
|
|
||||||
|
{
|
||||||
|
image = ItemSpriteSheet.THROWING_SPIKE;
|
||||||
|
hitSound = Assets.Sounds.HIT_STAB;
|
||||||
|
hitSoundPitch = 1.2f;
|
||||||
|
|
||||||
|
bones = false;
|
||||||
|
|
||||||
|
tier = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+18
-17
@@ -272,10 +272,10 @@ public class ItemSpriteSheet {
|
|||||||
|
|
||||||
//8 free slots
|
//8 free slots
|
||||||
|
|
||||||
private static final int MISSILE_WEP = xy(1, 10); //16 slots. 3 per tier + boomerang
|
private static final int MISSILE_WEP = xy(1, 10); //16 slots. 3 per tier + bow
|
||||||
public static final int SPIRIT_BOW = MISSILE_WEP+0;
|
public static final int SPIRIT_BOW = MISSILE_WEP+0;
|
||||||
|
|
||||||
public static final int DART = MISSILE_WEP+1;
|
public static final int THROWING_SPIKE = MISSILE_WEP+1;
|
||||||
public static final int THROWING_KNIFE = MISSILE_WEP+2;
|
public static final int THROWING_KNIFE = MISSILE_WEP+2;
|
||||||
public static final int THROWING_STONE = MISSILE_WEP+3;
|
public static final int THROWING_STONE = MISSILE_WEP+3;
|
||||||
|
|
||||||
@@ -298,7 +298,7 @@ public class ItemSpriteSheet {
|
|||||||
static{
|
static{
|
||||||
assignItemRect(SPIRIT_BOW, 16, 16);
|
assignItemRect(SPIRIT_BOW, 16, 16);
|
||||||
|
|
||||||
assignItemRect(DART, 15, 15);
|
assignItemRect(THROWING_SPIKE, 11, 10);
|
||||||
assignItemRect(THROWING_KNIFE, 12, 13);
|
assignItemRect(THROWING_KNIFE, 12, 13);
|
||||||
assignItemRect(THROWING_STONE, 12, 10);
|
assignItemRect(THROWING_STONE, 12, 10);
|
||||||
|
|
||||||
@@ -319,21 +319,22 @@ public class ItemSpriteSheet {
|
|||||||
assignItemRect(FORCE_CUBE, 11, 12);
|
assignItemRect(FORCE_CUBE, 11, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final int TIPPED_DARTS = xy(1, 11); //16 slots
|
public static final int DARTS = xy(1, 11); //16 slots
|
||||||
public static final int ROT_DART = TIPPED_DARTS+0;
|
public static final int DART = DARTS+0;
|
||||||
public static final int INCENDIARY_DART = TIPPED_DARTS+1;
|
public static final int ROT_DART = DARTS+1;
|
||||||
public static final int ADRENALINE_DART = TIPPED_DARTS+2;
|
public static final int INCENDIARY_DART = DARTS+2;
|
||||||
public static final int HEALING_DART = TIPPED_DARTS+3;
|
public static final int ADRENALINE_DART = DARTS+3;
|
||||||
public static final int CHILLING_DART = TIPPED_DARTS+4;
|
public static final int HEALING_DART = DARTS+4;
|
||||||
public static final int SHOCKING_DART = TIPPED_DARTS+5;
|
public static final int CHILLING_DART = DARTS+5;
|
||||||
public static final int POISON_DART = TIPPED_DARTS+6;
|
public static final int SHOCKING_DART = DARTS+6;
|
||||||
public static final int CLEANSING_DART = TIPPED_DARTS+7;
|
public static final int POISON_DART = DARTS+7;
|
||||||
public static final int PARALYTIC_DART = TIPPED_DARTS+8;
|
public static final int CLEANSING_DART = DARTS+8;
|
||||||
public static final int HOLY_DART = TIPPED_DARTS+9;
|
public static final int PARALYTIC_DART = DARTS+9;
|
||||||
public static final int DISPLACING_DART = TIPPED_DARTS+10;
|
public static final int HOLY_DART = DARTS+10;
|
||||||
public static final int BLINDING_DART = TIPPED_DARTS+11;
|
public static final int DISPLACING_DART = DARTS+11;
|
||||||
|
public static final int BLINDING_DART = DARTS+12;
|
||||||
static {
|
static {
|
||||||
for (int i = TIPPED_DARTS; i < TIPPED_DARTS+16; i++)
|
for (int i = DARTS; i < DARTS+16; i++)
|
||||||
assignItemRect(i, 15, 15);
|
assignItemRect(i, 15, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Kunai;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpear;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingSpike;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Trident;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
|
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
|
||||||
@@ -90,6 +91,7 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
|
|||||||
static {
|
static {
|
||||||
ANGULAR_SPEEDS.put(Dart.class, 0);
|
ANGULAR_SPEEDS.put(Dart.class, 0);
|
||||||
ANGULAR_SPEEDS.put(ThrowingKnife.class, 0);
|
ANGULAR_SPEEDS.put(ThrowingKnife.class, 0);
|
||||||
|
ANGULAR_SPEEDS.put(ThrowingSpike.class, 0);
|
||||||
ANGULAR_SPEEDS.put(FishingSpear.class, 0);
|
ANGULAR_SPEEDS.put(FishingSpear.class, 0);
|
||||||
ANGULAR_SPEEDS.put(ThrowingSpear.class, 0);
|
ANGULAR_SPEEDS.put(ThrowingSpear.class, 0);
|
||||||
ANGULAR_SPEEDS.put(Kunai.class, 0);
|
ANGULAR_SPEEDS.put(Kunai.class, 0);
|
||||||
|
|||||||
+1
-1
@@ -195,7 +195,7 @@ public class WndHeroInfo extends WndTabbed {
|
|||||||
case DUELIST:
|
case DUELIST:
|
||||||
icons = new Image[]{ new ItemSprite(ItemSpriteSheet.RAPIER),
|
icons = new Image[]{ new ItemSprite(ItemSpriteSheet.RAPIER),
|
||||||
new ItemSprite(ItemSpriteSheet.WAR_HAMMER),
|
new ItemSprite(ItemSpriteSheet.WAR_HAMMER),
|
||||||
new ItemSprite(ItemSpriteSheet.THROWING_KNIFE),
|
new ItemSprite(ItemSpriteSheet.THROWING_SPIKE),
|
||||||
new ItemSprite(ItemSpriteSheet.SCROLL_ISAZ)};
|
new ItemSprite(ItemSpriteSheet.SCROLL_ISAZ)};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user