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

checkPortTradeable()   A

Complexity

Conditions 5
Paths 5

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 14
rs 9.6111
c 0
b 0
f 0
cc 5
nc 5
nop 2
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