Addition of PISTOLS weapon type and ELEMENTAL_ORB etcitem type.

This commit is contained in:
MobiusDevelopment 2021-02-26 02:21:10 +00:00
parent bad68718e8
commit 34fbf58418
9 changed files with 94 additions and 34 deletions

View File

@ -681,7 +681,7 @@
<item id="94860" name="Revolver" additionalName="Not available" type="Weapon">
<set name="icon" val="icon.weapon_sobekk_hurricane_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="material" val="ADAMANTAITE" />
@ -878,7 +878,7 @@
<item id="94880" name="Wooden Pistols" type="Weapon">
<set name="icon" val="icon.shooter_none" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
@ -897,7 +897,7 @@
<item id="94881" name="Brass Pistols" type="Weapon">
<set name="icon" val="icon.shooter_d" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="D" />
@ -918,7 +918,7 @@
<item id="94882" name="Flint Pistols" type="Weapon">
<set name="icon" val="icon.shooter_b_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="C" />
@ -939,7 +939,7 @@
<item id="94883" name="B-Class Firearms (Low-/ Mid-grade)" additionalName="Not available" type="Weapon">
<set name="icon" val="icon.weapon_scallop_jamadhr_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -960,7 +960,7 @@
<item id="94884" name="Volcano" type="Weapon">
<set name="icon" val="icon.shooter_b_high" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -981,7 +981,7 @@
<item id="94885" name="Scofield" type="Weapon">
<set name="icon" val="icon.shooter_a_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -1002,7 +1002,7 @@
<item id="94886" name="Zephyrus" type="Weapon">
<set name="icon" val="icon.shooter_a_high" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -1023,7 +1023,7 @@
<item id="94887" name="Boss' Firearms" additionalName="Not available" type="Weapon">
<set name="icon" val="icon.shooter_boss" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -1044,7 +1044,7 @@
<item id="94888" name="Anakim's Divine Pistols" type="Weapon">
<set name="icon" val="icon.shooter_boss_anakim" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -1064,7 +1064,7 @@
<item id="94889" name="Monster's Firearms (Low-grade)" type="Weapon">
<set name="icon" val="icon.weapon_chakram_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -1085,7 +1085,7 @@
<item id="94890" name="Monster's Firearms (High-grade)" type="Weapon">
<set name="icon" val="icon.weapon_bellion_cestus_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -1106,9 +1106,13 @@
<item id="94891" name="No-grade Elemental Orb" additionalName="Sealed" type="EtcItem">
<!-- An orb infused with the elemental spirit power. <Required for using No-grade firearms.> -->
<set name="icon" val="icon.orb_none" />
<set name="default_action" val="EQUIP" />
<set name="etcitem_type" val="ELEMENTAL_ORB" />
<set name="bodypart" val="lhand" />
<set name="immediate_effect" val="true" />
<set name="material" val="GOLD" />
<set name="price" val="100000" />
<set name="is_infinite" val="true" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
@ -1116,10 +1120,14 @@
<item id="94892" name="D-grade Elemental Orb" additionalName="Sealed" type="EtcItem">
<!-- An orb infused with the elemental spirit power. <Required for using D-grade firearms.> -->
<set name="icon" val="icon.orb_d" />
<set name="default_action" val="EQUIP" />
<set name="etcitem_type" val="ELEMENTAL_ORB" />
<set name="bodypart" val="lhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="D" />
<set name="material" val="GOLD" />
<set name="price" val="200000" />
<set name="is_infinite" val="true" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
@ -1127,10 +1135,14 @@
<item id="94893" name="C-grade Elemental Orb" additionalName="Sealed" type="EtcItem">
<!-- An orb infused with the elemental spirit power. <Required for using C-grade firearms.> -->
<set name="icon" val="icon.orb_c" />
<set name="default_action" val="EQUIP" />
<set name="etcitem_type" val="ELEMENTAL_ORB" />
<set name="bodypart" val="lhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="C" />
<set name="material" val="GOLD" />
<set name="price" val="300000" />
<set name="is_infinite" val="true" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
@ -1138,10 +1150,14 @@
<item id="94894" name="B-grade Elemental Orb" additionalName="Sealed" type="EtcItem">
<!-- An orb infused with the elemental spirit power. <Required for using B-grade firearms.> -->
<set name="icon" val="icon.orb_b" />
<set name="default_action" val="EQUIP" />
<set name="etcitem_type" val="ELEMENTAL_ORB" />
<set name="bodypart" val="lhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
<set name="material" val="GOLD" />
<set name="price" val="500000" />
<set name="is_infinite" val="true" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
@ -1149,10 +1165,14 @@
<item id="94895" name="A-grade Elemental Orb" additionalName="Sealed" type="EtcItem">
<!-- An orb infused with the elemental spirit power. <Required for using A-grade firearms.> -->
<set name="icon" val="icon.orb_a" />
<set name="default_action" val="EQUIP" />
<set name="etcitem_type" val="ELEMENTAL_ORB" />
<set name="bodypart" val="lhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
<set name="material" val="GOLD" />
<set name="price" val="1000000" />
<set name="is_infinite" val="true" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
@ -1175,7 +1195,7 @@
<item id="94897" name="Aden Pistols" type="Weapon">
<set name="icon" val="icon.shooter_d" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="D" />

