Beispiel #1
0
    protected function renderHEAD()
    {
        parent::renderHEAD();
        ?>
		<script type="text/javascript"><!--
		
			function updateProduction() {
				
				// auto-overlord
				var autoOverlord = $("#autoOverlord").attr("checked");
				if(autoOverlord) {
					$("#Overlord").parent().hide();
					$("#Overlord").val("");
				} else {
					$("#Overlord").parent().show();
				}
				
				// get unit weights
				var weight = [];
				var supplyConsumption = 0;
				$.each(ZergUnits, function(i, unit) {
					weight[unit.name] = getInt(unit.name) * unit.larva;
					supplyConsumption = supplyConsumption + getInt(unit.name) * unit.supply;
				});
				
				// add overlords
				if($("#autoOverlord").attr("checked")) {				
					weight["Overlord"] = Math.max(0, supplyConsumption / 8);
				}
				
				// normalize unit weights
				var weightTotal = 0;
				$.each(ZergUnits, function(i, unit) {
					weightTotal = weightTotal + weight[unit.name];
				});
				if(weightTotal != 0) {
					$.each(ZergUnits, function(i, unit) {
						weight[unit.name] = weight[unit.name] / weightTotal;
					});
				}
				
				// larva interval
				var larvaInterval = $("#larvaInterval").html();
				
				// resource consumption
				var mineralConsumption = 0;
				var gasConsumption = 0;
				$.each(ZergUnits, function(i, unit) {
					if(unit.larva) {
						mineralConsumption = mineralConsumption + weight[unit.name] * unit.mineral / (unit.larva * larvaInterval);
						gasConsumption = gasConsumption + weight[unit.name] * unit.gas / (unit.larva * larvaInterval);
					}
				});
				$("#mineralConsumption").html(mineralConsumption.toFixed(2));
				$("#gasConsumption").html(gasConsumption.toFixed(2));
				
				// comparison
				updateComparison(mineralConsumption, gasConsumption);
				
				// produced
				$("#produced ul").empty();
				$.each(ZergUnits, function(i, unit) {
					if(weight[unit.name]) {
						$("#produced ul").append("<li>" + (1 / unit.larva) + " " + unit.name + " per " + Math.ceil(larvaInterval / weight[unit.name]) + " seconds</li>");
					}
				});
			}
			
			$(function() {
			
				// tooltips
				$.each(ZergUnits, function(i, unit) {
					$("#tooltips").append(unit.tooltip());
					$("#" + unit.code()).ezpz_tooltip({contentId: unit.code() + "_tooltip"});
				});
				
				$("#ling").click(function() {
					$("#unitProduction input").val("");
					$("#Zergling").val(1);
					update();
				});
				
				$("#lingblingmuta").click(function() {
					$("#unitProduction input").val("");
					$("#Drone").val(1);
					$("#Zergling").val(2);
					$("#Baneling").val(1);
					$("#Mutalisk").val(1);
					update();
				});
				
				$("#roachhydra").click(function() {
					$("#unitProduction input").val("");
					$("#Drone").val(1);
					$("#Roach").val(2);
					$("#Hydralisk").val(1);
					update();
				});
			});
		//--></script>
		<?php 
        $this->_incomeSnippet->renderHead();
    }
Beispiel #2
0
    protected function renderHEAD()
    {
        parent::renderHEAD();
        ?>
		<script type="text/javascript"><!--
		
			function updateProduction() {

				// terrans never get reduced time
				var reducedTime = false;
			
				// structures & units 
				var amount = [];
				var cycle = [];
				$.each(TerranStructures, function(i, structure) {
					amount[structure.code()] = getInt(structure.code());
					
					// production cycles
					cycle[structure.code()] = 0;
					$.each(structure.units, function(i, unit) {
						var unitCode = structure.code() + "_" + unit.code();
						amount[unitCode] = getInt(unitCode);
						cycle[unitCode] = amount[unitCode] * unit.getTime(reducedTime) / structure.multiplier;
						cycle[structure.code()] = cycle[structure.code()] + cycle[unitCode];
					});
				});
				
				// include supply cost?
				var Supply = { mineral: $("#includeSupply").attr("checked") ? 12.5 : 0 };
				
				// resource consumption
				var mineralConsumption = 0;
				var gasConsumption = 0;
				$.each(TerranStructures, function(i, structure) {
					$.each(structure.units, function(i, unit) {
						var unitCode = structure.code() + "_" + unit.code();
						mineralConsumption = mineralConsumption +
							amount[structure.code()] / Math.max(1, cycle[structure.code()]) * cycle[unitCode] * (unit.mineral + unit.supply * Supply.mineral) / (unit.getTime(reducedTime) / structure.multiplier);
						gasConsumption = gasConsumption +
							amount[structure.code()] / Math.max(1, cycle[structure.code()]) * cycle[unitCode] * unit.gas / (unit.getTime(reducedTime) / structure.multiplier);
					});
				});
				$("#mineralConsumption").html(mineralConsumption.toFixed(2));
				$("#gasConsumption").html(gasConsumption.toFixed(2));
				
				// comparison
				updateComparison(mineralConsumption, gasConsumption);
				
				// unit production rate
				var rate = [];
				$.each(TerranStructures, function(i, structure) {
					$.each(structure.units, function(i, unit) {
						var unitCode = structure.code() + "_" + unit.code();
						if(cycle[unitCode] * amount[structure.code()]) {
							if(rate[unit.code()] === undefined) {
								rate[unit.code()] = 0;
							}
							rate[unit.code()] = rate[unit.code()] + 
								amount[structure.code()] * amount[unitCode] / cycle[structure.code()];
						}
					});
				});
				
				// units produced
				$("#produced ul").empty();
				$.each(TerranUnits, function(i, unit) {
					if(rate[unit.code()] !== undefined) {
						$("#produced ul").append("<li>1 " + unit.name + " per " + Math.ceil(1 / rate[unit.code()]) + " seconds</li>");
					}
				});
				
			}
			
			$(function() {
				
				// tooltips
				$.each(TerranUnits, function(i, unit) {
					$("#tooltips").append(unit.tooltip());
				});
				$.each(TerranStructures, function(i, structure) {
					$.each(structure.units, function(i, unit) {
						var unitCode = structure.code() + "_" + unit.code();
						$("#" + unitCode).ezpz_tooltip({contentId: unit.code() + "_tooltip"});
					});
				});
				
				// examples
				$("#3raxmm").click(function() {
					$("#unitProduction input:not(:hidden)").val("");
					$("#CommandCenter").val(1);
					$("#CommandCenter_SCV").val(1);
					$("#BarracksReactor").val(1);
					$("#BarracksTechLab").val(2);
					$("#BarracksTechLab_Marauder").val(1);
					update();
				});
				$("#111").click(function() {
					$("#unitProduction input:not(:hidden)").val("");
					$("#CommandCenter").val(1);
					$("#CommandCenter_SCV").val(1);
					$("#BarracksReactor").val(1);
					$("#FactoryTechLab").val(1);
					$("#FactoryTechLab_Hellion").val(1);
					$("#FactoryTechLab_SiegeTank").val(1);
					$("#FactoryTechLab_Thor").val(1);
					$("#StarportTechLab").val(1);
					$("#StarportTechLab_Banshee").val(1);
					update();
				});
			});
		//--></script>
		<?php 
        $this->_incomeSnippet->renderHead();
    }
