big upgrades to upgrade system

This commit is contained in:
2025-10-05 11:11:54 -07:00
parent 0edb4b50d2
commit 537bdf1ad7
20 changed files with 3310 additions and 97 deletions

View File

@@ -7,6 +7,10 @@
<Upgrade>
<Id>speed1</Id>
<Name>Speedier Seagull</Name>
<Requirements>
<Food>100</Food>
<Agility>1</Agility>
</Requirements>
<Modifiers>
<Mod Id="up_speed1" Name="Upgrade: Speedier Seagull" Speed="5" />
</Modifiers>
@@ -18,6 +22,7 @@
<Desc>Applying a thin coat of old french fry oil makes you much faster. Why do humans throw this stuff out?</Desc>
<Requirements>
<Require>speed1</Require>
<Food>150</Food>
</Requirements>
<Modifiers>
<Mod Id="up_speed2" Name="Upgrade: Greased Wings" Speed="10" />
@@ -30,6 +35,10 @@
<Mod Id="up_theft_chance1" Name="Upgrade: Swooping Techniques" ChanceSteal="10" />
</Modifiers>
<Desc>It's all in the neck. The wings are just the steering wheel. You gain a bonus on all dice rolls for stealing.</Desc>
<Requirements>
<Food>100</Food>
<Agility>1</Agility>
</Requirements>
</Upgrade>
<Upgrade>
<Id>theft_chance2</Id>
@@ -37,6 +46,7 @@
<Desc>It's a lot easier to steal things if the previous owner doesn't see you coming. This technique gives you a bigger bonus on stealing rolls.</Desc>
<Requirements>
<Require>theft_chance1</Require>
<Food>150</Food>
</Requirements>
<Modifiers>
<Mod Id="up_theft_chance2" Name="Upgrade: The Element of Surprise" ChanceSteal="15" />

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<UpgradeRules xmlns="seagull:rules/upgrades">
<TreeData>
<Name>Instinct Upgrades</Name>
<PrimaryColor>#aa00ff</PrimaryColor>
</TreeData>
<Upgrade>
<Id>xp_bonus1</Id>
<Name>Stop and Smell</Name>
<Requirements>
<Food>100</Food>
<Instinct>1</Instinct>
</Requirements>
<Modifiers>
<Mod Id="up_xp_bonus1" Name="Upgrade: Stop and Smell" XPPerc="2" />
</Modifiers>
<Desc>Who knew taking in the smells could make you wiser? Enjoy a 2% bonus to XP.</Desc>
</Upgrade>
<Upgrade>
<Id>xp_bonus2</Id>
<Name>Ponder and Deliberate</Name>
<Modifiers>
<Mod Id="up_xp_bonus2" Name="Upgrade: Ponder and Deliberate" XPPerc="5" />
</Modifiers>
<Requirements>
<Require>xp_bonus1</Require>
<Food>150</Food>
</Requirements>
<Desc>Take a second to really think about what you're trying to steal. You'll get a 5% XP bonus if you do.</Desc>
</Upgrade>
<Upgrade>
<Id>xp_bonus3</Id>
<Name>Plan and Strategize</Name>
<Modifiers>
<Mod Id="up_xp_bonus3" Name="Upgrade: Plan and Strategize" XPPerc="10" />
</Modifiers>
<Requirements>
<Require>xp_bonus2</Require>
<Require>theft_results2</Require>
</Requirements>
<Desc>Have a plan to steal from everyone you meet. Even the ones you don't execute on will grant you an additional 10% XP.</Desc>
</Upgrade>
<Upgrade>
<Id>theft_results1</Id>
<Name>Go for the Pockets</Name>
<Desc>That's where they keep their stuff. Steal a little bit more from everyone.</Desc>
<Requirements>
<Food>100</Food>
</Requirements>
<Modifiers>
<Mod Id="up_theft_results1" Name="Upgrade: Go for the Pockets" StealPerc="5" />
</Modifiers>
</Upgrade>
<Upgrade>
<Id>theft_results2</Id>
<Name>Use the Winds</Name>
<Desc>The wind provides extra speed, making you both faster and capable of taking more.</Desc>
<Requirements>
<Require>theft_results1</Require>
<Food>200</Food>
</Requirements>
<Modifiers>
<Mod Id="up_theft_results2" Name="Upgrade: Use the Winds" Speed="2" StealPerc="10" />
</Modifiers>
</Upgrade>
</UpgradeRules>

View File

@@ -0,0 +1,20 @@
<?xml version="1.1" encoding="UTF-8"?>
<UpgradeRules xmlns="seagull:rules/upgrades">
<TreeData>
<Name>Leadership Upgrades</Name>
<PrimaryColor>#ffaa00</PrimaryColor>
</TreeData>
<Upgrade>
<Id>recruit_chance1</Id>
</Upgrade>
<Upgrade>
<Id>offline_gen</Id>
<Name>Tireless Colony</Name>
<Requirements>
<Food>100</Food>
<Shinies>100</Shinies>
<Leadership>1</Leadership>
</Requirements>
<Desc>Your colony starts taking shifts to get resources for you. A percentage of colony-generation continues even when you close the game.</Desc>
</Upgrade>
</UpgradeRules>

View File

@@ -19,10 +19,16 @@ function update_charsheet() {
}
}
async function purchase_upgrade(tree, upgrade) {
var upgrade_data = await fetch(`/upgrades/${tree}/${upgrade}`)
.then(res => res.text())
console.log(upgrade_data)
}
async function display_tree(tree) {
var upgrade_tree = await fetch(`/upgrades/${tree}`)
.then(res => res.text())
console.log(upgrade_tree)
//console.log(upgrade_tree)
charsheet_elements["blk_tree"].innerHTML = upgrade_tree
}

View File

@@ -0,0 +1,13 @@
export function cheat_resources() {
hnd_direction = document.querySelector("#dev-resource-direction");
hnd_restype = document.querySelector("#dev-resource-type");
hnd_amount = document.querySelector("#dev-resource-amount");
if (!isEmpty(hnd_amount.value)) {
if (hnd_direction == "+") {
gamestate[hnd_restype.value] += Number(hnd_amount.value);
} else if (hnd_direction == "-") {
gamestate[hnd_restype.value] -= Number(hnd_amount.value);
}
}
}

View File

@@ -48,6 +48,10 @@ const tickdiffs_reset = {
}
var tickdiffs = {}
globalThis.isEmpty = str => !str.trim().length
import {cheat_resources} from "./seagull-cheats.mjs"
var bool_log_alt = false
globalThis.record_log = function (text) {
const div_logrow = document.createElement("div");
@@ -300,7 +304,7 @@ async function game_tick() {
ticks_since_last_save += 1;
page_elements["lbl_tick"].innerHTML = gamestate["tick"];
if (gamestate["tick"] % 5 == 0) {
if (gamestate["tick"] % 5 == 0 && gamestate["colony"] > 1) {
var colony_tickdata = await fetch("/tick/colony", {
method: "POST",
body: JSON.stringify({

View File

@@ -1,2 +1,12 @@
{% if not desktop %}IP: {{ipaddr}}<br />{% endif %}
<button id="dev-reset" onClick="reset_game()">Reset Game</button>
<button id="dev-reset" onClick="reset_game()">Reset Game</button><br />
<select id="dev-resource-direction">
<option value="+">Grant</option>
<option value="-">Remove</option>
</select>
<select id="dev-resource-type">
<option value="food">Food</option>
<option value="shinies">Shinies</option>
</select>
<input type="number" min="0" id="dev-resource-amount" placeholder="∞"/>
<button id="dev-resource-txn" onClick="cheat_resources()">➡️</button>