View File

@ -181,7 +181,7 @@
<item id="95410" name="Young Knight's Pistols" type="Weapon">
<set name="icon" val="icon.shooter_none" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
@ -233,7 +233,7 @@
<item id="95414" name="Wooden Pistols" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_none" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
@ -255,7 +255,7 @@
<item id="95415" name="Brass Pistols" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_d" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="D" />
@ -278,7 +278,7 @@
<item id="95416" name="Flint Pistols" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_b_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="C" />
@ -301,7 +301,7 @@
<item id="95417" name="B-Class Firearms (Low-/ Mid-grade)" additionalName="Not available" type="Weapon">
<set name="icon" val="icon.weapon_scallop_jamadhr_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -325,7 +325,7 @@
<item id="95418" name="Volcano" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_b_high" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -349,7 +349,7 @@
<item id="95419" name="Scofield" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_a_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -373,7 +373,7 @@
<item id="95420" name="Zephyrus" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_a_high" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -397,7 +397,7 @@
<item id="95421" name="Boss' Firearms" additionalName="Not available" type="Weapon">
<set name="icon" val="icon.shooter_boss" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -421,7 +421,7 @@
<item id="95422" name="Anakim's Divine Pistols" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.shooter_boss_anakim" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -445,7 +445,7 @@
<item id="95423" name="Monster's Firearms (Low-grade)" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_chakram_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -467,7 +467,7 @@
<item id="95424" name="Monster's Firearms (High-grade)" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_bellion_cestus_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="A" />
@ -760,7 +760,7 @@
<!-- <Equipping effect for pets> Increases P./ M. Atk. <How to acquire> Plains of the Lizardmen Purge -->
<set name="icon" val="icon.shooter_monster_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />
@ -1096,7 +1096,7 @@
<!-- <Equipping effect for pets> Increases P./ M. Atk. <How to acquire> Plains of the Lizardmen Purge -->
<set name="icon" val="icon.shooter_monster_low" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="B" />

View File

@ -1025,7 +1025,7 @@
<item id="95698" name="Emerald Weapon: Firearms" type="Weapon">
<set name="icon" val="icon.beam_shooter" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="TWOHANDCROSSBOW" /> <!-- 25 -->
<set name="weapon_type" val="PISTOLS" />
<set name="bodypart" val="lrhand" />
<set name="immediate_effect" val="true" />
<set name="crystal_type" val="D" />

View File

