Jaysyn904 86feb9ca6f Initial commit
Initial commit.
2024-06-05 21:21:06 -04:00

44 lines
1.6 KiB
Plaintext

#include "ipi_constants"
#include "ipi_defaults"
#include "ipi_datemath_inc"
#include "pf_facade"
int GetRentalCost(object oInn, int iBaseRate, int iNumDays)
{
int rateFactor = 1; // Assume rates are daily
int ratePeriod = GetWillSavingThrow(oInn);
if (ratePeriod == DAILY_RATE) rateFactor = 1;
else if (ratePeriod == WEEKLY_RATE) rateFactor = DAYS_PER_WEEK;
else if (ratePeriod == MONTHLY_RATE) rateFactor = DAYS_PER_MONTH;
else if (ratePeriod == YEARLY_RATE)
rateFactor = DAYS_PER_MONTH * MONTHS_PER_YEAR;
return (iBaseRate * iNumDays) / rateFactor;
}
// Rents the first available room in the class with number equal
// to OBJECT_SELF's LocalString CHOSENCLASS_VAR to the PCSpeaker()
// at cost determined by OBJECT_SELF's LocalString TOTALCOST_VAR
void RentChosenRoom(int nDays)
{
// Get my Inn object
string sInnPrefix = GetStringRight(GetTag(OBJECT_SELF),2);
object myInn = GetObjectByTag(sPREFIX + sInnPrefix);
object oPC = GetPCSpeaker();
string sPCKey = GetName(oPC) + GetPCPlayerName(oPC);
int iRoomNum = GetLocalInt(OBJECT_SELF, FIRSTROOMINCLASS_VAR +
IntToString(iClassNum));
string sTenantVar = "Rm" + IntToStringPad3(iRoomNum) + "Tenant";
SetPFCampaignString(sCampaignName, sTenantVar, sPCKey, myInn);
// Deduct the rent
string doorTag = sPREFIX + sInnPrefix + "_RM" + IntToStringPad3(iRoomNum);
object thisDoor = GetObjectByTag(doorTag);
int totalCost = GetRentalCost(myInn, GetReflexSavingThrow(thisDoor), nDays);
TakeGoldFromCreature(totalCost, oPC, TRUE);
SetCustomToken(190, GetName(thisDoor));
// Set the contract expiration
}