Jaysyn904 94990edc60 Initial Upload
Initial Upload
2023-09-21 21:20:34 -04:00

271 lines
7.5 KiB
Plaintext

int lcs_GetBaseArmorACValue(object oItem)
{
int armorAC = GetItemACValue(oItem);
if(GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS))
{
itemproperty iProp = GetFirstItemProperty(oItem);
while(GetItemPropertyType(iProp) != ITEM_PROPERTY_AC_BONUS)
{
iProp = GetNextItemProperty(oItem);
}
armorAC = armorAC - GetItemPropertyCostTableValue(iProp);
}
return armorAC;
}
string lcs_GetArmorPart2DAStringFromInt(int nPart)
{
switch(nPart)
{
case ITEM_APPR_ARMOR_MODEL_BELT: return "parts_belt";
case ITEM_APPR_ARMOR_MODEL_LBICEP: return "parts_bicep";
case ITEM_APPR_ARMOR_MODEL_LFOOT: return "parts_foot";
case ITEM_APPR_ARMOR_MODEL_LFOREARM: return "parts_forearm";
case ITEM_APPR_ARMOR_MODEL_LHAND: return "parts_hand";
case ITEM_APPR_ARMOR_MODEL_LSHIN: return "parts_shin";
case ITEM_APPR_ARMOR_MODEL_LSHOULDER: return "parts_shoulder";
case ITEM_APPR_ARMOR_MODEL_LTHIGH: return "parts_legs";
case ITEM_APPR_ARMOR_MODEL_NECK: return "parts_neck";
case ITEM_APPR_ARMOR_MODEL_PELVIS: return "parts_pelvis";
case ITEM_APPR_ARMOR_MODEL_RBICEP: return "parts_bicep";
case ITEM_APPR_ARMOR_MODEL_RFOOT: return "parts_foot";
case ITEM_APPR_ARMOR_MODEL_RFOREARM: return "parts_forearm";
case ITEM_APPR_ARMOR_MODEL_RHAND: return "parts_hand";
case ITEM_APPR_ARMOR_MODEL_ROBE: return "parts_robe";
case ITEM_APPR_ARMOR_MODEL_RSHIN: return "parts_shin";
case ITEM_APPR_ARMOR_MODEL_RSHOULDER: return "parts_shoulder";
case ITEM_APPR_ARMOR_MODEL_RTHIGH: return "parts_legs";
case ITEM_APPR_ARMOR_MODEL_TORSO: return "parts_chest";
default: return "";
}
return "";
}
int lcs_GetNextValidArmor2DALine(object oItem, int nPart)
{
int nAppearance = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nPart);
string sPart = lcs_GetArmorPart2DAStringFromInt(nPart);
if(nAppearance != 199)
{
nAppearance = nAppearance + 1;
}
else
{
nAppearance = 0;
}
string sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
if(nPart != ITEM_APPR_ARMOR_MODEL_TORSO)
{
while(sCurrent2DA == "")
{
if(nAppearance == 199)
{
nAppearance = 0;
}
else if(((nAppearance > 30) && (nAppearance < 150)) && (nPart == ITEM_APPR_ARMOR_MODEL_ROBE))
{
nAppearance = 150;
}
else if(((nAppearance < 100) && (nAppearance > 2)) && (nPart != ITEM_APPR_ARMOR_MODEL_ROBE))
{
nAppearance = 100;
}
else
{
nAppearance = nAppearance + 1;
}
sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
}
}
else
{
int nCurrentAC = lcs_GetBaseArmorACValue(oItem);
int nNewAC;
if(sCurrent2DA == "")
{
nNewAC = 10;
}
else
{
nNewAC = StringToInt(sCurrent2DA);
}
while((sCurrent2DA == "") || (nCurrentAC != nNewAC))
{
if(nAppearance == 199)
{
nAppearance = 0;
}
else if(((nAppearance < 100) && (nAppearance > 2)) && (sCurrent2DA == ""))
{
nAppearance = 100;
}
else if((nAppearance > 100) && (nCurrentAC > 0))
{
nAppearance = 0;
}
else
{
nAppearance = nAppearance + 1;
}
sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
if(sCurrent2DA == "")
{
nNewAC = 10;
}
else
{
nNewAC = StringToInt(sCurrent2DA);
}
}
}
return nAppearance;
}
int lcs_GetPreviousValidArmor2DALine(object oItem, int nPart)
{
int nAppearance = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nPart);
string sPart = lcs_GetArmorPart2DAStringFromInt(nPart);
if(nAppearance != 0)
{
nAppearance = nAppearance - 1;
}
else
{
nAppearance = 199;
}
string sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
if(nPart != ITEM_APPR_ARMOR_MODEL_TORSO)
{
while(sCurrent2DA == "")
{
if(nAppearance == 0)
{
nAppearance = 199;
}
else if(((nAppearance > 30) && (nAppearance < 150)) && (nPart == ITEM_APPR_ARMOR_MODEL_ROBE))
{
nAppearance = 30;
}
else
{
nAppearance = nAppearance - 1;
}
sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
}
}
else
{
int nCurrentAC = lcs_GetBaseArmorACValue(oItem);
int nNewAC;
if(sCurrent2DA == "")
{
nNewAC = 10;
}
else
{
nNewAC = StringToInt(sCurrent2DA);
}
while((sCurrent2DA == "") || (nCurrentAC != nNewAC))
{
if(nAppearance == 0)
{
nAppearance = 199;
}
else if((nCurrentAC > 0) && (nAppearance > 54))
{
nAppearance = 54;
}
else
{
nAppearance = nAppearance - 1;
}
sCurrent2DA = Get2DAString(sPart, "ACBONUS", nAppearance);
if(sCurrent2DA == "")
{
nNewAC = 10;
}
else
{
nNewAC = StringToInt(sCurrent2DA);
}
}
SendMessageToPC(GetItemPossessor(oItem), IntToString(nNewAC));
}
return nAppearance;
}
int lcs_GetNextValidColor(object oItem, int nPart)
{
int nAppearance = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nPart);
if(nAppearance == 63)
{
nAppearance = 0;
}
else
{
nAppearance = nAppearance + 1;
}
return nAppearance;
}
int lcs_GetPreviousValidColor(object oItem, int nPart)
{
int nAppearance = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nPart);
if(nAppearance == 0)
{
nAppearance = 63;
}
else
{
nAppearance = nAppearance - 1;
}
return nAppearance;
}
void lcs_ModifyandEquipNewArmor(object oItem, int nPart, int nAppearance)
{
object oPC = GetItemPossessor(oItem);
object oNewItem = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nPart, nAppearance);
DestroyObject(oItem);
SetCommandable(TRUE, oPC);
AssignCommand(oPC, ActionEquipItem(oNewItem, INVENTORY_SLOT_CHEST));
}
void lcs_ModifyTwiceandEquipNewArmor(object oItem, int nPart1, int nPart2, int nAppearance)
{
object oPC = GetItemPossessor(oItem);
object oNewItem = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, nPart1, nAppearance);
object oSecondNewItem = CopyItemAndModify(oNewItem, ITEM_APPR_TYPE_ARMOR_MODEL, nPart2, nAppearance);
DestroyObject(oItem);
DestroyObject(oNewItem);
SetCommandable(TRUE, oPC);
AssignCommand(oPC, ActionEquipItem(oSecondNewItem, INVENTORY_SLOT_CHEST));
}
void lcs_ModifyColorandEquipNewArmor(object oItem, int nPart, int nAppearance)
{
object oPC = GetItemPossessor(oItem);
object oNewItem = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_COLOR, nPart, nAppearance);
DestroyObject(oItem);
SetCommandable(TRUE, oPC);
AssignCommand(oPC, ActionEquipItem(oNewItem, INVENTORY_SLOT_CHEST));
}