Example #1
0
    /**
     * Vis side med kart
     */
    public function show_full_page()
    {
        global $__server;
        // hent familierangering
        $ff_list = ff::get_fam_points_rank();
        // deaktiver høyre side
        //define("DISABLE_RIGHT_COL", true);
        ess::$b->page->add_css('
#default_main { overflow: visible }');
        ess::$b->page->add_js_domready('
	sm_scripts.load_hm();
	window.HM.addEvent("f-changed", function(data) {
		//$$(".bydeler_filter a").removeClass("active");
		$$(".bydeler_ressurs").setStyle("display", "none");
		$$(".bydeler_ressurs_"+data).setStyle("display", "block");
		//$("f_"+data).addClass("active");
	});
	window.HM.addEvent("f-removed", function() {
		//$$(".bydeler_filter a").removeClass("active");
		//$("f_").addClass("active");
		$$(".bydeler_ressurs").setStyle("display", "block");
	});
	window.HM.addEvent("b-added", function() {
		//$$(".bydeler_alt a").removeClass("active");
		//$("v_b").addClass("active");
		$$(".bydeler_br").setStyle("display", "none");
		$$(".bydeler_steder").setStyle("display", "block");
	});
	window.HM.addEvent("b-removed", function() {
		//$$(".bydeler_alt a").removeClass("active");
		//$("v_").addClass("active");
		$$(".bydeler_br").setStyle("display", "block");
		$$(".bydeler_steder").setStyle("display", "none");
	});
	
	$$(".bydeler_steder").setStyle("display", "none");
	$$(".bydeler_alt a").addEvent("click", function(e)
	{
		window.HM.remove("f");
		window.HM.set("b", "");
		e.stop();
	});
	
	$$(".bydeler_filter a").addEvent("click", function(e)
	{
		window.HM.remove("b");
		if (this.get("id") == "f_") window.HM.remove("f");
		else window.HM.set("f", this.get("id").substring(2));
		e.stop();
	});
	
	window.HM.recheck();
');
        // sett opp alle FF og sorter dem i y-retning
        $data = array();
        $pos_x = array();
        $pos_y = array();
        foreach ($this->bydeler as $id => $bydel) {
            if ($id == 0) {
                continue;
            }
            foreach ($bydel['ff'] as $row) {
                $pos_x[] = $row['br_pos_x'];
                $pos_y[] = $row['br_pos_y'];
                $type = ff::$types[$row['ff_type']];
                // familie
                if ($row['ff_type'] == 1) {
                    $eier = count($row['eier']) == 0 ? 'Ingen leder av broderskapet' : 'Styres av ' . self::list_players($row['eier']);
                    $class = "bydeler_ressurs_familie";
                    // antall poeng
                    if (isset($ff_list[$row['ff_id']]) && $ff_list[$row['ff_id']]->data['ff_is_crew'] == 0) {
                        $eier .= '<br />' . game::format_num($ff_list[$row['ff_id']]->data['ff_points_sum']) . ' poeng';
                    }
                } else {
                    if ($type['type'] == "bomberom") {
                        $eier = count($row['eier']) == 0 ? 'Ingen styrer bomberommet' : 'Styres av ' . self::list_players($row['eier']);
                    } else {
                        $eier = count($row['eier']) == 0 ? 'Ingen eier av firmaet' : 'Eies av ' . self::list_players($row['eier']);
                    }
                    $class = "bydeler_ressurs_firma bydeler_ressurs_{$type['type']}firma";
                }
                $data[] = '
		<a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" class="bydeler_ressurs ' . $class . '" style="left: ' . $row['br_pos_x'] . '%; top: ' . $row['br_pos_y'] . '%">
			<img class="bydeler_ressurs_t" src="' . htmlspecialchars($type['bydeler_graphic']) . '" alt="' . htmlspecialchars($type['bydeler_alt_pre']) . htmlspecialchars($row['ff_name']) . '" />
			<span class="bydeler_ressurs_tekst">
				' . htmlspecialchars($row['ff_name']) . '<span class="bydeler_owner"><br />
				' . $eier . '</span>
			</span>
			<img class="bydeler_ressurs_graphic" src="' . htmlspecialchars(ff::get_logo_path_static($row['ff_id'], $row['ff_logo_path'])) . '" alt="" />
		</a>';
            }
        }
        array_multisort($pos_y, $pos_x, $data);
        $bydeler_0 = $this->bydeler[0];
        unset($this->bydeler[0]);
        // sorter bydelene i y-retning
        $bydeler_x = array();
        $bydeler_y = array();
        foreach ($this->bydeler as $id => $bydel) {
            $bydeler_x[] = $bydel['bydel_x'];
            $bydeler_y[] = $bydel['bydel_y'];
        }
        array_multisort($bydeler_x, $bydeler_y, $this->bydeler);
        // invitasjoner til FF
        if (count($this->ff_invites) > 0) {
            echo '
<div class="bg1_c small">
	<h1 class="bg1">Invitasjoner<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">';
            foreach ($this->ff_invites as $row) {
                $type = ff::$types[$row['ff_type']];
                echo '
		<p>Du er invitert til ' . $type['refobj'] . ' <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">' . htmlspecialchars($row['ff_name']) . '</a> som ' . $type['priority'][$row['ffm_priority']] . ' (' . ess::$b->date->get($row['ffm_date_join'])->format(date::FORMAT_NOTIME) . ') - <a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '">Godta/avslå</a></p>';
            }
            echo '
	</div>
</div>';
        }
        if (count($this->fff) > 0) {
            echo '
<div class="bg1_c medium bydeler_br bydeler_ressurs bydeler_ressurs_familie">
	<h1 class="bg1">Konkurranse om å danne broderskap<span class="left2"></span><span class="right2"></span></h1>
	<div class="bg1">
		<table class="table center tablem">
			<thead>
				<tr>
					<th>Avsluttes</th>
					<th>Gjenstår</th>
					<th>Antall broderskap</th>
					<th>Gjenstående broderskap</th>
					<th>&nbsp;</th>
				</tr>
			</thead>
			<tbody class="r">';
            $i = 0;
            $free = 0;
            foreach ($this->fff as $row) {
                if ($row['ff_count'] < ff::MAX_FFF_FF_COUNT) {
                    $free += ff::MAX_FFF_FF_COUNT - $row['ff_count'];
                }
                echo '
				<tr' . (++$i % 2 == 0 ? ' class="color"' : '') . '>
					<td>' . ess::$b->date->get($row['fff_time_expire'])->format(date::FORMAT_SEC) . '</td>
					<td>' . game::timespan(max(time(), $row['fff_time_expire']), game::TIME_ABS) . '</td>
					<td>' . $row['ff_count'] . '</td>
					<td>' . $row['ff_count_active'] . '</td>
					<td><a href="' . $__server['relative_path'] . '/ff/?fff_id=' . $row['fff_id'] . '">Vis &raquo;</a></td>
				</tr>';
            }
            $create_link = login::$logged_in ? $this->up->rank['number'] < ff::$types[1]['priority_rank'][1] ? ' - Du har ikke høy nok rank til å opprette et broderskap' : ' - Du har høy nok rank - <a href="' . $__server['relative_path'] . '/ff/?create">Opprett broderskap &raquo;</a>' : '';
            echo '
			</tbody>
		</table>' . ($free > 0 ? '
		<p class="c" style="margin-top: 0">Det er ' . $free . ' ' . fword("ledig konkurranseplass", "ledige konkurranseplasser", $free) . $create_link . '</p>' : '
		<p class="c" style="margin-top: 0">Ingen ledige konkurranseplasser.</p>') . '
	</div>
</div>';
        }
        // topp rangerte familier
        if (count($ff_list) > 0) {
            echo '
<div class="bg1_c xxsmall bydeler_br bydeler_ressurs bydeler_ressurs_familie">
	<h1 class="bg1">Topp rangerte broderskap<span class="left"></span><span class="right"></span></h1>
	<div class="bg1">
		<dl class="dd_right">';
            $i = 0;
            foreach ($ff_list as $ff) {
                $title = "For rank til medlemmer: " . $ff->data['ff_points_up'] . " - For firma til medlemmer: " . $ff->data['ff_points_ff'] . " - For drap: " . $ff->data['ff_points_kill'];
                echo '
			<dt><a href="' . ess::$s['rpath'] . '/ff/?ff_id=' . $ff->id . '">' . htmlspecialchars($ff->data['ff_name']) . '</a></dt>
			<dd title="' . $title . '">' . game::format_num($ff->data['ff_points_sum']) . ' poeng</dd>';
                // vis kun 3 beste familiene
                if (++$i == 3) {
                    break;
                }
            }
            echo '
		</dl>
		<p class="c"><a href="' . ess::$s['rpath'] . '/node/19">Poenginformasjon</a></p>
	</div>
</div>';
        }
        kf_menu::$data['bydeler_menu'] = true;
        echo '
<h1 class="bydeler">Bydeler</h1>
<div class="bydeler">
	<div class="bydeler_kart bydeler_br">
		<img src="' . STATIC_LINK . '/themes/kofradia/drammen_stor.gif" class="bydeler_bg" />
		' . implode('', $data) . '
	</div>';
        // har vi noen FF som ikke er plassert?
        if ($bydeler_0['active']) {
            echo '
	<div class="bydeler_uplassert bydeler_br">';
            foreach ($bydeler_0['ff'] as $row) {
                $type = ff::$types[$row['ff_type']];
                // familie
                if ($row['ff_type'] == 1) {
                    $eier = count($row['eier']) == 0 ? 'Ingen leder av broderskapet' : 'Styres av ' . self::list_players($row['eier']);
                    $class = "bydeler_ressurs_familie";
                } else {
                    if ($type['type'] == "bomberom") {
                        $eier = count($row['eier']) == 0 ? 'Ingen styrer bomberommet' : 'Styres av ' . self::list_players($row['eier']);
                    } else {
                        $eier = count($row['eier']) == 0 ? 'Ingen eier av firmaet' : 'Eies av ' . self::list_players($row['eier']);
                    }
                    $class = "bydeler_ressurs_firma bydeler_ressurs_{$type['type']}firma";
                }
                echo '
		<div class="bydeler_uplassert_boks">
			<a href="' . $__server['relative_path'] . '/ff/?ff_id=' . $row['ff_id'] . '" class="bydeler_ressurs ' . $class . '">
				<img class="bydeler_ressurs_graphic" src="' . htmlspecialchars(ff::get_logo_path_static($row['ff_id'], $row['ff_logo_path'])) . '" alt="" />
				<span class="bydeler_ressurs_tekst">
					' . htmlspecialchars($row['ff_name']) . '<span class="bydeler_owner"><br />
					' . $eier . '</span>
				</span>
				<img class="bydeler_ressurs_t" src="' . htmlspecialchars($type['bydeler_graphic']) . '" alt="' . htmlspecialchars($type['bydeler_alt_pre']) . htmlspecialchars($row['ff_name']) . '" />
			</a>
		</div>';
            }
            echo '
	</div>';
        }
        echo '
	<div class="bydeler_kart bydeler_steder">
		<img src="' . STATIC_LINK . '/themes/kofradia/drammen_stor.gif" class="bydeler_bg" />';
        foreach ($this->bydeler as $bydel) {
            if ($bydel['active'] == 0) {
                continue;
            }
            if ($this->up) {
                $distance = self::calc_travel_distance($this->up->bydel, $bydel);
                $taxi_price = round($distance * self::TAXI_PRICE_KM);
                $taxi_points = round($distance * self::TAXI_POINTS_KM * $this->up->rank['number']);
            }
            echo '
		<div class="map_unit' . ($this->up && $this->up->bydel['id'] == $bydel['id'] ? ' map_active' : '') . '" style="left: ' . $bydel['bydel_x'] . '%; top: ' . $bydel['bydel_y'] . '%" id="map_link_' . $bydel['id'] . '">
			<div class="map_title">
				<p class="map_link"><b><b><b>' . htmlspecialchars($bydel['name']) . '</b></b></b></p>
				<div class="bydeler_sted">
					<div class="bydeler_sted_info">
						<dl class="dd_right">
							<dt>Spillere</dt>
							<dd>' . game::format_number($bydel['num_players']) . '</dd>
							<dt>Penger i omløp</dt>
							<dd>' . game::format_cash($bydel['sum_money']) . '</dd>
						</dl>';
            if (!$this->up) {
            } elseif ($this->up->bydel['id'] == $bydel['id']) {
                echo '
						<p>Du befinner deg i denne bydelen.</p>';
            } elseif ($this->up->fengsel_check()) {
                echo '
						<p>Du er i fengsel og kan ikke reise.</p>';
            } elseif ($this->up->bomberom_check()) {
                echo '
						<p>Du er i bomberom og kan ikke reise.</p>';
            } else {
                echo '
						<div class="bydeler_reise c">
							<form action="bydeler" method="post">
								<input type="hidden" name="reise" value="' . htmlspecialchars($bydel['name']) . '" />';
                // taxi
                if (!$this->up->energy_check(self::TAXI_ENERGY * 1.3)) {
                    echo '
								<p>Du har ikke nok energi til å ta taxi hit.</p>';
                } elseif ($this->up->data['up_points'] < $taxi_points * 2) {
                    echo '
								<p>Du har ikke høy nok rank til å ta taxi hit.</p>';
                } else {
                    echo '
								<p>' . show_sbutton("Ta taxi (" . game::format_cash($taxi_price) . ", " . game::format_number(round($taxi_points)) . " poeng)", 'name="taxi"') . '</p>';
                }
                // gta
                if ($this->gta_count == 0) {
                    echo '
								<p>Du har ingen biler i bydelen du oppholder deg i for å reise med.</p>';
                } elseif (!$this->gta_garage[$bydel['id']]['garage']) {
                    echo '
								<p>Det er ingen garasje i denne bydelen.</p>';
                } elseif ($this->gta_garage[$bydel['id']]['garage_free'] == 0) {
                    echo '
								<p>Det er ingen ledige plasser i garasjen i denne bydelen.</p>';
                } else {
                    echo '
								<p>' . show_sbutton("Kjør egen bil", 'name="gta"') . '</p>';
                }
                // teleportere
                if (access::is_nostat()) {
                    echo '
								<p>' . show_sbutton("Teleporter hit (nostat)", 'name="teleporter"') . '</p>';
                }
                echo '
							</form>
						</div>';
            }
            echo '
					</div>
				</div>
			</div>
		</div>';
        }
        echo '
	</div>';
        echo '
</div>';
        ess::$b->page->load();
    }