Goal Resource: ExploitableObjectCount()

Extracted the division by blast_ratio to a function. This should help again when expanding to diggable materials.
liquid_container
Mark 2016-02-11 21:42:19 +01:00
parent a4d2edd0d2
commit 9fa4632a48
1 changed files with 10 additions and 8 deletions

View File

@ -29,8 +29,7 @@ public func SetResource(string resource)
resource_list[list_end] = resource;
var material = Material(resource);
var mat_cnt = GetMaterialCount(material);
var blast_ratio = GetBlastRatio(material);
tolerance_list[list_end] = Max(1, mat_cnt / blast_ratio / 20);
tolerance_list[list_end] = Max(1, ExploitableObjectCount(mat_cnt, material) / 20);
return;
}
@ -92,8 +91,7 @@ public func GetDescription(int plr)
var mat_cnt = GetMaterialCount(material);
var res_id = GetBlastID(material);
var available_object_count = AvailableObjectCount(material);
var blast_ratio = GetBlastRatio(material);
var add_msg = Format("$MsgGoalResource$", res_id, Max(0, (mat_cnt - ObjectCount2MaterialCount(tol, material)) / blast_ratio), available_object_count);
var add_msg = Format("$MsgGoalResource$", res_id, Max(0, ExploitableObjectCount(mat_cnt - ObjectCount2MaterialCount(tol, material))), available_object_count);
message = Format("%s%s", message, add_msg);
}
}
@ -127,8 +125,7 @@ public func Activate(int plr)
var mat_cnt = GetMaterialCount(material) * 10 / 11; // subtract some that gets lost on blasting
var res_id = GetBlastID(material);
var available_object_count = AvailableObjectCount(material);
var blast_ratio = GetBlastRatio(material);
var add_msg = Format("$MsgGoalResource$", res_id, Max(0, (mat_cnt - ObjectCount2MaterialCount(tol, material)) / blast_ratio), available_object_count);
var add_msg = Format("$MsgGoalResource$", res_id, Max(0, ExploitableObjectCount(mat_cnt - ObjectCount2MaterialCount(tol, material))), available_object_count);
message = Format("%s%s", message, add_msg);
}
}
@ -149,8 +146,7 @@ public func GetShortDescription(int plr)
var mat_cnt = GetMaterialCount(material);
var res_id = GetBlastID(material);
var available_object_count = AvailableObjectCount(material);
var blast_ratio = GetBlastRatio(material);
msg = Format("%s{{%i}}: %d ", msg, res_id, Max(0, (mat_cnt - ObjectCount2MaterialCount(tol, material)) / blast_ratio) + available_object_count);
msg = Format("%s{{%i}}: %d ", msg, res_id, Max(0, ExploitableObjectCount(mat_cnt - ObjectCount2MaterialCount(tol, material), material)) + available_object_count);
}
return msg;
}
@ -171,6 +167,12 @@ func AvailableObjectCount(int material)
return ObjectCount(Find_ID(GetBlastID(material)));
}
/** Gets the number of objects that can be exploited from a material, based on material count. */
func ExploitableObjectCount(int material_count, int material)
{
return material_count / GetBlastRatio(material);
}
/** Converts a number of objects to the amount of material
that would have to be exploited in order to receive that
amount of objects. */