root/dev/common/eft_fitting.php

Revision 472, 7.6 KB (checked in by kovell, 13 years ago)

Updated eft fitting to show subsystems.

Line 
1<?php
2// Original by TEKAI
3// Ammo addition and little modifications by Wes Lave
4require_once('common/includes/class.kill.php');
5
6$kll_id = intval($_GET['kll_id']);
7$kill = new Kill($kll_id);
8$ship = $kill->getVictimShip();
9$pilotname = $kill->getVictimName();
10$shipclass = $ship->getClass();
11$shipname = $ship->getName();
12$system = $kill->getSystem();
13$killtitle .= $pilotname."'s ".$shipname;
14
15$fitting_array[1] = array();    // high slots
16$fitting_array[2] = array();    // med slots
17$fitting_array[3] = array();    // low slots
18$fitting_array[5] = array();    // rig slots
19$fitting_array[6] = array();    // drone bay
20$fitting_array[7] = array();    // subsystems
21$ammo_array[1] = array();       // high ammo
22$ammo_array[2] = array();       // mid ammo
23
24
25if (count($kill->destroyeditems_) > 0)
26{
27        foreach($kill->destroyeditems_ as $destroyed)
28        {
29                $item = $destroyed->getItem();
30                $i_qty = $destroyed->getQuantity();
31                $i_name = $item->getName();
32                $i_location = $destroyed->getLocationID();
33                $i_id = $item->getID();
34                $i_usedgroup = $item->get_used_launcher_group($i_name);
35                //Fitting, KE - add destroyed items to an array of all fitted items.
36                if($i_location != 4)
37                {
38                        if(($i_usedgroup != 0))
39                        {
40                                if ($i_location == 1)
41                                {
42                                        $i_ammo=$item->get_ammo_size($i_name);
43
44                                }
45                                else
46                                {
47                                        $i_ammo = 0;
48                                }
49                                $ammo_array[$i_location][]=array('Name'=>$i_name, 'usedgroupID' => $i_usedgroup, 'size' => $i_ammo);
50                        } else
51                        {
52                                for ($count = 0; $count < $i_qty; $count++)
53                                {
54                                        if ($i_location == 1)
55                                        {
56                                                $i_charge=$item->get_used_charge_size($i_name);
57                                        }
58                                        else
59                                        {
60                                                $i_charge = 0;
61                                        }
62                                        $fitting_array[$i_location][]=array('Name'=>$i_name, 'groupID' => $item->get_group_id($i_name), 'chargeSize' => $i_charge);
63                                }
64                        }
65                }
66        //fitting thing end
67        }
68}
69
70if (count($kill->droppeditems_) > 0)
71{
72        foreach($kill->droppeditems_ as $dropped)
73        {
74                $item = $dropped->getItem();
75                $i_qty = $dropped->getQuantity();
76                $i_name = $item->getName();
77                $i_location = $dropped->getLocationID();
78                $i_id = $item->getID();
79                $i_usedgroup = $item->get_used_launcher_group($i_name);
80                //Fitting -KE, add dropped items to the list
81                if($i_location != 4)
82                {
83                        if(($i_usedgroup != 0))
84                        {
85                                if ($i_location == 1)
86                                {
87                                        $i_ammo=$item->get_ammo_size($i_name);
88                                }
89                                else
90                                {
91                                        $i_ammo = 0;
92                                }
93                                $ammo_array[$i_location][]=array('Name'=>$i_name, 'usedgroupID' => $i_usedgroup, 'size' => $i_ammo);
94                        } else
95                        {
96                                for ($count = 0; $count < $i_qty; $count++)
97                                {
98                                        if ($i_location == 1)
99                                        {
100                                                $i_charge=$item->get_used_charge_size($i_name);
101                                        }
102                                        else
103                                        {
104                                                $i_charge = 0;
105                                        }
106                                        $fitting_array[$i_location][]=array('Name'=>$i_name, 'groupID' => $item->get_group_id($i_name), 'chargeSize' => $i_charge);
107                                }
108                        }
109                }
110        //fitting thing end
111
112
113        }
114}
115
116//Fitting - KE, sort the fitted items into groupID order, so that several of the same item apear next to each other.
117if(!(empty($fitting_array[1])))
118{
119        foreach ($fitting_array[1] as $array_rowh)
120        {
121                $sort_by_nameh["groupID"][] = $array_rowh["groupID"];
122        }
123        array_multisort($sort_by_nameh["groupID"],SORT_ASC,$fitting_array[1]);
124}
125
126if(!(empty($fitting_array[2])))
127{
128        foreach ($fitting_array[2] as $array_rowm)
129        {
130                $sort_by_namem["groupID"][] = $array_rowm["groupID"];
131        }
132        array_multisort($sort_by_namem["groupID"],SORT_ASC,$fitting_array[2]);
133}
134
135if(!(empty($fitting_array[3])))
136{
137        foreach ($fitting_array[3] as $array_rowl)
138        {
139                $sort_by_namel["groupID"][] = $array_rowl["groupID"];
140        }
141        array_multisort($sort_by_namel["groupID"],SORT_ASC,$fitting_array[3]);
142}
143
144if(!(empty($fitting_array[5])))
145{
146        foreach ($fitting_array[5] as $array_rowr)
147        {
148                $sort_by_namer["Name"][] = $array_rowr["Name"];
149        }
150        array_multisort($sort_by_namer["Name"],SORT_ASC,$fitting_array[5]);
151}
152
153if(!(empty($fitting_array[6])))
154{
155        foreach ($fitting_array[6] as $array_rowd)
156        {
157                $sort_by_named["Name"][] = $array_rowd["Name"];
158        }
159        array_multisort($sort_by_named["Name"],SORT_ASC,$fitting_array[6]);
160}
161
162if(!(empty($fitting_array[7])))
163{
164        foreach ($fitting_array[7] as $array_rowd)
165        {
166                $sort_by_names["Name"][] = $array_rowd["Name"];
167        }
168        array_multisort($sort_by_names["Name"],SORT_ASC,$fitting_array[7]);
169}
170
171//Fitting - KE, sort the fitted items into name order, so that several of the same item apear next to each other. -end
172
173$length = count($ammo_array[1]);
174$temp = array();
175if(is_array($fitting_array[1]))
176{
177        $hiammo = array();
178        foreach ($fitting_array[1] as $highfit)
179        {
180                $group = $highfit["groupID"];
181                $size = $highfit["chargeSize"];
182                if($group == 483 // Modulated Deep Core Miner II, Modulated Strip Miner II and Modulated Deep Core Strip Miner II
183                        || $group == 53 // Laser Turrets
184                        || $group == 55 // Projectile Turrets
185                        || $group == 74 // Hybrid Turrets
186                        || ($group >= 506 && $group <= 511) // Some Missile Lauchers
187                        || $group == 481 // Probe Launchers
188                        || $group == 899 // Warp Disruption Field Generator I
189                        || $group == 771 // Heavy Assault Missile Launchers
190                        || $group == 589 // Interdiction Sphere Lauchers
191                        || $group == 524 // Citadel Torpedo Launchers
192                )
193                {
194                        $found = 0;
195                        if ($group == 511)
196                        { $group = 509; } // Assault Missile Lauchers uses same ammo as Standard Missile Lauchers
197                        if(is_array($ammo_array[1]))
198                        {
199                                $i = 0;
200                                while (!($found) && $i<$length)
201                                {
202                                        $temp = array_shift($ammo_array[1]);
203                                        if (($temp["usedgroupID"] == $group) && ($temp["size"] == $size))
204                                        {
205                                                $hiammo[]=$temp["Name"];
206                                                $found = 1;
207                                        }
208                                        array_push($ammo_array[1],$temp);
209                                        $i++;
210                                }
211                        }
212                        if (!($found))
213                        {
214                                $hiammo[]=0;
215                        }
216                } else
217                {
218                        $hiammo[]=0;
219                }
220        }
221}
222
223$length = count($ammo_array[2]);
224if(is_array($fitting_array[2]))
225{
226        $midammo = array();
227        foreach ($fitting_array[2] as $midfit)
228        {
229                $group = $midfit["groupID"];
230                if($group == 76 // Capacitor Boosters
231                        || $group == 208 // Remote Sensor Dampeners
232                        || $group == 212 // Sensor Boosters
233                        || $group == 291 // Tracking Disruptors
234                        || $group == 213 // Tracking Computers
235                        || $group == 209 // Tracking Links
236                        || $group == 290 // Remote Sensor Boosters
237                )
238                {
239                        $found = 0;
240                        if(is_array($ammo_array[2]))
241                        {
242                                $i = 0;
243                                while (!($found) && $i<$length)
244                                {
245                                        $temp = array_shift($ammo_array[2]);
246                                        if ($temp["usedgroupID"] == $group)
247                                        {
248                                                $midammo[]=$temp["Name"];
249                                                $found = 1;
250                                        }
251                                        array_push($ammo_array[2],$temp);
252                                        $i++;
253                                }
254                        }
255                        if (!($found))
256                        {
257                                $midammo[]=0;
258                        }
259                }
260                else
261                {
262                        $midammo[]=0;
263                }
264        }
265}
266
267$slots = array(3 => "[empty low slot]",
268        2 => "[empty mid slot]",
269        1 => "[empty high slot]",
270        5 => "[empty rig slot]",
271        7 => "",
272        6 => "");
273
274?>
275popup|<form>
276<table class="popup-table" height="100%" width="355px">
277<tr>
278        <td align="center"><strong>EFT Fitting</strong></td>
279</tr>
280<tr>
281        <td align="center"><input type="button" value="Close" onClick="ReverseContentDisplay('popup');"></td>
282</tr>
283<tr>
284<td valign="top" align="center">
285<textarea class="killmail" name="killmail" cols="60" rows="30" readonly="readonly">
286[<?php echo $shipname; ?>, <?php echo $killtitle; ?>]
287<?php
288foreach ($slots as $i => $empty)
289{
290        if (empty($fitting_array[$i]))
291        {
292                echo $empty."\n";
293        }
294        else
295        {
296                foreach ($fitting_array[$i] as $k => $a_item)
297                {
298                        $item = $a_item['Name'];
299                        if ($i == 6)
300                        {
301                                $item .= ' x1';
302                        }
303                        elseif ($i == 1)
304                        {
305                                if ($hiammo[$k])
306                                {
307                                        $item .=','.$hiammo[$k];
308                                }
309                        }
310                        elseif ($i == 2)
311                        {
312                                if ($midammo[$k])
313                                {
314                                        $item .=','.$midammo[$k];
315                                }
316                        }
317                        echo $item."\n";
318                }
319        }
320        echo "\n";
321}
322?>
323</textarea></td></tr>
324<tr><td align="center"><input type="button" value="Select All" onClick="this.form.killmail.select();this.form.killmail.focus(); document.execCommand('Copy')">&nbsp;<input type="button" value="Close" onClick="ReverseContentDisplay('popup');"></td>
325</tr>
326</table>
327</form>
Note: See TracBrowser for help on using the browser.