62 lines
2.2 KiB
Text
62 lines
2.2 KiB
Text
@page
|
|
@using CsWeb.Services
|
|
@model IndexModel
|
|
@{
|
|
ViewData["Title"] = "";
|
|
}
|
|
@section Meta {
|
|
<meta property="og:title" content="Outnumbered — CS2 PvE RPG servers" />
|
|
<meta property="og:description" content="@Model.ServersUp servers up, @Model.HumansOnline player(s) in game. Level up, prestige, fight the horde — TDM, Gun Game, Survival." />
|
|
<meta property="og:type" content="website" />
|
|
}
|
|
|
|
<h1>Outnumbered</h1>
|
|
<p>
|
|
A players-vs-bots RPG mod for CS2: you and a few humans versus a scaling horde. Kill for XP, level up,
|
|
spend points on permanent stats, prestige for keeps — across three modes. No matchmaking, no ranks lost,
|
|
no teenagers screaming into your ear. Pick a server and shoot something.
|
|
</p>
|
|
<p class="muted small">
|
|
These servers run <a href="/faq">deliberately without VAC</a> (it's a PvE mod that rewrites half the game).
|
|
Your account is safe — see the FAQ.
|
|
</p>
|
|
|
|
@if (Model.Servers.Count == 0)
|
|
{
|
|
<div class="notice err">No servers found. If you just deployed, the game instances may still be starting.</div>
|
|
}
|
|
<div class="cards">
|
|
@foreach (var (id, s) in Model.Servers)
|
|
{
|
|
var d = s.Data;
|
|
<div class="card">
|
|
<div class="row">
|
|
<h3><a href="/s/@id">@(d?.Hostname is { Length: > 0 } h ? h : id)</a></h3>
|
|
@if (!s.Online) { <span class="badge off">offline</span> }
|
|
else { <span class="badge mode">@Fmt.ModeName(d?.Mode)</span> }
|
|
</div>
|
|
@if (d is not null)
|
|
{
|
|
<div class="row">
|
|
<span class="muted">@d.Map</span>
|
|
<span>@d.Humans.Count/@d.MaxHumans players · @d.Bots bots</span>
|
|
</div>
|
|
@if (Fmt.ExtraLine(d) is { Length: > 0 } extra)
|
|
{
|
|
<div class="muted small">@extra</div>
|
|
}
|
|
@if (d.Port > 0)
|
|
{
|
|
<div class="row">
|
|
<span class="connect">connect @Model.Fleet.PublicHost:@d.Port</span>
|
|
<a class="btn" href="steam://connect/@Model.Fleet.PublicHost:@d.Port">Join</a>
|
|
</div>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<div class="muted small">@Fmt.Age(s)</div>
|
|
}
|
|
</div>
|
|
}
|
|
</div>
|