Classes

Concepts

Libraries

advertisement »

ambientSounds »

bitser »

contentPoints »

eventBoxText »

factValidity »

frameBuffer »

officeBuildingInserter »

priorityRenderer »

randomEvents »

scaling »

spritesheetParser »

statusIcons »

test3 »

util »

Objects

registerNew

Description

Registers a new skill.

Arguments

1 table data

the skill to register.

Example

-- taken from game/developer/basic_skills.lua


local dev = {}
dev.id = "development"
dev.display = _T("SKILL_DEVELOPMENT", "Development")
dev.description = _T("SKILL_DEVELOPMENT_DESCRIPTION", "Determines the ability to develop quickly in all work fields.")
dev.boost = 1
dev.amountPerLevel = 8
dev.amountDeviation = {min = 10, max = 30}
dev.deviationLevelScaling = 1
dev.icon = "skill_development"
dev.skillBoostString = _T("DEVELOPMENT_SKILL_BOOST_STRING", "BOOST% faster project development (next: NEXT%)")
dev.noMastery = true
dev.contractEvaluationWeight = 0.25
dev.attributeBoost = {
	vision = 0.25,
	intelligence = 0.25
}

function dev:fillSkillInfoDescbox(employee, descBox, wrapWidth)
	descBox:addText(_format(_T("DEVELOPMENT_SPEED_BOOST_DESC", "PERCENTAGE% faster overall work speed"), "PERCENTAGE", skills:getBoostFromSkill(employee:getSkillLevel(self.id), self) * 100), "bh18", game.UI_COLORS.LIGHT_BLUE, 0, wrapWidth)
end

function dev:distribute(target)
	local level = target:getLevel()
	local amount = level * self.amountPerLevel
	local percentage = level / developer.MAX_LEVEL
	
	local minRange = math.random(0, self.amountDeviation.min)
	local maxRange = math.random(self.amountDeviation.min, self.amountDeviation.max)
	
	amount = amount + math.round(math.random(minRange, maxRange) * percentage)
	local roleData = target:getRoleData()
	amount = math.clamp(amount, 0, (roleData.maxSkillLevels and roleData.maxSkillLevels[self.id] or self.maxLevel))
	
	target:setSkill(self.id, amount)
end

function dev:setupDescbox(descBox, wrapWidth)
	local taskClass = task:getData("game_task"):getSkillQualityIncrease()
	self.descBox:addText(self.skillData.description, "pix18", nil, 10, wrapWidth)
end

function dev:getDevSpeedBoost(target)
	return 1 + skills:getBoostFromAttributes(target, self) + skills:getBoostFromSkill(target:getSkillLevel(self.id), self)
end

skills:registerNew(dev)