Conditions | 19 |
Paths | 1126 |
Total Lines | 77 |
Code Lines | 54 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
32 | function rpg_points_change($user_id, $change_type, $dark_matter, $comment = false, $already_changed = false) { |
||
33 | global $debug, $config, $dm_change_legit, $user; |
||
34 | |||
35 | if(!$user_id) { |
||
36 | return false; |
||
37 | } |
||
38 | |||
39 | $dm_change_legit = true; |
||
40 | $sn_data_dark_matter_db_name = pname_resource_name(RES_DARK_MATTER); |
||
41 | |||
42 | if($already_changed) { |
||
43 | $rows_affected = 1; |
||
44 | } else { |
||
45 | $changeset = array(); |
||
46 | $a_user = db_user_by_id($user_id, true); |
||
|
|||
47 | if($dark_matter < 0) { |
||
48 | $dark_matter_exists = mrc_get_level($a_user, null, RES_DARK_MATTER, false, true); |
||
49 | $dark_matter_exists < 0 ? $dark_matter_exists = 0 : false; |
||
50 | $metamatter_to_reduce = -$dark_matter - $dark_matter_exists; |
||
51 | if($metamatter_to_reduce > 0) { |
||
52 | $metamatter_exists = mrc_get_level($a_user, null, RES_METAMATTER); |
||
53 | if($metamatter_exists < $metamatter_to_reduce) { |
||
54 | $debug->error('Ошибка снятия ТМ - ММ+ТМ меньше, чем сумма для снятия!', 'Ошибка снятия ТМ', LOG_ERR_INT_NOT_ENOUGH_DARK_MATTER); |
||
55 | } |
||
56 | if(is_array($comment)) { |
||
57 | $comment = call_user_func_array('sprintf', $comment); |
||
58 | } |
||
59 | // mm_points_change($user_id, $change_type, -$metamatter_to_reduce, 'ММ в ТМ: ' . (-$dark_matter) . ' ТМ = ' . $dark_matter_exists . ' ТМ + ' . $metamatter_to_reduce . ' ММ. ' . $comment); |
||
60 | SN::$auth->account->metamatter_change($change_type, -$metamatter_to_reduce, 'ММ в ТМ: ' . (-$dark_matter) . ' ТМ = ' . $dark_matter_exists . ' ТМ + ' . $metamatter_to_reduce . ' ММ. ' . $comment); |
||
61 | $dark_matter = -$dark_matter_exists; |
||
62 | } |
||
63 | } else { |
||
64 | $changeset[] = "`dark_matter_total` = `dark_matter_total` + '{$dark_matter}'"; |
||
65 | } |
||
66 | $dark_matter ? $changeset[] = "`{$sn_data_dark_matter_db_name}` = `{$sn_data_dark_matter_db_name}` + '{$dark_matter}'" : false; |
||
67 | !empty($changeset) ? db_user_set_by_id($user_id, implode(',', $changeset)) : false; |
||
68 | $rows_affected = SN::$db->db_affected_rows(); |
||
69 | } |
||
70 | |||
71 | if($rows_affected || !$dark_matter) { |
||
72 | $page_url = SN::$db->db_escape($_SERVER['SCRIPT_NAME']); |
||
73 | if(is_array($comment)) { |
||
74 | $comment = call_user_func_array('sprintf', $comment); |
||
75 | } |
||
76 | $comment = SN::$db->db_escape($comment); |
||
77 | $row = db_user_by_id($user_id, false); |
||
78 | $row['username'] = SN::$db->db_escape($row['username']); |
||
79 | doquery( |
||
80 | "INSERT INTO {{log_dark_matter}} (`log_dark_matter_username`, `log_dark_matter_reason`, |
||
81 | `log_dark_matter_amount`, `log_dark_matter_comment`, `log_dark_matter_page`, `log_dark_matter_sender`) |
||
82 | VALUES ( |
||
83 | '{$row['username']}', {$change_type}, |
||
84 | {$dark_matter}, '{$comment}', '{$page_url}', {$user_id} |
||
85 | );"); |
||
86 | |||
87 | if($user['id'] == $user_id) { |
||
88 | $user['dark_matter'] += $dark_matter; |
||
89 | } |
||
90 | |||
91 | if($dark_matter > 0) { |
||
92 | $old_referral = doquery("SELECT * FROM {{referrals}} WHERE `id` = {$user_id} LIMIT 1 FOR UPDATE;", '', true); |
||
93 | if($old_referral['id']) { |
||
94 | doquery("UPDATE {{referrals}} SET dark_matter = dark_matter + '{$dark_matter}' WHERE `id` = {$user_id} LIMIT 1;"); |
||
95 | $new_referral = doquery("SELECT * FROM {{referrals}} WHERE `id` = {$user_id} LIMIT 1;", '', true); |
||
96 | |||
97 | $partner_bonus = floor($new_referral['dark_matter'] / $config->rpg_bonus_divisor) - ($old_referral['dark_matter'] >= $config->rpg_bonus_minimum ? floor($old_referral['dark_matter'] / $config->rpg_bonus_divisor) : 0); |
||
98 | if($partner_bonus > 0 && $new_referral['dark_matter'] >= $config->rpg_bonus_minimum) { |
||
99 | rpg_points_change($new_referral['id_partner'], RPG_REFERRAL, $partner_bonus, "Incoming From Referral ID {$user_id}"); |
||
100 | } |
||
101 | } |
||
102 | } |
||
103 | } else { |
||
104 | $debug->warning("Error adjusting Dark Matter for player ID {$user_id} (Player Not Found?) with {$dark_matter}. Reason: {$comment}", 'Dark Matter Change', 402); |
||
105 | } |
||
106 | |||
107 | $dm_change_legit = false; |
||
108 | return $rows_affected; |
||
109 | } |
||
197 |