コード例 #1
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'slosher'])->id, 'key' => 'hissen_hue', 'name' => 'Tri-Slosher Nouveau', 'subweapon_id' => Subweapon::findOne(['key' => 'chasebomb'])->id, 'special_id' => Special::findOne(['key' => 'supersensor'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'hissen_hue', 'name' => 'Tri-Slosher Nouveau']);
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'rapid_elite_deco', 'name' => 'Rapid Blaster Pro Deco', 'subweapon_id' => Subweapon::findOne(['key' => 'poison'])->id, 'special_id' => Special::findOne(['key' => 'megaphone'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'rapid_elite_deco', 'name' => 'Rapid Blaster Pro Deco']);
 }
コード例 #2
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'charger'])->id, 'key' => 'liter3k_scope_custom', 'name' => 'Custom E-liter 3K Scope', 'subweapon_id' => Subweapon::findOne(['key' => 'jumpbeacon'])->id, 'special_id' => Special::findOne(['key' => 'daioika'])->id]);
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'longblaster_custom', 'name' => 'Custom Range Blaster', 'subweapon_id' => Subweapon::findOne(['key' => 'splashbomb'])->id, 'special_id' => Special::findOne(['key' => 'daioika'])->id]);
     $mainWeapon = DeathReasonType::findOne(['key' => 'main'])->id;
     $this->batchInsert('death_reason', ['type_id', 'key', 'name'], [[$mainWeapon, 'liter3k_scope_custom', 'Custom E-liter 3K Scope'], [$mainWeapon, 'longblaster_custom', 'Custom Range Blaster']]);
 }
コード例 #3
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'nova_neo', 'name' => 'Luna Blaster Neo', 'subweapon_id' => Subweapon::findOne(['key' => 'splashbomb'])->id, 'special_id' => Special::findOne(['key' => 'bombrush'])->id]);
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'h3reelgun_d', 'name' => 'H-3 Nozzlenose D', 'subweapon_id' => Subweapon::findOne(['key' => 'pointsensor'])->id, 'special_id' => Special::findOne(['key' => 'supershot'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'nova_neo', 'name' => 'Luna Blaster Neo']);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'h3reelgun_d', 'name' => 'H-3 Nozzlenose D']);
 }
コード例 #4
0
 public function rules()
 {
     return [[['screen_name'], 'exist', 'targetClass' => User::className(), 'targetAttribute' => 'screen_name'], [['rule'], 'exist', 'targetClass' => Rule::className(), 'targetAttribute' => 'key', 'when' => function () {
         return substr($this->rule, 0, 1) !== '@';
     }], [['rule'], 'validateGameMode', 'when' => function () {
         return substr($this->rule, 0, 1) === '@';
     }], [['map'], 'exist', 'targetClass' => Map::className(), 'targetAttribute' => 'key'], [['weapon'], 'exist', 'targetClass' => Weapon::className(), 'targetAttribute' => 'key', 'when' => function () {
         return !in_array(substr($this->weapon, 0, 1), ['@', '+', '*'], true);
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => WeaponType::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '@';
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => Subweapon::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '+';
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => Special::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '*';
     }], [['result'], 'boolean', 'trueValue' => 'win', 'falseValue' => 'lose']];
 }
コード例 #5
0
 public function rules()
 {
     return [[['screen_name'], 'exist', 'targetClass' => User::className(), 'targetAttribute' => 'screen_name'], [['lobby'], 'exist', 'targetClass' => Lobby::className(), 'targetAttribute' => 'key'], [['rule'], 'exist', 'targetClass' => Rule::className(), 'targetAttribute' => 'key', 'when' => function () {
         return substr($this->rule, 0, 1) !== '@';
     }], [['rule'], 'validateGameMode', 'when' => function () {
         return substr($this->rule, 0, 1) === '@';
     }], [['map'], 'exist', 'targetClass' => Map::className(), 'targetAttribute' => 'key'], [['weapon'], 'exist', 'targetClass' => Weapon::className(), 'targetAttribute' => 'key', 'when' => function () {
         return !in_array(substr($this->weapon, 0, 1), ['@', '+', '*'], true);
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => WeaponType::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '@';
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => Subweapon::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '+';
     }], [['weapon'], 'validateWeapon', 'params' => ['modelClass' => Special::className()], 'when' => function () {
         return substr($this->weapon, 0, 1) === '*';
     }], [['result'], 'boolean', 'trueValue' => 'win', 'falseValue' => 'lose'], [['term'], 'in', 'range' => ['this-period', 'last-period', '24h', 'today', 'yesterday', 'term']], [['term_from', 'term_to'], 'date', 'format' => 'yyyy-M-d H:m:s']];
 }
