root/dev/mods/apoc_fitting/kill_detail.php @ 491

Revision 439, 29.5 KB (checked in by kovell, 11 years ago)

Fixes: Blueprints not included in kill value, updated values greater than 231 allowed

Line 
1<?php
2require_once('common/includes/class.kill.php');
3
4$page = new Page('Kill details');
5
6$kll_id = intval($_GET['kll_id']);
7$kll_external_id = intval($_GET['kll_external_id']);
8if (!$kll_id && !$kll_external_id)
9{
10    $html = "No kill id specified.";
11    $page->setContent($html);
12    $page->generate($html);
13    exit;
14}
15
16if($kll_id)
17{
18        $kill = new Kill($kll_id);
19}
20else
21{
22        $kill = new Kill($kll_external_id, true);
23        $kll_id = $kill->getID();
24}
25$kill->setDetailedInvolved();
26
27if (!$kill->exists())
28{
29    $html="That kill doesn't exist.";
30    $page->setContent($html);
31    $page->generate($html);
32    exit;
33}
34
35// If a comment is being posted then we don't exit this block.
36if(isset($_POST['comment']) && config::get('comments'))
37{
38    include('common/comments.php');
39}
40
41require_once('common/includes/class.killsummarytable.php');
42require_once('common/includes/class.pilot.php');
43require_once('common/includes/class.corp.php');
44require_once('common/includes/class.alliance.php');
45
46$page=new Page('Kill details');
47$page->addHeader('<link rel="stylesheet" type="text/css" href="mods/apoc_fitting/style.css">');
48
49// check apoc settings are set up. If not, put defaults in.
50if(!config::get('apocfitting_colour'))
51{
52        config::set('apocfitting_colour', 'apoc');
53        config::set('apocfitting_themedir', 'panel');
54}
55
56$smarty->assign('panel_colour', config::get('apocfitting_colour'));
57$smarty->assign('dropped_colour', config::get('apocfitting_dropped_colour'));
58$smarty->assign('themedir', config::get('apocfitting_themedir'));
59$smarty->assign('showammo', config::get('apocfitting_showammo'));
60$smarty->assign('showiskd', config::get('apocfitting_showiskd'));
61$smarty->assign('showext', config::get('apocfitting_showext'));
62$mapmod = config::get('apocfitting_mapmod');
63$sidemap = config::get('apocfitting_sidemap');
64$showbox = config::get('apocfitting_showbox');
65
66if (config::get('item_values'))
67{
68    $smarty->assign('item_values', 'true');
69
70    if ($page->isAdmin())
71        {
72        if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateValue')
73        {
74                        // Send new value for item to the database
75                        $qry = new DBQuery();
76                        $qry->autocommit(false);
77                        if(isset($_POST['SID']))
78                        {
79                                $SID = intval($_POST['SID']);
80                                $Val = preg_replace('/[^0-9]/','',$_POST[$SID]);
81                                $qry->execute("INSERT INTO kb3_ships_values (shp_id, shp_value) VALUES ('".$SID."', '".$Val."') ON DUPLICATE KEY UPDATE shp_value = '".$Val."'");
82                                $victimship = $kill->getVictimShip();
83                                $kill->setVictimShip(new Ship($victimship->getID() ));
84                        }
85                        else
86                        {
87                                $IID = intval($_POST['IID']);
88                                $Val = preg_replace('/[^0-9]/','',$_POST[$IID]);
89                                $qry->execute("INSERT INTO kb3_item_price (typeID, price) VALUES ('".$IID."', '".$Val."') ON DUPLICATE KEY UPDATE price = '".$Val."'");
90                                foreach($kill->destroyeditems_ as $i => $ditem)
91                                {
92                                        $item = $ditem->getItem();
93                                        if($item->getID() == $IID) $kill->destroyeditems_[$i]->value = $Val;
94                                }
95                                foreach($kill->droppeditems_ as $i=> $ditem)
96                                {
97                                        $item = $ditem->getItem();
98                                        if($item->getID() == $IID) $kill->droppeditems_[$i]->value = $Val;
99                                }
100                        }
101                        $qry->execute("UPDATE kb3_kills SET kll_isk_loss = ".$kill->calculateISKLoss()." WHERE kll_id = ".$kill->getID());
102                        $qry->autocommit(true);
103        }
104        }
105}
106
107if ($page->isAdmin())
108    {
109    if (isset($_GET['view']) && $_GET['view'] == 'FixSlot')
110        {
111        $smarty->assign('fixSlot', 'true');
112        }
113
114    $smarty->assign('admin', 'true');
115
116    if (isset($_POST['submit']) && $_POST['submit'] == 'UpdateSlot')
117        {
118        $IID  =$_POST['IID'];
119        $KID  =$_POST['KID'];
120        $Val  =$_POST[$IID];
121        $table=$_POST['TYPE'];
122        $old  =$_POST['OLDSLOT'];
123        $qry  =new DBQuery();
124        $qry->execute("UPDATE kb3_items_" . $table . " SET itd_itl_id ='" . $Val . "' WHERE itd_itm_id=" . $IID
125                          . " AND itd_kll_id = " . $KID . " AND itd_itl_id = " . $old);
126        }
127    }
128
129// Begin -- Sapyx 25-08-2008
130
131$qry=new DBQuery();
132
133if (ALLIANCE_ID <> '0')
134    {
135    $qry->execute("SELECT all_name FROM kb3_alliances WHERE all_id = " . ALLIANCE_ID) or die($qry->getErrorMsg());
136
137    $row=$qry->getRow();
138    $smarty->assign('IsAlly', true);
139    $smarty->assign('HomeName', $row['all_name']);
140
141/*
142    $qry->execute("SELECT `kb3_corps`.`crp_name` FROM kb3_corps WHERE (kb3_corps.crp_all_id=" . ALLIANCE_ID . ")")
143        or die($qry->getErrorMsg());
144
145    $rosso=0x70;
146    $verde=0;
147    $blu  =0x70;
148
149    while ($row=$qry->getRow())
150        {
151        $verde+=10;
152        $blu-=10;
153        $rosso-=15;
154        $corps[$row['crp_name']]="RGB($rosso,$verde,$blu)";
155        }
156 */
157    }
158else
159    {
160    $qry->execute("SELECT crp_name FROM kb3_corps WHERE crp_id = " . CORP_ID) or die($qry->getErrorMsg());
161
162    $row=$qry->getRow();
163    $smarty->assign('IsAlly', false);
164    $smarty->assign('HomeName', $row['crp_name']);
165    }
166
167// END --
168
169// victim $smarty->assign('',);
170$smarty->assign('KillId', $kill->getID());
171$smarty->assign('VictimPortrait', $kill->getVictimPortrait(64));
172$smarty->assign('VictimURL', "?a=pilot_detail&amp;plt_id=" . $kill->getVictimID());
173$smarty->assign('VictimName', $kill->getVictimName());
174$smarty->assign('VictimCorpURL', "?a=corp_detail&amp;crp_id=" . $kill->getVictimCorpID());
175$smarty->assign('VictimCorpName', $kill->getVictimCorpName());
176$smarty->assign('VictimAllianceURL', "?a=alliance_detail&amp;all_id=" . $kill->getVictimAllianceID());
177$smarty->assign('VictimAllianceName', $kill->getVictimAllianceName());
178$smarty->assign('VictimDamageTaken', $kill->VictimDamageTaken);
179$smarty->assign('InvolvedPartyCount', $kill->getInvolvedPartyCount()); // Anne Sapyx 07/05/2008
180$smarty->assign('AllyCorps', $corps);
181
182// involved
183$i=1;
184
185$involved=array();
186$ownKill= false;
187
188foreach ($kill->involvedparties_ as $inv)
189{
190    $pilot                     =$inv->getPilot();
191    $corp                      =$inv->getCorp();
192    $alliance                  =$inv->getAlliance();
193    $ship                      =$inv->getShip();
194    $weapon                    =$inv->getWeapon();
195
196    $involved[$i]['shipImage'] =$ship->getImage(64);
197    $involved[$i]['PilotURL']  ="?a=pilot_detail&amp;plt_id=" . $pilot->getID();
198    $involved[$i]['PilotName'] =$pilot->getName();
199    $involved[$i]['CorpURL']   ="?a=corp_detail&amp;crp_id=" . $corp->getID();
200    $involved[$i]['CorpName']  =$corp->getName();
201    $involved[$i]['AlliURL']   ="?a=alliance_detail&amp;all_id=" . $alliance->getID();
202    $involved[$i]['AlliName']  =$alliance->getName();
203    $involved[$i]['ShipName']  =$ship->getName();
204    $involved[$i]['ShipID']    =$ship->externalid_;
205    $involved[$i]['damageDone']=$inv->dmgdone_;
206    $shipclass                 =$ship->getClass();
207
208    $involved[$i]['shipClass'] =$shipclass->getName();
209
210    if ($pilot->getID() == $kill->getFBPilotID())
211        {
212        $involved[$i]['FB']="true";
213        }
214    else
215        {
216        $involved[$i]['FB']="false";
217        }
218
219    if ($corp->isNPCCorp())
220        {
221        $involved[$i]['portrait']=$corp->getPortraitURL(64);
222        }
223    else
224        {
225        $involved[$i]['portrait']=$pilot->getPortraitURL(64);
226        }
227
228    if ($weapon->getName() != "Unknown" && $weapon->getName() != $ship->getName())
229        {
230        $involved[$i]['weaponName']=$weapon->getName();
231        $involved[$i]['weaponID']  =$weapon->row_['itm_externalid'];
232        }
233    else
234        $involved[$i]['weaponName']="Unknown";
235
236    // Sapyx 16/09/2008 -- from Rostik idea
237    // Update by Rostik 19/08/2008 - Add Alliance logo
238    //sapyx 29/10/2008
239    // Sapyx 16/09/2008 -- from Rostik idea
240// Update by Rostik 19/08/2008 - Add Alliance logo
241//sapyx 29/10/2008
242// Rostik 11/03/2009
243
244    $handle=@fopen("mods/apoc_fitting/ItemsList", "r");
245
246    if ($handle)
247        {
248        while (!feof($handle))
249            {
250            $ItemsArray = explode(",", fgets($handle));
251              if (strpos($involved[$i]['weaponName'], trim($ItemsArray[0])) !== FALSE)
252                  {
253                  $involved[$i]['shipImage']="img/ships/64_64/" . trim($ItemsArray[1]) . ".png";
254
255                    if ($corp->isNPCCorp()) {
256                    } else {
257                    if ($involved[$i]['CorpName'] =="None") {
258                              $aliimg                  =ereg_replace(" ", "", $involved[$i]['AlliName']);
259                              $aliimg                  =ereg_replace("\.", "", $aliimg);
260                              $aliimg                  =ereg_replace("-", "", $aliimg);
261
262                    if (file_exists("img/alliances/".$aliimg.".png")) {
263                              $involved[$i]['portrait']="img/alliances/" . $aliimg . ".png";
264                    } else {
265                         $involved[$i]['portrait']="img/alliances/default.png";}
266
267                    if ((($involved[$i]['AlliName'] == "None") || ($involved[$i]['AlliName'] == "Unknown"))) {
268                       $involved[$i]['portrait']="img/alliances/default.png";
269                       }
270
271                    } else {
272                       $involved[$i]['portrait']="img/corps/" . $corp->getID() . ".jpg";
273                           }
274                    }
275                }
276            }
277
278        fclose($handle);
279        }
280
281// END -- Sapyx Rostik & C
282
283    // END -- Sapyx Rostik & C
284
285    // Begin -- Sapyx 25-06-2008
286    $InvAllies[$involved[$i]['AlliName']]["quantity"]+=1;
287    $InvAllies[$involved[$i]['AlliName']]["corps"][$involved[$i]['CorpName']]+=1;
288//HK    $InvShips[$involved[$i]['ShipName'] ." (" .$involved[$i]['shipClass'] .")"] += 1;
289    $InvShips[$involved[$i]['ShipName']] += 1;
290if(ALLIANCE_ID >0 && $alliance->getID()==ALLIANCE_ID) $ownKill=true;
291elseif(CORP_ID >0 && $corp->getID()==CORP_ID) $ownKill=true;
292    // End -- Sapyx 25-06-2008
293
294    ++$i;
295    }
296if($ownKill) $smarty->assign('kill',true);
297else $smarty->assign('kill',false);
298
299$smarty->assign_by_ref('involved', $involved);
300$smarty->assign_by_ref('AlliesCount', count($InvAllies));
301$smarty->assign_by_ref('InvAllies', $InvAllies);
302$smarty->assign_by_ref('InvShips', $InvShips);
303
304if (config::get('comments'))
305{
306    include('common/comments.php');
307    $smarty->assign('comments', $comment);
308}
309
310// ship, ship details
311$ship=$kill->getVictimShip();
312$shipclass=$ship->getClass();
313$system=$kill->getSystem();
314
315$smarty->assign('VictimShip', $kill->getVictimShip());
316$smarty->assign('ShipClass', $ship->getClass());
317$smarty->assign('ShipImage', $ship->getImage(64));
318$smarty->assign('ShipName', $ship->getName());
319$smarty->assign('ShipID', $ship->externalid_);
320$smarty->assign('ClassName', $shipclass->getName());
321if($page->isAdmin()) $smarty->assign('Ship', $ship);
322
323include_once('common/includes/class.dogma.php');
324
325$ssc=new dogma($ship->externalid_);
326
327$smarty->assign_by_ref('ssc', $ssc);
328
329if ($kill->isClassified())
330    {
331    //Admin is able to see classified Systems
332    if ($page->isAdmin())
333        {
334        if ($mapmod) {
335            $smarty->assign('SystemID', $system->getID());
336        }
337        $smarty->assign('System', $system->getName() . ' (Classified)');
338        $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=" . $system->getID());
339        $smarty->assign('SystemSecurity', $system->getSecurity(true));
340        }
341    else
342        {
343        $smarty->assign('System', 'Classified');
344        $smarty->assign('SystemURL', "");
345        $smarty->assign('SystemSecurity', '0.0');
346        }
347    }
348else
349    {
350    if ($mapmod) {
351        $smarty->assign('SystemID', $system->getID());
352    }
353    $smarty->assign('System', $system->getName());
354    $smarty->assign('SystemURL', "?a=system_detail&amp;sys_id=" . $system->getID());
355    $smarty->assign('SystemSecurity', $system->getSecurity(true));
356    }
357
358$smarty->assign('TimeStamp', $kill->getTimeStamp());
359$smarty->assign('VictimShipImg', $ship->getImage(64));
360
361if ($mapmod) {
362        if(strpos($config->get('mods_active'), 'map_mod') !== false) {
363
364        $smarty->assign('loc_active', TRUE);
365        }
366        else {
367        $smarty->assign('loc_active', FALSE);
368        }
369}
370
371// preparing slot layout
372
373$slot_array=array();
374
375$slot_array[1]=array
376    (
377    'img'   => 'icon08_11.png',
378    'text'  => 'Fitted - High slot',
379    'items' => array()
380    );
381
382$slot_array[2]=array
383    (
384    'img'   => 'icon08_10.png',
385    'text'  => 'Fitted - Mid slot',
386    'items' => array()
387    );
388
389$slot_array[3]=array
390    (
391    'img'   => 'icon08_09.png',
392    'text'  => 'Fitted - Low slot',
393    'items' => array()
394    );
395
396$slot_array[5]=array
397    (
398    'img'   => 'icon68_01.png',
399    'text'  => 'Fitted - Rig slot',
400    'items' => array()
401    );
402
403$slot_array[6]=array
404    (
405    'img'   => 'icon02_10.png',
406    'text'  => 'Drone bay',
407    'items' => array()
408    );
409
410$slot_array[4]=array
411    (
412    'img'   => 'icon03_14.png',
413    'text'  => 'Cargo Bay',
414    'items' => array()
415    );
416$slot_array[7]=array
417    (
418    'img'   => 'icon76_04.png',
419    'text'  => 'Fitted - Subsystems',
420    'items' => array()
421    );
422
423// ship fitting
424if (count($kill->destroyeditems_) > 0)
425    {
426    $dest_array=array();
427
428    foreach ($kill->destroyeditems_ as $destroyed)
429        {
430        $item = $destroyed->getItem();
431        $i_qty=$destroyed->getQuantity();
432
433        if (config::get('item_values'))
434            {
435            $value=$destroyed->getValue();
436            $TotalValue+=$value * $i_qty;
437            $formatted=$destroyed->getFormattedValue();
438            }
439
440        $i_name     =$item->getName();
441        $i_location =$destroyed->getLocationID();
442        $i_id       =$item->getID();
443        $i_usedgroup=$item->get_used_launcher_group();
444
445        $dest_array[$i_location][]=array
446            (
447            'Icon'        => $item->getIcon(32),
448            'Name'        => $i_name,
449            'Quantity'    => $i_qty,
450            'Value'       => $formatted,
451            'single_unit' => $value,
452            'itemID'      => $i_id,
453            'slotID'      => $i_location
454            );
455
456        //Fitting, KE - add destroyed items to an array of all fitted items.
457        if (($i_location != 4) && ($i_location != 5) && ($i_location != 6))
458            {
459            if (($i_usedgroup != 0))
460                {
461                if ($i_location == 1)
462                    {
463                    $i_ammo=$item->get_ammo_size($i_name);
464
465                    if ($i_usedgroup == 481)
466                        {
467                        $i_ammo=0;
468                        }
469                    }
470                else
471                    {
472                    $i_ammo=0;
473                    }
474
475                $ammo_array[$i_location][]=array
476                    (
477                    'Name'        => $i_name,
478                    'Icon'        => $item->getIcon(24),
479                    'itemID'      => $i_id,
480                    'usedgroupID' => $i_usedgroup,
481                    'size'        => $i_ammo
482                    );
483                }
484            else
485                {
486                for ($count=0; $count < $i_qty; $count++)
487                    {
488                    if ($i_location == 1)
489                        {
490                        $i_charge=$item->get_used_charge_size();
491                        }
492                    else
493                        {
494                        $i_charge=0;
495                        }
496
497                    $fitting_array[$i_location][]=array
498                        (
499                        'Name'       => $i_name,
500                        'Icon'       => $item->getIcon(32),
501                        'itemID'     => $i_id,
502                        'groupID'    => $item->get_group_id(),
503                        'chargeSize' => $i_charge
504                        );
505                    }
506                }
507            }
508        else if (($destroyed->getLocationID() == 5))
509            {
510            for ($count=0; $count < $i_qty; $count++)
511                {
512                $fitting_array[$i_location][]=array
513                    (
514                    'Name'   => $i_name,
515                    'Icon'   => $item->getIcon(32),
516                    'itemID' => $i_id
517                    );
518                }
519            }
520        //fitting thing end
521        }
522    }
523
524if (count($kill->droppeditems_) > 0)
525    {
526    $drop_array=array();
527
528    foreach ($kill->droppeditems_ as $dropped)
529        {
530        $item = $dropped->getItem();
531        $i_qty=$dropped->getQuantity();
532
533        if (config::get('item_values'))
534            {
535            $value=$dropped->getValue();
536            $dropvalue+=$value * $i_qty;
537            $formatted=$dropped->getFormattedValue();
538            }
539
540        $i_name     =$item->getName();
541        $i_location =$dropped->getLocationID();
542        $i_id       =$item->getID();
543        $i_usedgroup=$item->get_used_launcher_group();
544
545        $drop_array[$i_location][]=array
546            (
547            'Icon'        => $item->getIcon(32),
548            'Name'        => $i_name,
549            'Quantity'    => $i_qty,
550            'Value'       => $formatted,
551            'single_unit' => $value,
552            'itemID'      => $i_id,
553            'slotID'      => $i_location
554            );
555
556        //Fitting -KE, add dropped items to the list
557        if (($i_location != 4) && ($i_location != 6))
558            {
559            if (($i_usedgroup != 0))
560                {
561                if ($i_location == 1)
562                    {
563                    $i_ammo=$item->get_ammo_size($i_name);
564
565                    if ($i_usedgroup == 481)
566                        {
567                        $i_ammo=0;
568                        }
569                    }
570                else
571                    {
572                    $i_ammo=0;
573                    }
574
575                $ammo_array[$i_location][]=array
576                    (
577                    'Name'        => $i_name,
578                    'Icon'        => $item->getIcon(24),
579                    'itemID'      => $i_id,
580                    'usedgroupID' => $i_usedgroup,
581                    'size'        => $i_ammo
582                    );
583                }
584            else
585                {
586                for ($count=0; $count < $i_qty; $count++)
587                    {
588                    if ($i_location == 1)
589                        {
590                        $i_charge=$item->get_used_charge_size();
591                        }
592                    else
593                        {
594                        $i_charge=0;
595                        }
596
597                    $fitting_array[$i_location][]=array
598                        (
599                        'Name'       => $i_name,
600                        'Icon'       => $item->getIcon(32),
601                        'itemID'     => $i_id,
602                        'groupID'    => $item->get_group_id(),
603                        'chargeSize' => $i_charge
604                        );
605                    }
606                }
607            }
608        //fitting thing end
609
610        }
611    }
612
613//Fitting - KE, sort the fitted items into groupID order, so that several of the same item apear next to each other.
614if (is_array($fitting_array[1]))
615    {
616    foreach ($fitting_array[1] as $array_rowh)
617        {
618        $sort_by_nameh["groupID"][]=$array_rowh["groupID"];
619        }
620
621    array_multisort($sort_by_nameh["groupID"], SORT_ASC, $fitting_array[1]);
622    }
623
624if (is_array($fitting_array[2]))
625    {
626    foreach ($fitting_array[2] as $array_rowm)
627        {
628        $sort_by_namem["groupID"][]=$array_rowm["groupID"];
629        }
630
631    array_multisort($sort_by_namem["groupID"], SORT_ASC, $fitting_array[2]);
632    }
633
634if (is_array($fitting_array[3]))
635    {
636    foreach ($fitting_array[3] as $array_rowl)
637        {
638        $sort_by_namel["groupID"][]=$array_rowl["Name"];
639        }
640
641    array_multisort($sort_by_namel["groupID"], SORT_ASC, $fitting_array[3]);
642    }
643
644if (is_array($fitting_array[5]))
645    {
646    foreach ($fitting_array[5] as $array_rowr)
647        {
648        $sort_by_namer["Name"][]=$array_rowr["Name"];
649        }
650
651    array_multisort($sort_by_namer["Name"], SORT_ASC, $fitting_array[5]);
652    }
653
654if (is_array($fitting_array[7]))
655    {
656    foreach ($fitting_array[7] as $array_rowr)
657        {
658        $sort_by_namer["groupID"][]=$array_rowr["groupID"];
659        }
660
661    array_multisort($sort_by_namer["groupID"], SORT_ASC, $fitting_array[7]);
662    }
663
664//Fitting - KE, sort the fitted items into name order, so that several of the same item apear next to each other. -end
665
666$length=count($ammo_array[1]);
667
668$temp=array();
669
670if (is_array($fitting_array[1]))
671    {
672    $hiammo=array();
673
674    foreach ($fitting_array[1] as $highfit)
675        {
676        $group = $highfit["groupID"];
677        $size  =$highfit["chargeSize"];
678
679        if ($group
680            == 483                          // Modulated Deep Core Miner II, Modulated Strip Miner II and Modulated Deep Core Strip Miner II
681        || $group == 53                     // Laser Turrets
682        || $group == 55                     // Projectile Turrets
683        || $group == 74                     // Hybrid Turrets
684        || ($group >= 506 && $group <= 511) // Some Missile Lauchers
685        || $group == 481                    // Probe Launchers
686        || $group == 899                    // Warp Disruption Field Generator I
687        || $group == 771                    // Heavy Assault Missile Launchers
688        || $group == 589                    // Interdiction Sphere Lauchers
689        || $group == 524                    // Citadel Torpedo Launchers
690        )
691            {
692            $found=0;
693
694            if ($group == 511)
695                {
696                $group=509;
697                } // Assault Missile Lauchers uses same ammo as Standard Missile Lauchers
698
699            if (is_array($ammo_array[1]))
700                {
701                $i=0;
702
703                while (!($found) && $i < $length)
704                    {
705                    $temp = array_shift($ammo_array[1]);
706
707                    if (($temp["usedgroupID"] == $group) && ($temp["size"] == $size))
708                        {
709                        $hiammo[]=array
710                            (
711                            'show' => $smarty->fetch(get_tpl('ammo')),
712                            'type' => $temp["Icon"]
713                            );
714
715                        $found=1;
716                        }
717
718                    array_push($ammo_array[1], $temp);
719                    $i++;
720                    }
721                }
722
723            if (!($found))
724                {
725                $hiammo[]=array
726                    (
727                    'show' => $smarty->fetch(get_tpl('ammo')),
728                    'type' => $smarty->fetch(get_tpl('noicon'))
729                    );
730                }
731            }
732        else
733            {
734            $hiammo[]=array
735                (
736                'show' => $smarty->fetch(get_tpl('blank')),
737                'type' => $smarty->fetch(get_tpl('blank'))
738                );
739            }
740        }
741    }
742
743$length=count($ammo_array[2]);
744
745if (is_array($fitting_array[2]))
746    {
747    $midammo=array();
748
749    foreach ($fitting_array[2] as $midfit)
750        {
751        $group = $midfit["groupID"];
752
753        if ($group == 76 // Capacitor Boosters
754        || $group == 208 // Remote Sensor Dampeners
755        || $group == 212 // Sensor Boosters
756        || $group == 291 // Tracking Disruptors
757        || $group == 213 // Tracking Computers
758        || $group == 209 // Tracking Links
759        || $group == 290 // Remote Sensor Boosters
760        )
761            {
762            $found=0;
763
764            if (is_array($ammo_array[2]))
765                {
766                $i=0;
767
768                while (!($found) && $i < $length)
769                    {
770                    $temp = array_shift($ammo_array[2]);
771
772                    if ($temp["usedgroupID"] == $group)
773                        {
774                        $midammo[]=array
775                            (
776                            'show' => $smarty->fetch(get_tpl('ammo')),
777                            'type' => $temp["Icon"]
778                            );
779
780                        $found=1;
781                        }
782
783                    array_push($ammo_array[2], $temp);
784                    $i++;
785                    }
786                }
787
788            if (!($found))
789                {
790                $midammo[]=array
791                    (
792                    'show' => $smarty->fetch(get_tpl('ammo')),
793                    'type' => $smarty->fetch(get_tpl('noicon'))
794                    );
795                }
796            }
797        else
798            {
799            $midammo[]=array
800                (
801                'show' => $smarty->fetch(get_tpl('blank')),
802                'type' => $smarty->fetch(get_tpl('blank'))
803                );
804            }
805        }
806    }
807
808if ($TotalValue >= 0)
809    {
810    $Formatted=number_format($TotalValue, 2);
811    }
812
813// Get Ship Value
814$ShipValue=$ship->getPrice();
815
816if (config::get('kd_droptototal'))
817    {
818    $TotalValue+=$dropvalue;
819    }
820
821$TotalLoss=number_format($TotalValue + $ShipValue, 2);
822$ShipValue=number_format($ShipValue, 2);
823$dropvalue=number_format($dropvalue, 2);
824
825$smarty->assign_by_ref('destroyed', $dest_array);
826$smarty->assign_by_ref('dropped', $drop_array);
827$smarty->assign_by_ref('slots', $slot_array);
828$smarty->assign_by_ref('fitting_high', $fitting_array[1]);
829$smarty->assign_by_ref('fitting_med', $fitting_array[2]);
830$smarty->assign_by_ref('fitting_low', $fitting_array[3]);
831$smarty->assign_by_ref('fitting_rig', $fitting_array[5]);
832$smarty->assign_by_ref('fitting_sub', $fitting_array[7]);
833$smarty->assign_by_ref('fitting_ammo_high', $hiammo);
834$smarty->assign_by_ref('fitting_ammo_mid', $midammo);
835$smarty->assign('ItemValue', $Formatted);
836$smarty->assign('DropValue', $dropvalue);
837$smarty->assign('ShipValue', $ShipValue);
838$smarty->assign('TotalLoss', $TotalLoss);
839
840$hicount =count($fitting_array[1]);
841$medcount=count($fitting_array[2]);
842$lowcount=count($fitting_array[3]);
843
844$smarty->assign('hic', $hicount);
845$smarty->assign('medc', $medcount);
846$smarty->assign('lowc', $lowcount);
847
848$menubox=new Box("Menu");
849$menubox->setIcon("menu-item.gif");
850$menubox->addOption("caption", "View");
851$menubox->addOption("link",
852                    "Killmail",
853                    "javascript:sndReq('index.php?a=kill_mail&amp;kll_id=" . $kill->getID()
854                        . "');ReverseContentDisplay('popup')");
855
856if (config::get('apocfitting_showeft')) {
857$menubox->addOption("link",
858                    "EFT Fitting",
859                    "javascript:sndReq('index.php?a=eft_fitting&amp;kll_id=" . $kill->getID()
860                        . "');ReverseContentDisplay('popup')");
861}
862
863if (config::get('apocfitting_showeft2eve')) {
864$menubox->addOption("link", "EFT To EVE", "javascript:sndReq('index.php?a=convertinkilldetail');ReverseContentDisplay('popup')");
865}
866
867if ($kill->relatedKillCount() > 1 || $kill->relatedLossCount() > 1 ||
868        ((ALLIANCE_ID || CORP_ID || PILOT_ID) && $kill->relatedKillCount() + $kill->relatedLossCount() > 1))
869{
870        $menubox->addOption("link", "Related kills (" . $kill->relatedKillCount() . "/" . $kill->relatedLossCount() . ")",
871                                        "?a=kill_related&amp;kll_id=" . $kill->getID());
872}
873
874if ($page->isAdmin())
875    {
876    $menubox->addOption("caption", "Admin");
877    $menubox->addOption("link",
878                        "Delete",
879                        "javascript:openWindow('?a=admin_kill_delete&amp;kll_id=" . $kill->getID()
880                            . "', null, 420, 300, '' );");
881
882    if (isset($_GET['view']) && $_GET['view'] == 'FixSlot')
883        {
884        $menubox->addOption("link", "Adjust Values", "?a=kill_detail&amp;kll_id=" . $kill->getID() . "");
885        }
886    else
887        {
888        $menubox->addOption("link", "Fix Slots", "?a=kill_detail&amp;kll_id=" . $kill->getID() . "&amp;view=FixSlot");
889        }
890    }
891
892$page->addContext($menubox->generate());
893
894if (config::get('kill_points'))
895    {
896    $scorebox=new Box("Points");
897    $scorebox->addOption("points", $kill->getKillPoints());
898    $page->addContext($scorebox->generate());
899    }
900
901// Final Blow/Top Damage Dealer - Begin (Ben Thomas - 17/05/09)
902if ($showbox) {
903$topdamage = $involved;
904
905class FBlowBox
906{
907
908    function generate()
909    {
910        global $smarty;
911        return $smarty->fetch('../mods/apoc_fitting/damage_box.tpl');
912    }
913}
914
915function multi_sort(&$array, $key) {
916    usort($array,create_function('$a,$b','if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;' .'return ($a["'.$key.'"] > $b["'.$key.'"]) ? -1 : 1;'));
917}
918
919multi_sort($topdamage,"damageDone");
920$topdamage = array_slice($topdamage, 0, 1);
921$smarty->assign('topdamage', $topdamage);
922
923$finalblow = new FBlowBox();
924$page->addContext($finalblow->generate());
925}
926// Final Blow/Top Damage Dealer - End
927
928//Admin is able to see classsified systems
929if ((!$kill->isClassified()) || ($page->isAdmin()))
930    {
931        if (!$sidemap) {
932            $mapbox=new Box("Map");
933            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=map&amp;size=145");
934            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=region&amp;size=145");
935            $mapbox->addOption("img", "?a=mapview&amp;sys_id=" . $system->getID() . "&amp;mode=cons&amp;size=145");
936            $page->addContext($mapbox->generate());
937        }
938    }
939
940$html.=$smarty->fetch('../mods/apoc_fitting/kill_detail.tpl');
941
942$html.='<br/><hr><!-- <div style="font-size: 10px;"><b>Based on Apoc Fitting v2.0</a> (2009 - Ben Thomas</a>)</div> -->';
943
944$page->setContent($html);
945$page->generate();
946?>
Note: See TracBrowser for help on using the browser.