Esempio n. 1
0
 public function try_selection($code)
 {
     $specs = combat_specs::get($code);
     $keys = array_keys($this->class);
     if (!shuffle($keys) || count($keys) <= 0) {
         return NULL;
     }
     foreach ($keys as $key) {
         if ($this->class[$key]['number'] > 0 && isset($specs[$key]) && rand(1, 100) <= $specs[$key]['selection']) {
             return $key;
         }
     }
     return $keys[array_rand($keys)];
 }
Esempio n. 2
0
 private function select_and_touch($obj1, $obj2)
 {
     $bool = false;
     $code1 = $obj1->getRandom($this->energie_defense);
     $v1 = $obj1->{$code1};
     // ici on fait des jets pour essayer de selectionner un ennemie en fonction des pourcentages et de ce qu'il y a de disponible
     for ($i = 1; $i <= $v1['attaque_nb']; $i++) {
         if (($code2 = $obj2->try_selection($code1)) !== NULL) {
             // ici on essaye d'attaquer, ($obj1) $code1 attaque ($obj2) $code2
             $v2 = $obj2->{$code2};
             if (!isset($v2['vie'])) {
                 $v2['vie'] = $v2['defense_base'];
             }
             $specs = combat_specs::get($code1);
             if (!isset($specs[$code2])) {
                 $touche = 50;
             } else {
                 $touche = $specs[$code2]['touche'];
             }
             if (rand(1, 100) <= $touche) {
                 $v2['vie'] -= $v1['attaque_base'];
                 if ($v2['vie'] <= 0) {
                     $v2['vie'] = $v2['defense_base'];
                     $v2['number']--;
                 }
             }
             $obj2->{$code2} = $v2;
             if ($v2['number'] <= 0) {
                 $obj2->delete($code2);
             }
             $bool = true;
         }
     }
     if ($bool) {
         $this->current_tour--;
     }
 }