コード例 #1
0
ファイル: OwnedEquipment.php プロジェクト: kakitsubun/wc-test
 /**
  * 创建玩家装备
  * @param $intEquipmentId
  * @param $intPlayerId
  * @param int $intPlus
  */
 public function createOwnedEquipment($intEquipmentId, $intPlayerId, $intPlus = 0)
 {
     // 取得装备实例
     $objEquipment = Equipment::find($intEquipmentId);
     // 主属性随机值
     $this->status_1_add = mt_rand(0, $objEquipment->status_1_add);
     $this->status_2_add = mt_rand(0, $objEquipment->status_2_add);
     $this->status_3_add = mt_rand(0, $objEquipment->status_3_add);
     // 附加属性的计算
     // 取得稀有度
     $intRare = $objEquipment->rare;
     // 抽选用稀有度文字列 TODO
     $strRateType = "rate_low";
     // 抽选Type
     if ($intRare < 7) {
         $strRateType = "rate_middle";
     } else {
         $strRateType = "rate_high";
     }
     // 抽选List
     $lstAddStatuses = EquipmentStatus::all();
     // 装备的加值 每加1 多一种随机属性 且根据稀有度随机上下限
     $intPlusCount = 0;
     while ($intPlusCount < $intPlus) {
         $addStatus = $this->_drawing($lstAddStatuses->toArray(), $strRateType);
         $minValue = $addStatus['min_value'] * $intRare;
         $maxValue = $addStatus['max_value'] * $intRare;
         $intPlusCount++;
         switch ($intPlusCount) {
             case 1:
                 $this->addition_1_status_id = $addStatus['id'];
                 $this->addition_1_value = mt_rand($minValue, $maxValue);
                 break;
             case 2:
                 $this->addition_2_status_id = $addStatus['id'];
                 $this->addition_2_value = mt_rand($minValue, $maxValue);
                 break;
             case 3:
                 $this->addition_3_status_id = $addStatus['id'];
                 $this->addition_3_value = mt_rand($minValue, $maxValue);
                 break;
             case 4:
                 $this->addition_4_status_id = $addStatus['id'];
                 $this->addition_4_value = mt_rand($minValue, $maxValue);
                 break;
             default:
                 # code...
                 break;
         }
     }
     // 其他属性设定
     $this->player_id = $intPlayerId;
     $this->equipment_id = $objEquipment->id;
     $this->plus = $intPlus;
     $this->equipment_type_id = $objEquipment->type;
     $this->setUpStatus();
 }