Beispiel #3
0
    protected function renderHEAD()
    {
        parent::renderHEAD();
        ?>
		<script type="text/javascript"><!--
		
			function updateProduction() {
		
				// gateways or warpgates?
				var reducedTime = $("#transform").html() == "Warpgates";

				// structures & units 
				var amount = [];
				var cycle = [];
				$.each(ProtossStructures, function(i, structure) {
					amount[structure.name] = getInt(structure.code());
					
					// production cycles
					cycle[structure.name] = 0;
					$.each(structure.units, function(i, unit) {
						amount[unit.name] = getInt(unit.code());
						cycle[unit.name] = amount[unit.name] * unit.getTime(reducedTime);
						cycle[structure.name] = cycle[structure.name] + cycle[unit.name];
					});
				});
				
				// include supply cost?
				var Supply = { mineral: $("#includeSupply").attr("checked") ? 12.5 : 0 };
				
				// resource consumption
				var mineralConsumption = 0;
				var gasConsumption = 0;
				$.each(ProtossStructures, function(i, structure) {
					$.each(structure.units, function(i, unit) {
						mineralConsumption = mineralConsumption +
							amount[structure.name] / Math.max(1, cycle[structure.name]) * cycle[unit.name] * (unit.mineral + unit.supply * Supply.mineral) / unit.getTime(reducedTime);
						gasConsumption = gasConsumption +
							amount[structure.name] / Math.max(1, cycle[structure.name]) * cycle[unit.name] * unit.gas / unit.getTime(reducedTime);
					});
				});
				$("#mineralConsumption").html(mineralConsumption.toFixed(2));
				$("#gasConsumption").html(gasConsumption.toFixed(2));
				
				// comparison
				updateComparison(mineralConsumption, gasConsumption);
				
				// produced
				$("#produced ul").empty();
				$.each(ProtossStructures, function(i, structure) {
					$.each(structure.units, function(i, unit) {
						if(cycle[unit.name] * amount[structure.name]) {
							$("#produced ul").append("<li>1 " + unit.name + " per " + Math.ceil(cycle[structure.name] / (amount[structure.name] * amount[unit.name])) + " seconds</li>");
						}
					});
				});
			}
			
			$(function() {
			
				// tooltips
				$.each(ProtossUnits, function(i, unit) {
					$("#tooltips").append(unit.tooltip());
					$("#" + unit.code()).ezpz_tooltip({contentId: unit.code() + "_tooltip"});
				});
				
				// monitor input
				$("#transform").click(function() {
					$("#transform").html($("#transform").html() == "Gateways" ? "Warpgates" : "Gateways");
					update();
				});
				
				$("#4gate").click(function() {
					$("#unitProduction input").val("");
					$("#Nexus").val(1);
					$("#Probe").val(1);
					$("#Gateway").val(4);
					$("#transform").html("Warpgates");
					$("#Zealot").val(2);
					$("#Stalker").val(2);
					$("#Sentry").val(1);
					update();
				});
				
				$("#2gate1robo").click(function() {
					$("#unitProduction input").val("");
					$("#Nexus").val(1);
					$("#Probe").val(1);
					$("#Gateway").val(2);
					$("#transform").html("Warpgates");
					$("#Zealot").val(3);
					$("#Stalker").val(3);
					$("#Sentry").val(1);
					$("#RoboticsFacility").val(1);
					$("#Colossus").val(1);
					update();
				});
				
				$("#2gate1star").click(function() {
					$("#unitProduction input").val("");
					$("#Nexus").val(1);
					$("#Probe").val(1);
					$("#Gateway").val(2);
					$("#transform").html("Warpgates");
					$("#Zealot").val(3);
					$("#Stalker").val(3);
					$("#Sentry").val(1);
					$("#Stargate").val(1);
					$("#VoidRay").val(1);
					update();
				});
			});
		//--></script>
		<?php 
        $this->_incomeSnippet->renderHead();
    }