public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == AUSTRIAN_FORCE) { $this->victoryPoints[AUSTRIAN_FORCE] += 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='austrian'>+10 Austrian vp</span>"; } if ($forceId == PRUSSIAN_FORCE) { $this->victoryPoints[AUSTRIAN_FORCE] -= 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>-10 Prussian vp</span>"; } } if (in_array($mapHexName, $battle->specialHexB)) { if ($forceId == PRUSSIAN_FORCE) { $this->victoryPoints[PRUSSIAN_FORCE] += 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>+20 Prussian vp</span>"; } if ($forceId == AUSTRIAN_FORCE) { $this->victoryPoints[PRUSSIAN_FORCE] -= 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='austrian'>-20 Austrian vp</span>"; } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == SIKH_FORCE) { $this->victoryPoints[SIKH_FORCE] += 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>+20 Sikh vp</span>"; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[SIKH_FORCE] -= 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='austrian'>-20 Sikh vp</span>"; } } if (in_array($mapHexName, $battle->specialHexB) || in_array($mapHexName, $battle->specialHexC) || in_array($mapHexName, $battle->specialHexD)) { $vp = 20; if (in_array($mapHexName, $battle->specialHexC)) { $vp = 10; } if (in_array($mapHexName, $battle->specialHexD)) { $vp = 5; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BRITISH_FORCE] += $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='austrian'>+{$vp} British vp</span>"; } if ($forceId == SIKH_FORCE) { $this->victoryPoints[BRITISH_FORCE] -= $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>-{$vp} British vp</span>"; } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == ANGLO_ALLIED_FORCE) { $this->victoryPoints[ANGLO_ALLIED_FORCE] += 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='angloallied'>+15 Anglo Allied vp</span>"; } if ($forceId == FRENCH_FORCE) { $this->victoryPoints[ANGLO_ALLIED_FORCE] -= 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>-15 Anglo Allied vp</span>"; } } if (in_array($mapHexName, $battle->specialHexB)) { if ($forceId == FRENCH_FORCE) { $this->victoryPoints[FRENCH_FORCE] += 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>+10 French vp</span>"; } if ($forceId == ANGLO_ALLIED_FORCE) { $this->victoryPoints[FRENCH_FORCE] -= 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='angloallied'>-10 French vp</span>"; } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if ($forceId == PRUSSIAN_FORCE) { $this->victoryPoints[PRUSSIAN_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>+5 Prussian vp</span>"; } if ($forceId == RUSSIAN_FORCE) { $this->victoryPoints[PRUSSIAN_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='russian'>-5 Prussian vp</span>"; } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == FRENCH_FORCE) { $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>French Control Vital Objective</span>"; } if ($forceId == ALLIED_FORCE) { $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='prussian'>French Lose Vital Objective</span>"; } } }
public function preStartMovingUnit($arg) { /* @var unit $unit */ list($unit) = $arg; /* @var Dubba1843 $battle */ $battle = Battle::getBattle(); $zocBlocksRetreat = !empty($battle->scenario->zocBlocksRetreat); if ($unit->forceId !== BRITISH_FORCE || $zocBlocksRetreat) { $battle->moveRules->zocBlocksRetreat = true; } else { $battle->moveRules->zocBlocksRetreat = false; } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if ($forceId == BELUCHI_FORCE) { $this->victoryPoints[BELUCHI_FORCE] += 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='beluchi'>+15 Beluchis vp</span>"; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BELUCHI_FORCE] -= 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>-15 Beluchis vp</span>"; } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexB)) { if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BRITISH_FORCE] += 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='sikh'>+10 British vp</span>"; } if ($forceId == SIKH_FORCE) { $this->victoryPoints[BRITISH_FORCE] -= 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>-10 British vp</span>"; } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == ALLIED_FORCE) { $this->victoryPoints[ALLIED_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>+5 Allied vp</span>"; } if ($forceId == FRENCH_FORCE) { $this->victoryPoints[ALLIED_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>-5 Allied vp</span>"; } } if (in_array($mapHexName, $battle->specialHexB)) { $vp = 5; if ($forceId == FRENCH_FORCE) { $this->victoryPoints[FRENCH_FORCE] += $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>+{$vp} French vp</span>"; } if ($forceId == ALLIED_FORCE) { $this->victoryPoints[FRENCH_FORCE] -= $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>-{$vp} French vp</span>"; } } if (in_array($mapHexName, $battle->specialHexC)) { $vp = 5; $prevForceId = $battle->mapData->specialHexes->{$mapHexName}; if ($forceId == FRENCH_FORCE) { $this->victoryPoints[FRENCH_FORCE] += $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>+{$vp} French vp</span>"; if ($prevForceId !== 0) { $this->victoryPoints[ALLIED_FORCE] -= $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>-{$vp} Allied vp</span>"; } } if ($forceId == ALLIED_FORCE) { $this->victoryPoints[ALLIED_FORCE] += $vp; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>+{$vp} Allied vp</span>"; if ($prevForceId !== 0) { $this->victoryPoints[FRENCH_FORCE] -= $vp; $battle->mapData->specialHexesVictory->{$mapHexName} .= "<span class='french'>-{$vp} French vp</span>"; } } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); list($mapHexName, $forceId) = $args; if ($forceId == FRENCH_FORCE && in_array($mapHexName, $battle->angloSpecialHexes)) { $this->victoryPoints[FRENCH_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>+5 French vp</span>"; } if ($forceId == ANGLO_FORCE && in_array($mapHexName, $battle->angloSpecialHexes)) { $this->victoryPoints[FRENCH_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='french'>-5 French vp</span>"; } if ($forceId == ANGLO_FORCE && in_array($mapHexName, $battle->frenchSpecialHexes)) { $this->victoryPoints[ANGLO_FORCE] += 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>+10 Anglo Allied vp</span>"; } if ($forceId == FRENCH_FORCE && in_array($mapHexName, $battle->frenchSpecialHexes)) { $this->victoryPoints[ANGLO_FORCE] -= 10; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='anglo'>-10 Anglo Allied vp</span>"; } }
protected function unitSupplyEffects($unit, $goal, $bias, $supplyLen) { $b = Battle::getBattle(); $id = $unit->id; if ($b->gameRules->mode == REPLACING_MODE) { if ($unit->status == STATUS_CAN_UPGRADE) { $unit->supplied = $b->moveRules->calcSupply($unit->id, $goal, $bias, $supplyLen); if (!$unit->supplied) { /* TODO: make this not cry (call a method) */ $unit->status = STATUS_STOPPED; } } return; } if ($unit->status == STATUS_READY || $unit->status == STATUS_UNAVAIL_THIS_PHASE) { $unit->supplied = $b->moveRules->calcSupply($unit->id, $goal, $bias, $supplyLen); } else { return; } if (!$unit->supplied) { $unit->addAdjustment('movement', 'floorHalfMovement'); } if ($unit->supplied) { $unit->removeAdjustment('movement'); } if ($unit->status == STATUS_READY || $unit->status == STATUS_DEFENDING || $unit->status == STATUS_UNAVAIL_THIS_PHASE) { $unit->supplied = $b->moveRules->calcSupply($unit->id, $goal, $bias, $supplyLen); } else { return; } if ((!empty($this->unsuppliedDefenderHalved) || $unit->forceId == $b->gameRules->attackingForceId) && !$unit->supplied) { $unit->addAdjustment('supply', 'half'); } else { $unit->removeAdjustment('supply'); } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); if (!empty($battle->scenario->dayTwo)) { list($mapHexName, $forceId) = $args; if ($forceId == SIKH_FORCE) { $this->victoryPoints[SIKH_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='beluchi'>+5 Sikh vp</span>"; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[SIKH_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>-5 Sikh vp</span>"; } } else { list($mapHexName, $forceId) = $args; if ($mapHexName == $battle->moodkee) { if ($forceId == SIKH_FORCE) { $this->victoryPoints[SIKH_FORCE] += 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='beluchi'>+5 Sikh vp</span>"; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[SIKH_FORCE] -= 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>-5 Sikh vp</span>"; } } else { if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BRITISH_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>+5 British vp</span>"; } if ($forceId == SIKH_FORCE) { $this->victoryPoints[BRITISH_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='beluchi'>-5 British vp</span>"; } } } }
public function specialHexChange($args) { $battle = \Wargame\Battle::getBattle(); $scenario = $battle->scenario; list($mapHexName, $forceId) = $args; if (in_array($mapHexName, $battle->specialHexA)) { if ($forceId == SIKH_FORCE) { $this->victoryPoints[SIKH_FORCE] += 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='sikh'>+20 Sikh vp</span>"; } if ($forceId == BRITISH_FORCE) { $this->victoryPoints[SIKH_FORCE] -= 20; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>-20 Sikh vp</span>"; } } if (in_array($mapHexName, $battle->specialHexB)) { if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BRITISH_FORCE] += 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>+15 British vp</span>"; } if ($forceId == SIKH_FORCE) { $this->victoryPoints[BRITISH_FORCE] -= 15; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='sikh'>-15 British vp</span>"; } } if (!empty($scenario->altScenario) && in_array($mapHexName, $battle->specialHexC)) { if ($forceId == BRITISH_FORCE) { $this->victoryPoints[BRITISH_FORCE] += 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='british'>+5 British vp</span>"; } if ($forceId == SIKH_FORCE) { $this->victoryPoints[BRITISH_FORCE] -= 5; $battle->mapData->specialHexesVictory->{$mapHexName} = "<span class='sikh'>-5 British vp</span>"; } } }
public function playerTurnChange($arg) { $attackingId = $arg[0]; $battle = Battle::getBattle(); $mapData = $battle->mapData; $vp = $this->victoryPoints; $specialHexes = $mapData->specialHexes; $gameRules = $battle->gameRules; if ($gameRules->phase == BLUE_MECH_PHASE || $gameRules->phase == RED_MECH_PHASE) { $gameRules->flashMessages[] = "@hide crt"; } if ($attackingId == REBEL_FORCE) { $gameRules->flashMessages[] = "Rebel Player Turn"; $gameRules->replacementsAvail = 1; } if ($attackingId == LOYALIST_FORCE) { $gameRules->flashMessages[] = "Loyalist Player Turn"; $gameRules->replacementsAvail = 10; } /*only get special VPs' at end of first Movement Phase */ $this->victoryPoints = $vp; }
function getCombatResults($Die, $index, $combat) { $battle = Battle::getBattle(); if ($battle->gameRules->phase == BLUE_TORP_COMBAT_PHASE || $battle->gameRules->phase == RED_TORP_COMBAT_PHASE) { $hits = $this->crts->torpedo[$Die][$index]; $combat->hits = $hits; switch ($hits) { case MISS: return MISS; case H: $Die = floor($this->dieSideCount * (rand() / getrandmax())); // $Die = 0; $combat->hitDie = $Die + 1; $defense = $combat->unitDefenseStrength; $col = $this->getOneHitColumn($defense); $combat->hitCol = $col + 1; return $this->crts->torpedoHitOne[$Die][$col]; break; case HH: $Die = floor($this->dieSideCount * (rand() / getrandmax())); // $Die = 2; $combat->hitDie = $Die + 1; $defense = $combat->unitDefenseStrength; $col = $this->getTwoHitColumn($defense); $combat->hitCol = $col + 1; return $this->crts->torpedoHitTwo[$Die][$col]; } return MISS; } return $this->crts->normal[$Die][$index]; }
function reinforce($id, Hexagon $hexagon) { $battle = Battle::getBattle(); if ($this->force->unitIsReinforcing($id) == true) { list($zones) = $battle->victory->postReinforceZoneNames($this->terrain->getReinforceZoneList($hexagon), $battle->force->units[$id]); /* @var Unit $movingUnit */ $movingUnit = $this->force->getUnit($id); if (in_array($movingUnit->getUnitReinforceZone($id), $zones)) { if ($movingUnit->setStatus(STATUS_MOVING) == true) { $battle = Battle::getBattle(); $victory = $battle->victory; $victory->reinforceUnit($movingUnit, $hexagon); $this->force->updateMoveStatus($id, $hexagon, 0); } } } }
public function split() { if ($this->isReduced === true) { return false; } if ($this->status === STATUS_MOVING) { if ($this->moveAmountUsed !== 0) { return false; } } $b = Battle::getBattle(); $secondUnit = $b->force->getUnit($this->secondaryId); $this->isReduced = true; $secondUnit->hexagon = $this->hexagon; $secondUnit->status = STATUS_CAN_DEPLOY; if ($this->status === STATUS_MOVING) { $secondUnit->status = STATUS_READY; $secondUnit->moveAmountUsed = $this->moveAmountUsed; $secondUnit->moveAmountUnused = $this->moveAmountUnused; $secondUnit->supplied = $this->supplied; $secondUnit->adjustments = $this->adjustments; } $this->secondUnitStrength = false; $this->secondUnitDefStrength = false; $secondUnit->isReduced = true; $this->secondaryId = false; $mapHex = $b->mapData->getHex($this->hexagon->name); $mapHex->setUnit($secondUnit->forceId, $secondUnit); return true; }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; parent::postRecoverUnit($args); }
function unitIsInRange($id, $argRange = false) { $b = Battle::getBattle(); $isInRange = false; $range = $this->units[$id]->range; if ($argRange !== false) { $range = $argRange; } if ($range <= 1) { return false; } if ($this->ZOCrule == true) { $los = new Los(); $los->setOrigin($this->units[$id]->hexagon); for ($i = 0; $i < count($this->units); $i++) { /* hexagons without names are off map */ if (!$this->units[$i]->hexagon->name) { continue; } $los->setEndPoint($this->units[$i]->hexagon); $losRange = $los->getRange(); if ($losRange <= $range && $this->units[$i]->forceId != $this->units[$id]->forceId && $this->units[$i]->status != STATUS_CAN_REINFORCE && $this->units[$i]->status != STATUS_ELIMINATED) { if ($b->combatRules->checkBlocked($los, $id)) { $isInRange = true; break; } } } } return $isInRange; }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; parent::postRecoverUnit($args); if ($b->gameRules->mode === COMBAT_SETUP_MODE) { if ($unit->class === "wagon") { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } } }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $id = $unit->id; if ($b->gameRules->turn === 1 && $b->gameRules->phase === BLUE_MOVE_PHASE) { $reserveHexes = []; $dZones = $b->terrain->getReinforceZonesByName('D'); foreach ($dZones as $dZone) { $reserveHexes[$dZone->hexagon->name] = true; } /* this will get turned into an object */ if (isset($reserveHexes[$unit->hexagon->name])) { $this->reserveDivisionIds->{$id} = true; } } if ($this->divisionReleased === false && $unit->status == STATUS_READY && isset($this->reserveDivisionIds->{$id})) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } parent::postRecoverUnit($args); if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; $unit->maxMove = $unit->maxMove + 1; } if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; $unit->maxMove = floor($unit->maxMove / 2); } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } }
public function preCombatResults($args) { list($defenderId, $attackers, $combatResults, $dieRoll) = $args; $b = Battle::getBattle(); if ($b->force->units[$defenderId]->maxMove === 0) { if ($combatResults === DR) { $combatResults = NE; } } return [$defenderId, $attackers, $combatResults, $dieRoll]; }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; parent::postRecoverUnit($args); if ($this->isDemoralized) { if ($b->gameRules->phase == RED_COMBAT_PHASE) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } } }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $id = $unit->id; parent::postRecoverUnit($args); if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; $unit->maxMove = $unit->maxMove + 1; } if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; $unit->maxMove = floor($unit->maxMove / 2); } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } }
public function playerTurnChange($arg) { $attackingId = $arg[0]; $battle = Battle::getBattle(); $gameRules = $battle->gameRules; if ($gameRules->phase == BLUE_MECH_PHASE || $gameRules->phase == RED_MECH_PHASE) { $gameRules->flashMessages[] = "@hide crt"; } if ($gameRules->turn <= $gameRules->maxTurn) { if ($attackingId == REBEL_FORCE) { $gameRules->flashMessages[] = "Rebel Player Turn"; } if ($attackingId == LOYALIST_FORCE) { $gameRules->flashMessages[] = "Loyalist Player Turn"; } } /*only get special VPs' at end of first Movement Phase */ }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; parent::postRecoverUnit($args); if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; $unit->maxMove = $unit->maxMove + 1; } if ($b->gameRules->turn == 1 && $b->gameRules->phase == BLUE_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_MOVE_PHASE && $unit->status == STATUS_READY) { $this->movementCache->{$id} = $unit->maxMove; if (!empty($scenario->noMovementFirstTurn)) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } else { $unit->maxMove = floor($unit->maxMove / 2); } } if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_COMBAT_PHASE && isset($this->movementCache->{$id})) { $unit->maxMove = $this->movementCache->{$id}; unset($this->movementCache->{$id}); } }
public function playerTurnChange($arg) { $attackingId = $arg[0]; $battle = Battle::getBattle(); $mapData = $battle->mapData; $vp = $this->victoryPoints; $specialHexes = $mapData->specialHexes; $gameRules = $battle->gameRules; if ($gameRules->phase == BLUE_MECH_PHASE || $gameRules->phase == RED_MECH_PHASE) { $gameRules->flashMessages[] = "@hide crt"; } if ($attackingId == REBEL_FORCE) { $gameRules->flashMessages[] = "Rebel Player Turn"; $gameRules->replacementsAvail = 1; } if ($attackingId == LOYALIST_FORCE) { $gameRules->flashMessages[] = "Loyalist Player Turn"; $gameRules->replacementsAvail = 10; } /*only get special VPs' at end of first Movement Phase */ if ($specialHexes) { $scenario = $battle->scenario; if (!empty($scenario->supply) === true) { $inCity = false; $roadCut = false; foreach ($specialHexes as $k => $v) { if ($v == REBEL_FORCE) { $points = 1; if ($k == 2414 || $k == 2415 || $k == 2515) { $inCity = true; $points = 5; } elseif ($k >= 2416) { /* Remember the first road Cut */ if ($roadCut === false) { $roadCut = $k; } continue; } $vp[$v] += $points; $battle->mapData->specialHexesVictory->{$k} = "<span class='rebelVictoryPoints'>+{$points} vp</span>"; } else { // $vp[$v] += .5; } } if ($roadCut !== false) { $vp[REBEL_FORCE] += 3; $battle->mapData->specialHexesVictory->{$roadCut} = "<span class='rebelVictoryPoints'>+3 vp</span>"; } if (!$inCity) { /* Cuneiform isolated? */ $cuneiform = 2515; if (!$battle->moveRules->calcSupplyHex($cuneiform, array(3014, 3015, 3016, 3017, 3018, 3019, 3020, 2620, 2720, 2820, 2920), array(2 => true, 3 => true), RED_FORCE, $this->supplyLen)) { $vp[REBEL_FORCE] += 5; $battle->mapData->specialHexesVictory->{$cuneiform} = "<span class='rebelVictoryPoints'>+5 vp</span>"; } } } else { foreach ($specialHexes as $k => $v) { if ($v == 1) { $points = 1; if ($k == 2414 || $k == 2415 || $k == 2515) { $points = 5; } elseif ($k >= 2416) { $points = 3; } $vp[$v] += $points; $battle = Battle::getBattle(); $battle->mapData->specialHexesVictory->{$k} = "<span class='rebelVictoryPoints'>+{$points} vp</span>"; } else { // $vp[$v] += .5; } } } } $this->victoryPoints = $vp; }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; if ($b->gameRules->turn <= 2 && !isset($this->southOfTheRiver)) { $terrain = $b->terrain; $reinforceZones = $terrain->reinforceZones; $southOfTheRiver = []; foreach ($reinforceZones as $reinforceZone) { if ($reinforceZone->name == 'D') { $southOfTheRiver[$reinforceZone->hexagon->name] = true; } } $this->southOfTheRiver = $southOfTheRiver; } parent::postRecoverUnit($args); if ($b->gameRules->turn == 1 && $b->gameRules->phase == RED_MOVE_PHASE && $unit->status == STATUS_READY && $unit->forceId == ALLIED_FORCE) { /* if early Movement set and unit is north of river they can move */ if (!(isset($scenario->earlyMovement) && empty($this->southOfTheRiver[$unit->hexagon->name]))) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } } if ($b->gameRules->turn == 2 && $b->gameRules->phase == RED_MOVE_PHASE) { if ($unit->status == STATUS_READY && $unit->forceId == ALLIED_FORCE && !empty($this->southOfTheRiver[$unit->hexagon->name])) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } } }
public function postRecoverUnit($args) { $unit = $args[0]; $b = Battle::getBattle(); $scenario = $b->scenario; $id = $unit->id; parent::postRecoverUnit($args); if ($this->isIndecisive && $unit->status == STATUS_READY) { $unit->status = STATUS_UNAVAIL_THIS_PHASE; } }
public function playerTurnChange($arg) { $attackingId = $arg[0]; $battle = Battle::getBattle(); $mapData = $battle->mapData; $gameRules = $battle->gameRules; if ($gameRules->phase == BLUE_MECH_PHASE || $gameRules->phase == RED_MECH_PHASE) { $gameRules->flashMessages[] = "@hide crt"; } if ($attackingId == SOVIET_FORCE) { $gameRules->flashMessages[] = "Soviet Player Turn"; $gameRules->replacementsAvail = 1; } if ($attackingId == PRC_FORCE) { $gameRules->flashMessages[] = "PRC Player Turn"; $gameRules->replacementsAvail = 5; } /*only get special VPs' at end of first Movement Phase */ }