(function () {
// 1) Basic bot filter (extend if you like)
function isBot() {
return /(bot|crawl|spider|google|bing|slurp|yandex|facebook|linkedin|pinterest|preview|whatsapp|discord|telegram|headless|puppeteer)/i
.test(navigator.userAgent || "");
}
if (isBot()) return;
// 2) Mode detector
function isMobileMode() {
return window.matchMedia("(max-width: 767px)").matches ||
/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent || "");
}
// 3) Your ad configs (swap keys/sizes to match your network units)
const AD = {
mobile: { key: "aa6d52a6037d0558c2a19dc52b6aa824", width: 320, height: 50 }, // 320x50
desktop: { key: "a49752dcde88f4fde5987d25efbb7168", width: 468, height: 60 } // 468x60
};
// 4) Create container if it doesn't exist
function ensureContainer() {
let container = document.getElementById("ad-container");
if (!container) {
container = document.createElement("div");
container.id = "ad-container";
container.style.display = "none";
document.body.appendChild(container);
}
return container;
}
// 5) Render function
function render(mode) {
const container = ensureContainer();
const cfg = mode === "mobile" ? AD.mobile : AD.desktop;
// Set global atOptions for ad network
window.atOptions = {
key: cfg.key,
format: "iframe",
height: cfg.height,
width: cfg.width,
params: {}
};
// Clear previous ad/script then inject
container.innerHTML = "";
container.style.display = "block";
const s = document.createElement("script");
s.src = `//selfportraitproved.com/${cfg.key}/invoke.js`;
s.async = true;
container.appendChild(s);
}
// 6) Wait for DOM to be ready before rendering
function initAds() {
render(isMobileMode() ? "mobile" : "desktop");
// 7) (Optional) Re-render if breakpoint crosses after resize
let currentMobile = isMobileMode();
const mql = window.matchMedia("(max-width: 767px)");
if (mql.addEventListener) {
mql.addEventListener("change", (e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
} else if (mql.addListener) { // older browsers
mql.addListener((e) => {
const nowMobile = e.matches;
if (nowMobile !== currentMobile) {
currentMobile = nowMobile;
render(currentMobile ? "mobile" : "desktop");
}
});
}
}
// 8) Execute when DOM is ready
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initAds);
} else {
initAds();
}
})();
With every new region in the Pokémon world comes a new set of starter Pokémon and Hisui is no different.
Pokémon Legends: Arceus brings players to the ancient Hisui region which would one day become Sinnoh. Given this familiarity, the three starter Pokémon are species that have been available in other games.
Cyndaquil, Rowlet, and Oshawott all appeared before Legends: Arceus, but now there is more to these creatures. As they evolve the evolution path takes a turn ushering in new Hisui forms for each of their final evolutions, Typhlosion, Decidueye, and Samurott.
All final starter evolutions
In Pokémon Legends: Arceus the three Hisui starter Pokémon, Cyndaquil, Rowlet, and Oshawott, have different final evolutions. These all boast the same names, just new variants with different looks and typings.
👉 For more insights, check out this resource.
For Cyndaquil, the new final evolution is Hisuian Typhlosion. This new Pokémon boasts both Fire and Ghost types and a new look boasting purple flames rather than the typical orange look, and also a notably different posture.
See Pokémon on Amazon
Rowlet’s final evolution is Hisuian Decidueye which has a very different look, boasting shorter wings and a larger headpiece. The typing for this new version of the Pokémon species is Grass and Fighting, switching things up slightly from the Grass and Ghost-type that its original form includes.
👉 Discover more in this in-depth guide.
The final Hisui starter evolution is Samurott. Visually, there aren’t too many drastic changes to the Pokémon design, however, it does boast some new coloring within. The Pokémon’s typing is Water and Dark.