Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef380d9efb | ||
|
|
f319be6dec |
4328
PRC8_ChangeLog.txt
Normal file
4328
PRC8_ChangeLog.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -27,8 +27,8 @@
|
||||
23 16828848 Anarchic_Power 16828849 M 21 *_*_*_C_* **** **** 3223_*_*_*_*_* 8 **** 1 17_2_31_8 48_17_70_1 **** **** **** **** 1 ****
|
||||
24 16828826 Axiomatic 16828827 M 7 *_*_*_L_* **** **** 76_*_*_*_*_* 2 **** **** 17_3_10_8 **** **** **** **** **** 0 ****
|
||||
25 16828850 Axiomatic_Power 16828851 M 21 *_*_*_L_* **** **** 3222_*_*_*_*_* 8 **** 1 17_3_31_8 48_17_70_1 **** **** **** **** 1 ****
|
||||
26 16828828 Bane 16828829 M 8 **** **** **** 174_*_*_*_*_* 1 **** **** 18_*_10_4 8_*_2_* **** **** **** **** 0 1
|
||||
27 16828852 Dread 16828853 M 22 **** **** **** 178_*_*_*_*_* 7 **** 1 18_*_32_4 8_*_4_* 48_21_27_* **** **** **** 1 1
|
||||
26 16828828 Bane 16828829 M 8 **** **** **** 174_*_*_*_*_* 1 **** **** 18_*_10_4 **** **** **** **** **** 0 1
|
||||
27 16828852 Dread 16828853 M 22 **** **** **** 178_*_*_*_*_* 7 **** 1 18_*_32_4 48_21_27_* **** **** **** **** 1 1
|
||||
28 16828830 Disruption 16828831 M 14 **** **** **** 79_*_*_*_*_* 2 **** **** 48_21_0_24 **** **** **** **** **** 0 1
|
||||
29 16828862 Mighty_Disruption 16828863 M 21 **** **** **** 1855_*_*_*_*_* 6 **** 1 48_21_21_24 **** **** **** **** **** 1 1
|
||||
30 16828832 Flaming 16828833 M 10 **** **** **** *_*_*_542_58_61 1 **** **** 16_10_7_* **** **** **** **** **** 0 ****
|
||||
|
||||
@@ -1912,7 +1912,10 @@ void MakeMasterwork(object oItem)
|
||||
|
||||
void MakeAdamantine(object oItem)
|
||||
{
|
||||
if(GetPlotFlag(oItem)) return; //sanity check
|
||||
if(GetPlotFlag(oItem)) return; //sanity check
|
||||
|
||||
itemproperty ip;
|
||||
|
||||
if(GetBaseItemType(oItem) == BASE_ITEM_ARMOR)
|
||||
{
|
||||
int nBonus = 0;
|
||||
@@ -1929,7 +1932,7 @@ void MakeAdamantine(object oItem)
|
||||
}
|
||||
if(nBonus)
|
||||
{
|
||||
itemproperty ip = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nBonus);
|
||||
ip = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nBonus);
|
||||
ip = TagItemProperty(ip, "Material_Adamantine");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
@@ -1939,21 +1942,21 @@ void MakeAdamantine(object oItem)
|
||||
|
||||
ip = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING, nBonus);
|
||||
ip = TagItemProperty(ip, "Material_Adamantine");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
ip = ItemPropertyMaterial(IP_MATERIAL_ADAMANTINE);
|
||||
ip = TagItemProperty(ip, "Material_Adamantine");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ip = ItemPropertyMaterial(IP_MATERIAL_ADAMANTINE);
|
||||
ip = TagItemProperty(ip, "Material_Adamantine");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
}
|
||||
|
||||
void MakeDarkwood(object oItem)
|
||||
{
|
||||
if(GetPlotFlag(oItem)) return; //sanity check
|
||||
|
||||
itemproperty ip = ItemPropertyWeightReduction(IP_CONST_REDUCEDWEIGHT_50_PERCENT);
|
||||
ip = TagItemProperty(ip, "Material_Darkwood");
|
||||
itemproperty ip = ItemPropertyWeightReduction(IP_CONST_REDUCEDWEIGHT_50_PERCENT);
|
||||
ip = TagItemProperty(ip, "Material_Darkwood");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
|
||||
int nBase = GetBaseItemType(oItem);
|
||||
@@ -1996,11 +1999,11 @@ void MakeDarkwood(object oItem)
|
||||
ip = ItemPropertySkillBonus(SKILL_JUMP, nBonus);
|
||||
ip = TagItemProperty(ip, "Material_Darkwood");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
ip = ItemPropertyMaterial(IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR);
|
||||
ip = TagItemProperty(ip, "Material_Darkwood");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
}
|
||||
|
||||
ip = ItemPropertyMaterial(IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR);
|
||||
ip = TagItemProperty(ip, "Material_Darkwood");
|
||||
IPSafeAddItemProperty(oItem, ip, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
}
|
||||
|
||||
void MakeDragonhide(object oItem)
|
||||
|
||||
@@ -2,38 +2,105 @@
|
||||
|
||||
#include "prc_craft_inc"
|
||||
|
||||
//:: Assumes only one bane/dread can be applied
|
||||
void BaneCheck(object oItem)
|
||||
{
|
||||
if(!GetIsObjectValid(oItem))
|
||||
return;
|
||||
|
||||
itemproperty ipDread, ipBane;
|
||||
int bDread = FALSE, bBane = FALSE;
|
||||
ipBane = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_2d6);
|
||||
bBane = GetIsItemPropertyValid(ipBane);
|
||||
if(!bBane)
|
||||
{ //don't want to search through itemprops again
|
||||
ipDread = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_4d6);
|
||||
bDread = GetIsItemPropertyValid(ipDread);
|
||||
}
|
||||
if(bBane || bDread)
|
||||
{
|
||||
int nRace, nBonus;
|
||||
int nEnhance = IPGetWeaponEnhancementBonus(oItem);
|
||||
if(bBane)
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipBane);
|
||||
}
|
||||
else
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipDread);
|
||||
}
|
||||
//Refresh enhancement bonuses in case of item upgrade
|
||||
SetCompositeBonusT(oItem, "BaseEnhancementRace", nEnhance, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
SetCompositeBonusT(oItem, "BaneEnhancement", (bDread) ? 4 : 2, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
}
|
||||
//:: Assumes only one bane/dread can be applied
|
||||
//:: Assumes only one bane/dread can be applied
|
||||
void BaneCheck(object oItem)
|
||||
{
|
||||
if(!GetIsObjectValid(oItem))
|
||||
return;
|
||||
|
||||
itemproperty ipDread, ipBane;
|
||||
int bDread = FALSE, bBane = FALSE;
|
||||
ipBane = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_2d6);
|
||||
bBane = GetIsItemPropertyValid(ipBane);
|
||||
if(!bBane)
|
||||
{
|
||||
ipDread = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_4d6);
|
||||
bDread = GetIsItemPropertyValid(ipDread);
|
||||
}
|
||||
if(bBane || bDread)
|
||||
{
|
||||
int nRace;
|
||||
if(bBane)
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipBane);
|
||||
}
|
||||
else
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipDread);
|
||||
}
|
||||
|
||||
// Check if weapon already has permanent enhancement vs this race
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
int bHasExistingRacialEnhance = FALSE;
|
||||
while(GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if(GetItemPropertyType(ip) == ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP &&
|
||||
GetItemPropertySubType(ip) == nRace &&
|
||||
GetItemPropertyDurationType(ip) == DURATION_TYPE_PERMANENT)
|
||||
{
|
||||
bHasExistingRacialEnhance = TRUE;
|
||||
break;
|
||||
}
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
// Skip BaneCheck if weapon already has permanent racial enhancement
|
||||
if(bHasExistingRacialEnhance)
|
||||
return;
|
||||
|
||||
// Get only base enhancement bonus
|
||||
int nEnhance = 0;
|
||||
ip = GetFirstItemProperty(oItem);
|
||||
while(GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if(GetItemPropertyType(ip) == ITEM_PROPERTY_ENHANCEMENT_BONUS &&
|
||||
GetItemPropertyDurationType(ip) == DURATION_TYPE_PERMANENT)
|
||||
{
|
||||
nEnhance = GetItemPropertyCostTableValue(ip);
|
||||
break;
|
||||
}
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
//Refresh enhancement bonuses in case of item upgrade
|
||||
SetCompositeBonusT(oItem, "BaseEnhancementRace", nEnhance, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
SetCompositeBonusT(oItem, "BaneEnhancement", (bDread) ? 4 : 2, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
}
|
||||
}
|
||||
/* void BaneCheck(object oItem)
|
||||
{
|
||||
if(!GetIsObjectValid(oItem))
|
||||
return;
|
||||
|
||||
itemproperty ipDread, ipBane;
|
||||
int bDread = FALSE, bBane = FALSE;
|
||||
ipBane = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_2d6);
|
||||
bBane = GetIsItemPropertyValid(ipBane);
|
||||
if(!bBane)
|
||||
{ //don't want to search through itemprops again
|
||||
ipDread = GetSpecificProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP, -1, IP_CONST_DAMAGEBONUS_4d6);
|
||||
bDread = GetIsItemPropertyValid(ipDread);
|
||||
}
|
||||
if(bBane || bDread)
|
||||
{
|
||||
int nRace, nBonus;
|
||||
//int nEnhance = IPGetWeaponEnhancementBonus(oItem);
|
||||
int nEnhance = IPGetWeaponEnhancementBonus(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS, TRUE);
|
||||
|
||||
if(bBane)
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipBane);
|
||||
}
|
||||
else
|
||||
{
|
||||
nRace = GetItemPropertySubType(ipDread);
|
||||
}
|
||||
//Refresh enhancement bonuses in case of item upgrade
|
||||
SetCompositeBonusT(oItem, "BaseEnhancementRace", nEnhance, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
SetCompositeBonusT(oItem, "BaneEnhancement", (bDread) ? 4 : 2, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP, nRace);
|
||||
}
|
||||
} */
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user