root/dev/common/includes/class.ship.php @ 209

Revision 209, 4.7 KB (checked in by exi, 16 years ago)

Added the CombinedKillList?-Object which can be used to combine several killlists into one for the killlisttable-object.
Added counting code for the query cache.
Fixed a sql bug in toplist.

Line 
1<?php
2
3/**
4 *  Changes
5 *  11/23/06 - function getActualValue()
6 *             Returns actual value of the ship unrounded, rounding is retarded but
7 *             I dont want to fuck anything else up - Coni
8 *
9*/
10
11require_once("db.php");
12
13class Ship
14{
15    function Ship($id = 0)
16    {
17        $this->id_ = $id;
18    }
19
20    function getID()
21    {
22        return $this->id_;
23    }
24
25    function getName()
26    {
27        if ($this->shipname_ == "") $this->execQuery();
28        return $this->shipname_;
29    }
30
31    function getClass()
32    {
33        if (!$this->shipclass_) $this->execQuery();
34        return $this->shipclass_;
35    }
36
37    function getTechLevel()
38    {
39        $this->execQuery();
40        return $this->row_['shp_techlevel'];
41    }
42
43    function getImage($size)
44    {
45        if (!$this->externalid_)
46        {
47            $this->execQuery();
48        }
49        return IMG_URL."/ships/".$size."_".$size."/".$this->externalid_.".png";
50    }
51
52    function setName($shipname)
53    {
54        $this->shipname_ = $shipname;
55    }
56
57    function setClass($shipclass)
58    {
59        $this->shipclass_ = $shipclass;
60    }
61
62    function getPrice()
63    {
64        return $this->value_;
65    }
66
67    function execQuery()
68    {
69        if (!$this->qry_)
70        {
71            global $config;
72            $this->qry_ = new DBQuery();
73
74            $this->sql_ = "select * from kb3_ships shp
75                           inner join kb3_ship_classes scl on shp.shp_class = scl.scl_id";
76            if (config::get('ship_values'))
77            {
78                $this->sql_ .= ' left join kb3_ships_values ksv on (shp.shp_id = ksv.shp_id) ';
79            }
80            $this->sql_ .= " where shp.shp_id = ".$this->id_;
81
82            $this->qry_->execute($this->sql_);
83            $row = $this->qry_->getRow();
84            $this->shipname_ = $row['shp_name'];
85            $this->shipclass_ = new ShipClass($row['scl_id']);
86            $this->shiptechlevel_ = $row['shp_techlevel'];
87            $this->externalid_ = $row['shp_externalid'];
88
89            if (config::get('ship_values'))
90            {
91                if (!$this->value_ = $row['shp_value'])
92                {
93                    $this->value_ = $row['shp_baseprice'];
94                }
95            }
96            else
97            {
98                $this->value_ = $row['shp_baseprice'];
99            }
100        }
101    }
102
103    function lookup($name)
104    {
105        $qry = new DBQuery();
106        $qry->execute("select *
107                        from kb3_ships
108                       where shp_name = '".slashfix($name)."'");
109
110        $row = $qry->getRow();
111        if ($row['shp_id']) $this->id_ = $row['shp_id'];
112    }
113}
114
115class ShipClass
116{
117    function ShipClass($id = 0)
118    {
119        if (!$id) $id = 0;
120        $this->id_ = $id;
121
122        $this->qry_ = new DBQuery();
123    }
124
125    function getID()
126    {
127        return $this->id_;
128    }
129
130    function getName()
131    {
132        if ($this->name_ == "") $this->execQuery();
133        return $this->name_;
134    }
135
136    // Why would you round here this is fucking retarded!
137    function getValue()
138    {
139        if (!$this->value_) $this->execQuery();
140        return round($this->value_ / 1000000, 2);
141    }
142
143    function getActualValue()
144    {
145        if (!$this->value_) $this->execQuery();
146        return $this->value_;
147    }
148
149    function getPoints()
150    {
151        if (!$this->points_) $this->execQuery();
152        return $this->points_;
153    }
154
155    function setName($name)
156    {
157        $this->name_ = $name;
158    }
159
160    function setValue($value)
161    {
162        $this->value_ = $value;
163    }
164
165    function getValueIndicator()
166    {
167        $value = $this->getValue();
168
169        if ($value >= 0 && $value <= 1)
170            $color = "gray";
171        elseif ($value > 1 && $value <= 15)
172            $color = "blue";
173        elseif ($value > 15 && $value <= 25)
174            $color = "green";
175        elseif ($value > 25 && $value <= 40)
176            $color = "yellow";
177        elseif ($value > 40 && $value <= 80)
178            $color = "red";
179        elseif ($value > 80 && $value <= 250)
180            $color = "orange";
181        elseif ($value > 250)
182            $color = "purple";
183
184        return IMG_URL."/ships/ship-".$color.".gif";
185    }
186
187    function execQuery()
188    {
189        if (!$this->qry_->executed_)
190        {
191            $sql = "select *
192                  from kb3_ship_classes
193                 where scl_id = ".$this->id_;
194
195            $this->qry_->execute($sql);
196            $row = $this->qry_->getRow();
197
198            $this->name_ = $row['scl_class'];
199            $this->value_ = $row['scl_value'];
200            $this->points_ = $row['scl_points'];
201        }
202    }
203}
204?>
Note: See TracBrowser for help on using the browser.