Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Failed Conditions
Pull Request — master (#1072)
by Dan
05:03
created

check_bargain_number()   B

Complexity

Conditions 6
Paths 14

Size

Total Lines 44
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 6
eloc 23
nc 14
nop 6
dl 0
loc 44
rs 8.9297
c 1
b 0
f 0
1
<?php declare(strict_types=1);
2
3
function check_bargain_number(int $amount, int $ideal_price, int $offered_price, int $bargain_price, Page $container, SmrPlayer $player) : void {
4
	$var = Smr\Session::getInstance()->getCurrentVar();
5
6
	$port = $player->getSectorPort();
7
8
	// increase current number of tries
9
	$container['number_of_bargains'] = isset($var['number_of_bargains']) ? $var['number_of_bargains'] + 1 : 1;
10
11
	if (isset($var['overall_number_of_bargains'])) {
12
		// lose relations for bad bargain
13
		$player->decreaseRelationsByTrade($amount, $port->getRaceID());
14
		$player->increaseHOF(1, array('Trade', 'Results', 'Fail'), HOF_PUBLIC);
15
		// transfer values
16
		$container->addVar('overall_number_of_bargains');
17
18
		// does we have enough of it?
19
		if ($container['number_of_bargains'] > $container['overall_number_of_bargains']) {
20
			$player->decreaseRelationsByTrade($amount, $port->getRaceID());
21
			$player->increaseHOF(1, array('Trade', 'Results', 'Epic Fail'), HOF_PUBLIC);
22
			create_error('You don\'t want to accept my offer? I\'m sick of you! Get out of here!');
23
		}
24
25
		$port_off = IRound($offered_price * 100 / $ideal_price);
26
		$trader_off = IRound($bargain_price * 100 / $ideal_price);
27
28
		// get relative numbers!
29
		// be carefull! one of this value is negative!
30
		$port_off_rel = 100 - $port_off;
31
		$trader_off_rel = 100 - $trader_off;
32
33
		// only do something, if we are more off than the trader
34
		if (abs($port_off_rel) > abs($trader_off_rel)) {
35
			// get a random number between
36
			// (port_off) and (100 +/- $trader_off_rel)
37
			if (100 + $trader_off_rel < $port_off) {
38
				$offer_modifier = rand(100 + $trader_off_rel, $port_off);
39
			} else {
40
				$offer_modifier = rand($port_off, 100 + $trader_off_rel);
41
			}
42
43
			$container['offered_price'] = IRound($container['ideal_price'] * $offer_modifier / 100);
44
		}
45
	} else {
46
		$container['overall_number_of_bargains'] = rand(2, 5);
47
	}
48
}
49