kts.AddStuff – add initial items ("stuff") to the dungeon
kts.AddStuff(stuff_list)
where: stuff_list is a list of {tile_category, probability, item_function} triple(s).
This function adds the starting items to the dungeon. It should be called exactly once during the setup of a new game.
The function takes one parameter which is an array of "stuff entries". Each "stuff entry" is itself a "triple" of the form: {tile_category, probability, item_function}, in which:
tile_category is a string, giving the name of a "tile category" (see the description of the items field in kts.Tile). probability is a number between 0.0 and 1.0. item_function is a function that takes no parameters, and returns a (possibly randomised) ItemType, and also (optionally) a number of items of that type to generate. See below for an example.
No value is returned.
Errors may be generated if the input values do not have the expected types.
The following is a simplified example of how kts.AddStuff might be called.
function chest_item_generator()
local choice = kts.RandomRange(1, 12)
if choice == 1 then
return i_poison_trap
elseif choice == 2 then
return i_blade_trap
elseif choice <= 6 then
return i_potion
elseif choice <= 10 then
return i_scroll
else
return i_dagger, kts.RandomRange(2, 4)
end
end
function floor_item_generator()
local choice = kts.RandomRange(1, 3)
if choice == 1 then
return i_axe
elseif choice == 2 then
return i_hammer
else
return i_staff
end
end
kts.AddStuff({ {"chest", 0.8, chest_item_generator},
{"floor", 0.1, floor_item_generator} })
The above means that each tile of category "chest" will have an 80% probability of containing an item, and if it does, then the item will be chosen by a call to the function chest_item_generator. Therefore, chests will contain a mixture of poison traps, blade traps, potions, scrolls and daggers; in the latter case, the number of daggers will be between 2 and 4. Also, each tile of category "floor" has a 10% chance of containing an item, and in this case the item will be equally likely to be an axe, hammer or staff.
In the "real" config files (in folder knights_data/server/classic) a more complicated system is used, where the probabilities depend on the "Amount of Stuff" setting in the menus.