You can create a freelance companion, which requires some amount of a money to recruit them.
Upgrade your companion to freelancer
Just define the field Price
in your companion's disposition file and set it to a value higher than zero.
This value represents a price which player must to pay to recruit them.
Don't forget define dialogue line under key companionRejectedMoney
in standard NPC dialogue
asset resource Dialogues/<NpcName>
or in i18n/<lang>.json
via dialogue_<NpcName>.companionRejectedMoney
for your freelance companion.
Define sales
You are able to define some price tweaks (sales) by the Sales
field. It's similar to the Rules,
it contains a condition as a key and the value is the price modifier decimal number.
This number means how much the base price by the Price
field is increased (the number is higher than 1)
or decreased (the price is less than 1 but higher than 0). If you specify the zero as a sale value,
it means your freelance can be recruited for free. The condition in key represents when the sale can be applied.
Matching these rules uses the same mechanism as the recruitment rules.
Example of a freelance companion
{
"Name": "Kent",
"Skills": [
{
"Name": "shooter",
"Damage": 6
},
{
"Name": "fighter",
"Strength": 1.2,
"DefendRadius": 7,
"ExtraStrength": 10,
"Speed": 2.0,
"IsWarrior": true
}
],
"UnlockMail": "na_kent_companion", // Unlocked by NA's Kent 5 heart event (it adds this mail flag)
"Rules": {
// He accepts adventure only if you have at least 2 hearts and 6 combat level
"f 500/SkillLevel combat 6": "accept"
},
"Price": 3000,
"Sales": {
// Less than 4 hearts = 20% more expensive price
"!f Kent 1000": 1.2,
// 10 hearts and at least 6 hearts with Jodi = FREE (best friends forever)
"f Kent 2500/f Jodi 1500": 0.0,
// 10 hearts = 50% sale
"f Kent 2500": 0.5,
// at least 8 hearts = 20% sale
"f Kent 1500": 0.8
},
"Buffs": {
"Attack": 1,
"Defense": 2
},
"BuffsDescription": "[kent.buffs]",
"Weapons": {
"6": "Ossified Blade",
"8": "Dark Sword",
"10": "Galaxy Sword"
},
"IdleBehaviors": [
{
"Behavior": "Lookaround",
"FaceMinSeconds": 2,
"FaceMaxSeconds": 5,
"Tendency": 2,
"MinDuration": 10,
"MaxDuration": 30
}
]
}