@ -1042,12 +1042,19 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
if (isPlayer())
{
// Check if there are arrows to use or else cancel the attack.
if (!checkAndEquipAmmunition(weaponItem.getItemType().isCrossbow() ? EtcItemType.BOLT : EtcItemType.ARROW))
if (!checkAndEquipAmmunition(weaponItem.getItemType().isPistols() ? EtcItemType.ELEMENTAL_ORB : weaponItem.getItemType().isCrossbow() ? EtcItemType.BOLT : EtcItemType.ARROW))
{
// Cancel the action because the PlayerInstance have no arrow
getAI().setIntention(AI_INTENTION_ACTIVE);
sendPacket(ActionFailed.STATIC_PACKET);
if (weaponItem.getItemType().isPistols())
{
sendPacket(SystemMessageId.YOU_CANNOT_ATTACK_BECAUSE_YOU_DON_T_HAVE_AN_ELEMENTAL_ORB);
}
else
{
sendPacket(SystemMessageId.YOU_HAVE_RUN_OUT_OF_ARROWS);
}
return;
}

View File

@ -5789,6 +5789,10 @@ public class PlayerInstance extends Playable
{
arrows = _inventory.findBoltForCrossBow(weapon);
}
else if (type == EtcItemType.ELEMENTAL_ORB)
{
arrows = _inventory.findElementalOrbForPistols(weapon);
}
if (arrows != null)
{
// Equip arrows needed in left hand

View File

@ -2132,6 +2132,27 @@ public abstract class Inventory extends ItemContainer
return bolt;
}
/**
* Return the ItemInstance of the bolts needed for these pistols.
* @param pistols : Item designating the pistols
* @return ItemInstance pointing out elemental orb for pistols
*/
public ItemInstance findElementalOrbForPistols(Item pistols)
{
ItemInstance orb = null;
for (ItemInstance item : getItems())
{
if (item.isEtcItem() && (item.getItem().getCrystalTypePlus() == pistols.getCrystalTypePlus()) && (item.getEtcItem().getItemType() == EtcItemType.ELEMENTAL_ORB))
{
orb = item;
break;
}
}
// Get the ItemInstance corresponding to the item identifier and return it
return orb;
}
/**
* Get back items in inventory from database
*/

View File

@ -92,7 +92,8 @@ public enum EtcItemType implements ItemType
MULTI_INC_PROB_ENCHT_WP,
MULTI_INC_PROB_ENCHT_AM,
SOUL_CRYSTAL,
ENSOUL_STONE;
ENSOUL_STONE,
ELEMENTAL_ORB;
/**
* @return the ID of the item after applying the mask.

View File

@ -42,7 +42,8 @@ public enum WeaponType implements ItemType
DUALDAGGER(TraitType.DUALDAGGER),
OWNTHING(TraitType.NONE), // 0 items with that type
TWOHANDCROSSBOW(TraitType.TWOHANDCROSSBOW),
DUALBLUNT(TraitType.DUALBLUNT);
DUALBLUNT(TraitType.DUALBLUNT),
PISTOLS(TraitType.PISTOLS);
private final int _mask;
private final TraitType _traitType;
@ -76,7 +77,7 @@ public enum WeaponType implements ItemType
public boolean isRanged()
{
return (this == BOW) || (this == CROSSBOW) || (this == TWOHANDCROSSBOW);
return (this == BOW) || (this == CROSSBOW) || (this == TWOHANDCROSSBOW) || (this == PISTOLS);
}
public boolean isCrossbow()
@ -84,6 +85,11 @@ public enum WeaponType implements ItemType
return (this == CROSSBOW) || (this == TWOHANDCROSSBOW);
}
public boolean isPistols()
{
return (this == PISTOLS);
}
public boolean isDual()
{
return (this == DUALFIST) || (this == DUAL) || (this == DUALDAGGER) || (this == DUALBLUNT);

View File

@ -88,7 +88,8 @@ public enum TraitType
ZONE(3),
PSYCHIC(3),
EMBRYO_WEAKNESS(2),
SPIRIT_WEAKNESS(2);
SPIRIT_WEAKNESS(2),
PISTOLS(1);
private final int _type; // 1 = weapon, 2 = weakness, 3 = resistance
private static final List<TraitType> _weaknesses = new ArrayList<>();