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

Passed
Pull Request — master (#1005)
by Dan
04:25
created

SmrScoutDrones::getModifiedDamage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php declare(strict_types=1);
2
3
class SmrScoutDrones extends AbstractSmrCombatWeapon {
4
	protected $numberOfSDs;
5
6
	public function __construct($gameTypeID, $numberOfSDs) {
7
		$this->gameTypeID = $gameTypeID;
8
		$this->numberOfSDs = $numberOfSDs;
9
		$this->name = 'Scout Drones';
10
		$this->raceID = 0;
0 ignored issues
show
Bug Best Practice introduced by
The property raceID does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
11
		$this->maxDamage = 20;
12
		$this->shieldDamage = 20;
13
		$this->armourDamage = 20;
14
		$this->accuracy = 100;
15
		$this->damageRollover = false;
16
	}
17
18
	public function getNumberOfSDs() {
19
		return $this->numberOfSDs;
20
	}
21
22
	public function getModifiedAccuracy() {
23
		$modifiedAccuracy = $this->getBaseAccuracy();
24
		return $modifiedAccuracy;
25
	}
26
27
	public function getModifiedForceAccuracyAgainstPlayer(SmrForce $forces, AbstractSmrPlayer $targetPlayer) {
28
		return $this->getModifiedForceAccuracyAgainstPlayerUsingRandom($forces, $targetPlayer, rand(1, 7) * rand(1, 7));
29
	}
30
31
	protected function getModifiedForceAccuracyAgainstPlayerUsingRandom(SmrForce $forces, AbstractSmrPlayer $targetPlayer, $random) {
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

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

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