コード例 #6
0
 public function makeUpdate()
 {
     $currentSubweaponId = null;
     $fh = fopen(__FILE__, 'rt');
     fseek($fh, __COMPILER_HALT_OFFSET__, SEEK_SET);
     while (!feof($fh)) {
         $line = rtrim(fgets($fh));
         if ($line != '') {
             if (substr($line, 0, 1) !== ' ') {
                 $currentSubweaponId = Subweapon::findOne(['key' => $line])->id;
             } else {
                 $line = trim($line);
                 $weaponId = Weapon::findOne(['key' => $line])->id;
                 (yield [$weaponId, $currentSubweaponId]);
             }
         }
     }
     fclose($fh);
 }
コード例 #7
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'rapid_elite', 'name' => 'Rapid Blaster Pro', 'subweapon_id' => Subweapon::findOne(['key' => 'chasebomb'])->id, 'special_id' => Special::findOne(['key' => 'supershot'])->id]);
     $mainWeapon = DeathReasonType::findOne(['key' => 'main'])->id;
     $this->insert('death_reason', ['type_id' => $mainWeapon, 'key' => 'rapid_elite', 'name' => 'Rapid Blaster Pro']);
 }
コード例 #8
0
ファイル: Weapon.php プロジェクト: ExceptionError/stat.ink
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSubweapon()
 {
     return $this->hasOne(Subweapon::className(), ['id' => 'subweapon_id']);
 }
コード例 #9
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'slosher'])->id, 'key' => 'screwslosher_neo', 'name' => 'Sloshing Machine Neo', 'subweapon_id' => Subweapon::findOne(['key' => 'pointsensor'])->id, 'special_id' => Special::findOne(['key' => 'supershot'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'screwslosher_neo', 'name' => 'Sloshing Machine Neo']);
 }
コード例 #10
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'splatling'])->id, 'key' => 'splatspinner_collabo', 'name' => 'Zink Mini Splatling', 'subweapon_id' => Subweapon::findOne(['key' => 'poison'])->id, 'special_id' => Special::findOne(['key' => 'barrier'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'splatspinner_collabo', 'name' => 'Zink Mini Splatling']);
 }
コード例 #11
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'splatling'])->id, 'key' => 'hydra', 'name' => 'Hydra Splatling', 'subweapon_id' => Subweapon::findOne(['key' => 'splashbomb'])->id, 'special_id' => Special::findOne(['key' => 'supersensor'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'hydra', 'name' => 'Hydra Splatling']);
 }
コード例 #12
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'slosher'])->id, 'key' => 'bucketslosher_deco', 'name' => 'Slosher Deco', 'subweapon_id' => Subweapon::findOne(['key' => 'splashshield'])->id, 'special_id' => Special::findOne(['key' => 'daioika'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'bucketslosher_deco', 'name' => 'Slosher Deco']);
 }
コード例 #13
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'charger'])->id, 'key' => 'bamboo14mk2', 'name' => 'Bamboozler 14 Mk II', 'subweapon_id' => Subweapon::findOne(['key' => 'poison'])->id, 'special_id' => Special::findOne(['key' => 'supersensor'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'bamboo14mk2', 'name' => 'mboozler 14 Mk II']);
 }
