/** * Check if a knight accomplish with requirements for item * @param unknown $equipment_type * @param unknown $identificator * @param unknown $knight_id * @return boolean */ public static function checkAccomplish($equipments_type, $identificator, $knight_id) { Yii::trace('[APP] Cehck for ' . "{$equipments_type}, {$identificator}, {$knight_id}"); // Search all requirements $equipmentRequirementsList = self::model()->findAll('identificator=:identificator AND equipments_type=:equipments_type', array(':identificator' => $identificator, ':equipments_type' => $equipments_type)); if ($equipmentRequirementsList) { Yii::trace('[APP] equipment requirement exist'); // Load knight card $knight = Knights::model()->findByPk($knight_id); $knightCard = KnightsCard::model()->findByPk($knight_id); // Check for each requirement if knight accomplish with it // Check if all requirements are accomplish. Load requirements foreach ($equipmentRequirementsList as $equipmentRequirements) { Yii::trace('[APP] check requirement ' . $equipmentRequirements->requirements_id); // Load requirement $requirement = Requirements::model()->findByPk($equipmentRequirements->requirements_id); Yii::trace('[APP] Load requirement ' . $requirement->id . ': ' . $requirement->level . ' - ' . $requirement->attribute . ' - ' . $requirement->skill); // Check level if ($requirement->level != null && $requirement->value > $knight->level) { Yii::trace('[APP] No level'); return false; } else { if ($requirement->attribute != null) { Yii::trace('[APP] Is attribute'); // Load name of characteristic $attributeName = Constants::model()->findByPk($requirement->attribute); if ($requirement->value > $knightCard->{$attributeName->name}) { Yii::trace('[APP] NO attribute'); return false; } } else { if ($requirement->skill != null) { Yii::trace('[APP] Is skill'); $attributeName = Constants::model()->findByPk($requirement->skill); if ($requirement->value > $knightCard->{$attributeName->name}) { Yii::trace('[APP] No skill'); return false; } } } } Yii::trace('[APP] requirement pass'); } } Yii::trace('[APP] F**k yeah'); return true; }
public function actionShowPostcombat() { $output = array('errno' => 1, 'html' => ''); //Valid input if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0) { //Load combat if ($combat = Combats::model()->with('fromKnight', 'toKnight')->findByPk($_GET['id'])) { //Check if precombat exit $postcombats = CombatsPostcombat::model()->findAll('combats_id = :combats_id', array(':combats_id' => $_GET['id'])); if (count($postcombats) == 2) { //Set data from knight and to knight if ($combat->from_knight == $postcombats[0]->knights_id) { $data = array('combat' => $combat, 'from_knight_postcombat' => &$postcombats[0], 'from_knight_automatic_object_repairs' => array(), 'from_knight_downgrades' => array(), 'to_knight_postcombat' => &$postcombats[1], 'to_knight_automatic_object_repairs' => array(), 'to_knight_downgrades' => array(), 'injuryLabels' => Constants::getLabelsTypeInjuries(), 'knight_card_labels' => array()); } else { $data = array('combat' => $combat, 'from_knight_postcombat' => &$postcombats[1], 'from_knight_automatic_object_repairs' => array(), 'from_knight_downgrades' => array(), 'to_knight_postcombat' => &$postcombats[0], 'to_knight_automatic_object_repairs' => array(), 'to_knight_downgrades' => array(), 'injuryLabels' => Constants::getLabelsTypeInjuries(), 'knight_card_labels' => array()); } //Load repairs $result = ObjectRepairs::model()->findAll('combats_id = :combats_id', array(':combats_id' => $combat->id)); //sort result by knight if (count($result)) { foreach ($result as $repair) { if ($repair['knights_id'] == $combat->from_knight) { //Add to from knight array_push($data['from_knight_automatic_object_repairs'], $repair); } else { array_push($data['to_knight_automatic_object_repairs'], $repair); } } } //Load downgrades!! $downgrades = KnightsEvolution::model()->findAll('combats_id = :combats_id', array(':combats_id' => $combat->id)); //sort result by knight if (count($downgrades)) { foreach ($downgrades as $downgrade) { if ($downgrade->knights_id == $combat->from_knight) { array_push($data['from_knight_downgrades'], $downgrade); } else { array_push($data['to_knight_downgrades'], $downgrade); } } //Load knight card labels $data['knight_card_labels'] = KnightsCard::model()->attributeLabelsById(); } // var_dump($data);die; $output['html'] = $this->renderFile(Yii::app()->basePath . '/views/character/dialog_post_combat.php', $data, true); $output['errno'] = 0; } else { $output['html'] = 'Se ha producido un error al cargar el postcombate ' . count($postcombats); } } else { $output['html'] = 'No se ha encontrado al combate.'; } } else { $output['html'] = 'El identificador del combate no es válido.'; } echo CJSON::encode($output); }