mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-13 22:01:04 -04:00
77 lines
3.5 KiB
Java
Executable File
77 lines
3.5 KiB
Java
Executable File
package script.quest.task;
|
|
|
|
import script.dictionary;
|
|
import script.library.quests;
|
|
import script.library.utils;
|
|
import script.obj_id;
|
|
|
|
public class survey extends script.base_script
|
|
{
|
|
public survey()
|
|
{
|
|
}
|
|
public int surveyComplete(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
LOG("newquests", "survey - surveyComplete()");
|
|
String resourceType = params.getString("resource_type");
|
|
String resourceClass = params.getString("resource_class");
|
|
float efficiency = params.getFloat("efficiency");
|
|
obj_id resource = params.getObjId("resource_type_object");
|
|
String[] activeTasks = quests.getActiveQuestsWithScript("quest.task.survey", self);
|
|
LOG("newquests", "checking " + activeTasks.length + " tasks for completion");
|
|
if (activeTasks != null && activeTasks.length > 0)
|
|
{
|
|
int iter = 0;
|
|
for (iter = 0; iter < activeTasks.length; ++iter)
|
|
{
|
|
LOG("newquests", "survey - Checking task " + activeTasks[iter] + " for completion");
|
|
float efficiencyParameter = 0.0f;
|
|
String objvarname = "quest." + activeTasks[iter] + ".parameter";
|
|
if (hasObjVar(self, objvarname))
|
|
{
|
|
efficiencyParameter = getFloatObjVar(self, objvarname);
|
|
}
|
|
else
|
|
{
|
|
String efficiencyParameterString = quests.getDataEntry(activeTasks[iter], "PARAMETER");
|
|
if (efficiencyParameterString != null && efficiencyParameterString.length() > 0)
|
|
{
|
|
efficiencyParameter = utils.stringToFloat(efficiencyParameterString);
|
|
}
|
|
}
|
|
LOG("newquests", "survey - " + activeTasks[iter] + " - efficiency=" + efficiency + " efficienty required=" + efficiencyParameter);
|
|
if (efficiency > efficiencyParameter)
|
|
{
|
|
String resourceTarget = null;
|
|
objvarname = "quest." + activeTasks[iter] + ".target";
|
|
if (hasObjVar(self, objvarname))
|
|
{
|
|
resourceTarget = getStringObjVar(self, objvarname);
|
|
}
|
|
else
|
|
{
|
|
resourceTarget = quests.getDataEntry(activeTasks[iter], "TARGET");
|
|
LOG("newquests", "survey - " + activeTasks[iter] + " efficiency qualifies, validating resource type " + getResourceName(resource) + " against target " + resourceTarget);
|
|
}
|
|
if (resourceTarget != null && resourceTarget.length() > 0)
|
|
{
|
|
if (isResourceDerivedFrom(resource, resourceTarget))
|
|
{
|
|
LOG("newquests", "survey - " + activeTasks[iter] + " qualifies! Completing task!");
|
|
objvarname = "quest.survey.efficency";
|
|
setObjVar(self, objvarname, efficiency);
|
|
quests.complete(activeTasks[iter], self, true);
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
LOG("newquests", "survey - " + getResourceName(resource) + " does not match target " + resourceTarget);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|