コード例 #14
0
ファイル: WeaponsAction.php プロジェクト: Bochozkar/stat.ink
 private function convertWeapons2Sub($in)
 {
     $ret = [];
     foreach (Subweapon::find()->all() as $sub) {
         $ret[$sub->key] = (object) ['name' => Yii::t('app-subweapon', $sub->name), 'count' => 0, 'sum_kill' => 0, 'sum_death' => 0, 'win_count' => 0, 'avg_kill' => null, 'avg_death' => null, 'wp' => null, 'encounter_3' => null, 'encounter_4' => null];
     }
     foreach ($in->weapons as $weapon) {
         $o = $ret[$weapon->subweapon->key];
         $o->count += $weapon->count;
         $o->sum_kill += $weapon->sum_kill;
         $o->sum_death += $weapon->sum_death;
         $o->win_count += $weapon->win_count;
     }
     foreach ($ret as $o) {
         if ($o->count > 0) {
             $o->avg_kill = $o->sum_kill / $o->count;
             $o->avg_death = $o->sum_death / $o->count;
             $o->wp = $o->win_count * 100 / $o->count;
             $encounterRate = $o->count / $in->player_count;
             $o->encounter_3 = 100 * (1 - pow(1 - $encounterRate, 3));
             $o->encounter_4 = 100 * (1 - pow(1 - $encounterRate, 4));
         }
     }
     usort($ret, function ($a, $b) {
         foreach (['count', 'wp', 'avg_kill', 'avg_death'] as $key) {
             $tmp = $b->{$key} - $a->{$key};
             if ($tmp != 0) {
                 return $tmp;
             }
         }
         return strnatcasecmp($a->name, $b->name);
     });
     return $ret;
 }
コード例 #15
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'shooter'])->id, 'key' => 'bold_neo', 'name' => 'Neo Sploosh-o-matic', 'subweapon_id' => Subweapon::findOne(['key' => 'pointsensor'])->id, 'special_id' => Special::findOne(['key' => 'daioika'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'bold_neo', 'name' => 'Neo Sploosh-o-matic']);
 }
コード例 #16
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'roller'])->id, 'key' => 'carbon_deco', 'name' => 'Carbon Roller Deco', 'subweapon_id' => Subweapon::findOne(['key' => 'chasebomb'])->id, 'special_id' => Special::findOne(['key' => 'bombrush'])->id]);
 }
コード例 #17
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'roller'])->id, 'key' => 'hokusai_hue', 'name' => 'Octobrush Nouveau', 'subweapon_id' => Subweapon::findOne(['key' => 'splashbomb'])->id, 'special_id' => Special::findOne(['key' => 'supershot'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'hokusai_hue', 'name' => 'Octobrush Nouveau']);
 }
コード例 #18
0
 public function rules()
 {
     return [[['weapon'], 'exist', 'targetClass' => Weapon::className(), 'targetAttribute' => 'key'], [['type'], 'exist', 'targetClass' => WeaponType::className(), 'targetAttribute' => 'key'], [['sub'], 'exist', 'targetClass' => Subweapon::className(), 'targetAttribute' => 'key'], [['special'], 'exist', 'targetClass' => Special::className(), 'targetAttribute' => 'key']];
 }
コード例 #19
0
 private function makeWeaponsListSubweapons(User $user)
 {
     $query = Subweapon::find()->andWhere(['in', 'id', array_map(function ($model) {
         return $model->subweapon_id;
     }, Weapon::findAll($this->getUsedWeaponIdList($user)))]);
     $ret = [];
     foreach ($query->all() as $item) {
         $ret['+' . $item->key] = Yii::t('app-subweapon', $item->name);
     }
     if (count($ret) < 2) {
         return [];
     }
     asort($ret);
     return [Yii::t('app', 'Sub Weapon') => $ret];
 }
コード例 #20
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'slosher'])->id, 'key' => 'screwslosher', 'name' => 'Sloshing Machine', 'subweapon_id' => Subweapon::findOne(['key' => 'splashbomb'])->id, 'special_id' => Special::findOne(['key' => 'bombrush'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'screwslosher', 'name' => 'Sloshing Machine']);
 }
コード例 #21
0
 public function safeUp()
 {
     $this->insert('weapon', ['type_id' => WeaponType::findOne(['key' => 'splatling'])->id, 'key' => 'barrelspinner_deco', 'name' => 'Heavy Splatling Deco', 'subweapon_id' => Subweapon::findOne(['key' => 'pointsensor'])->id, 'special_id' => Special::findOne(['key' => 'daioika'])->id]);
     $this->insert('death_reason', ['type_id' => DeathReasonType::findOne(['key' => 'main'])->id, 'key' => 'barrelspinner_deco', 'name' => 'Heavy Splatling Deco']);
 }
コード例 #22
0
 private function makeWeaponsListSubweapons()
 {
     $ret = [];
     foreach (Subweapon::find()->all() as $item) {
         $ret['+' . $item->key] = Yii::t('app-subweapon', $item->name);
     }
     asort($ret);
     return [Yii::t('app', 'Sub Weapon') => $ret];
 }