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 (#1078)
by Dan
05:25
created

SmrScoutDrones   A

Complexity

Total Complexity 15

Size/Duplication

Total Lines 86
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 43
c 3
b 0
f 0
dl 0
loc 86
rs 10
wmc 15

14 Methods

Rating   Name   Duplication   Size   Complexity  
A getModifiedPlanetDamageAgainstPlayer() 0 3 1
A getModifiedPortDamageAgainstPlayer() 0 3 1
A shootPlayer() 0 3 1
A getModifiedForceDamageAgainstPlayer() 0 11 2
A getModifiedForceAccuracyAgainstPlayerUsingRandom() 0 5 1
A __construct() 0 7 1
A getModifiedForceAccuracyAgainstPlayer() 0 2 1
A shootForces() 0 3 1
A shootPlayerAsForce() 0 5 1
A getModifiedDamageAgainstPort() 0 3 1
A getModifiedDamageAgainstPlanet() 0 3 1
A getModifiedAccuracy() 0 3 1
A getModifiedDamageAgainstPlayer() 0 3 1
A getModifiedDamageAgainstForces() 0 3 1
1
<?php declare(strict_types=1);
2
3
class SmrScoutDrones extends AbstractSmrCombatWeapon {
4
	use Traits\CombatWeaponForce;
5
6
	public function __construct(int $numberOfSDs) {
7
		$this->amount = $numberOfSDs;
8
		$this->name = 'Scout Drones';
9
		$this->shieldDamage = 20;
10
		$this->armourDamage = 20;
11
		$this->accuracy = 100;
12
		$this->damageRollover = false;
13
	}
14
15
	public function getModifiedAccuracy() : float {
16
		$modifiedAccuracy = $this->getBaseAccuracy();
17
		return $modifiedAccuracy;
18
	}
19
20
	public function getModifiedForceAccuracyAgainstPlayer(SmrForce $forces, AbstractSmrPlayer $targetPlayer) : float {
21
		return $this->getModifiedForceAccuracyAgainstPlayerUsingRandom($forces, $targetPlayer, rand(1, 7) * rand(1, 7));
22
	}
23
24
	protected function getModifiedForceAccuracyAgainstPlayerUsingRandom(SmrForce $forces, AbstractSmrPlayer $targetPlayer, int $random) : float {
0 ignored issues
show
Unused Code introduced by
The parameter $forces is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

24
	protected function getModifiedForceAccuracyAgainstPlayerUsingRandom(/** @scrutinizer ignore-unused */ SmrForce $forces, AbstractSmrPlayer $targetPlayer, int $random) : float {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
25
		$modifiedAccuracy = $this->getModifiedAccuracy();
26
		$modifiedAccuracy -= $targetPlayer->getLevelID() + $random;
27
28
		return max(0, min(100, $modifiedAccuracy));
29
	}
30
31
	public function getModifiedDamageAgainstForces(AbstractSmrPlayer $weaponPlayer, SmrForce $forces) : array {
32
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
33
		return $return;
34
	}
35
36
	public function getModifiedDamageAgainstPort(AbstractSmrPlayer $weaponPlayer, SmrPort $port) : array {
37
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
38
		return $return;
39
	}
40
41
	public function getModifiedDamageAgainstPlanet(AbstractSmrPlayer $weaponPlayer, SmrPlanet $planet) : array {
42
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
43
		return $return;
44
	}
45
46
	public function getModifiedDamageAgainstPlayer(AbstractSmrPlayer $weaponPlayer, AbstractSmrPlayer $targetPlayer) : array {
47
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
48
		return $return;
49
	}
50
51
	public function getModifiedPortDamageAgainstPlayer(SmrPort $port, AbstractSmrPlayer $targetPlayer) : array {
52
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
53
		return $return;
54
	}
55
56
	public function getModifiedPlanetDamageAgainstPlayer(SmrPlanet $planet, AbstractSmrPlayer $targetPlayer) : array {
57
		$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
58
		return $return;
59
	}
60
61
	public function getModifiedForceDamageAgainstPlayer(SmrForce $forces, AbstractSmrPlayer $targetPlayer) : array {
62
		if (!$this->canShootTraders()) { // If we can't shoot traders then just return a damageless array and don't waste resources calculated any damage mods.
63
			$return = array('MaxDamage' => 0, 'Shield' => 0, 'Armour' => 0, 'Rollover' => $this->isDamageRollover());
64
			return $return;
65
		}
66
		$damage = $this->getDamage();
67
		$damage['Launched'] = ICeil($this->getAmount() * $this->getModifiedForceAccuracyAgainstPlayer($forces, $targetPlayer) / 100);
68
		$damage['MaxDamage'] = ICeil($damage['Launched'] * $damage['MaxDamage']);
69
		$damage['Shield'] = ICeil($damage['Launched'] * $damage['Shield']);
70
		$damage['Armour'] = ICeil($damage['Launched'] * $damage['Armour']);
71
		return $damage;
72
	}
73
74
	public function shootForces(AbstractSmrPlayer $weaponPlayer, SmrForce $forces) : array {
75
		$return = array('Weapon' => $this, 'TargetForces' => $forces);
76
		return $return;
77
	}
78
79
	public function shootPlayer(AbstractSmrPlayer $weaponPlayer, AbstractSmrPlayer $targetPlayer) : array {
80
		$return = array('Weapon' => $this, 'TargetPlayer' => $targetPlayer, 'Hit' => false);
81
		return $return;
82
	}
83
84
	public function shootPlayerAsForce(SmrForce $forces, AbstractSmrPlayer $targetPlayer) : array {
85
		$return = array('Weapon' => $this, 'TargetPlayer' => $targetPlayer, 'Hit' => true);
86
		$return = $this->doForceDamageToPlayer($return, $forces, $targetPlayer);
87
		$forces->takeSDs($return['WeaponDamage']['Launched']);
88
		return $return;
89
	}
90
}
91