Socket
Socket
Sign inDemoInstall

@gaia-project/engine

Package Overview
Dependencies
6
Maintainers
2
Versions
272
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.8.46 to 4.8.47

2

dist/package.json
{
"name": "@gaia-project/engine",
"version": "4.8.46",
"version": "4.8.47",
"description": "Javascript engine for project gaia",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.autoChargeItars = exports.askOrDeclineBasedOnCost = exports.askOrDeclineForPassedPlayer = exports.decideChargeRequest = exports.ChargeRequest = exports.ChargeDecision = void 0;
exports.autoChargeItars = exports.askOrDeclineBasedOnCost = exports.allowBasedOnTargetPower = exports.askOrDeclineForPassedPlayer = exports.decideChargeRequest = exports.ChargeRequest = exports.ChargeDecision = void 0;
const enums_1 = require("./enums");

@@ -65,2 +65,3 @@ const reward_1 = __importDefault(require("./reward"));

(r) => askForMultipleTaklonsOffers(r.offers, r.player.settings.autoBrainstone),
(r) => allowBasedOnTargetPower(r.player),
(r) => askOrDeclineBasedOnCost(r.minCharge, r.maxCharge, r.player.settings.autoChargePower),

@@ -122,2 +123,9 @@ askForItars,

}
function allowBasedOnTargetPower(player) {
if (player.data.spendablePowerTokens() < player.settings.autoChargeTargetSpendablePower) {
return ChargeDecision.Yes;
}
return ChargeDecision.Undecided;
}
exports.allowBasedOnTargetPower = allowBasedOnTargetPower;
function askOrDeclineBasedOnCost(minCharge, maxCharge, autoCharge) {

@@ -124,0 +132,0 @@ if (autoCharge === "ask") {

@@ -32,3 +32,3 @@ "use strict";

// If so, and fed has more satellites, then fed is invalid
// because it can be built with less satellites
// because it can be built with fewer satellites
const fedPlanets = fed.hexes.filter((hex) => hex.hasPlanet());

@@ -35,0 +35,0 @@ const compPlanets = comparison.hexes.filter((hex) => hex.hasPlanet());

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.BuildWarning = exports.Settings = exports.defaultAutoCharge = exports.MAX_SATELLITES = void 0;
exports.BuildWarning = exports.Settings = exports.defaultAutoChargeTargetSpendablePower = exports.defaultAutoCharge = exports.MAX_SATELLITES = void 0;
const assert_1 = __importDefault(require("assert"));

@@ -34,5 +34,7 @@ const eventemitter3_1 = require("eventemitter3");

exports.defaultAutoCharge = 1;
exports.defaultAutoChargeTargetSpendablePower = 0;
class Settings {
constructor(autoChargePower = exports.defaultAutoCharge, autoIncome = false, autoBrainstone = false, itarsAutoChargeToArea3 = false) {
constructor(autoChargePower = exports.defaultAutoCharge, autoChargeTargetSpendablePower = exports.defaultAutoChargeTargetSpendablePower, autoIncome = false, autoBrainstone = false, itarsAutoChargeToArea3 = false) {
this.autoChargePower = autoChargePower;
this.autoChargeTargetSpendablePower = autoChargeTargetSpendablePower;
this.autoIncome = autoIncome;

@@ -187,7 +189,7 @@ this.autoBrainstone = autoBrainstone;

for (const cost of costs) {
this.data.gainReward(this.factionReward(cost, source, true), true, source);
this.data.gainReward(this.factionReward(cost, source, false), true, source);
}
}
gainRewards(rewards, source) {
this.data.gainRewards(rewards.map((rew) => this.factionReward(rew, source, false)), false, source);
this.data.gainRewards(rewards.map((rew) => this.factionReward(rew, source, true)), false, source);
}

@@ -700,3 +702,3 @@ maxPayRange(cost) {

}
factionReward(reward, source, pay) {
factionReward(reward, source, gleensQic) {
if (this.faction === enums_1.Faction.Terrans && reward.type === enums_1.Resource.GainTokenGaiaArea) {

@@ -706,3 +708,3 @@ return new reward_1.default(-reward.count, enums_1.Resource.MoveTokenFromGaiaAreaToArea1);

// this is for Gleens getting ore instead of qics until Academy2
if (!pay &&
if (gleensQic &&
source !== enums_1.Phase.BeginGame &&

@@ -924,3 +926,3 @@ this.faction === enums_1.Faction.Gleens &&

assert_1.default(!outclasser, "Federation is outclassed by other federation at " + ((_a = outclasser === null || outclasser === void 0 ? void 0 : outclasser.hexes) !== null && _a !== void 0 ? _a : []).join(","));
// Check if federation can be built with less satellites
// Check if federation can be built with fewer satellites
if (!flexible) {

@@ -942,3 +944,3 @@ const allHexes = [...map.grid.values()].filter((hex) => !excluded.has(hex));

const info2 = this.federationInfo(smallFederation);
assert_1.default(info2.satellites >= info.satellites, "The federation can be built with less satellites, for example: " + path.join(","));
assert_1.default(info2.satellites >= info.satellites, "The federation can be built with fewer satellites, for example: " + path.join(","));
}

@@ -945,0 +947,0 @@ }

@@ -38,2 +38,5 @@ "use strict";

}
if ("autoChargeTargetSpendablePower" in settings) {
lodash_1.set(engine.players[player], "settings.autoChargeTargetSpendablePower", Number(settings.autoChargeTargetSpendablePower));
}
if ("autoIncome" in settings) {

@@ -52,8 +55,9 @@ lodash_1.set(engine.players[player], "settings.autoIncome", settings.autoIncome);

function playerSettings(engine, player) {
var _a, _b, _c, _d, _e;
var _a, _b, _c, _d, _e, _f, _g;
return {
autoCharge: String((_b = (_a = engine.players[player].settings) === null || _a === void 0 ? void 0 : _a.autoChargePower) !== null && _b !== void 0 ? _b : player_1.defaultAutoCharge),
autoIncome: !!((_c = engine.players[player].settings) === null || _c === void 0 ? void 0 : _c.autoIncome),
autoBrainstone: !!((_d = engine.players[player].settings) === null || _d === void 0 ? void 0 : _d.autoBrainstone),
itarsAutoChargeToArea3: !!((_e = engine.players[player].settings) === null || _e === void 0 ? void 0 : _e.itarsAutoChargeToArea3),
autoChargeTargetSpendablePower: String((_d = (_c = engine.players[player].settings) === null || _c === void 0 ? void 0 : _c.autoChargeTargetSpendablePower) !== null && _d !== void 0 ? _d : player_1.defaultAutoChargeTargetSpendablePower),
autoIncome: !!((_e = engine.players[player].settings) === null || _e === void 0 ? void 0 : _e.autoIncome),
autoBrainstone: !!((_f = engine.players[player].settings) === null || _f === void 0 ? void 0 : _f.autoBrainstone),
itarsAutoChargeToArea3: !!((_g = engine.players[player].settings) === null || _g === void 0 ? void 0 : _g.itarsAutoChargeToArea3),
};

@@ -60,0 +64,0 @@ }

{
"name": "@gaia-project/engine",
"version": "4.8.46",
"version": "4.8.47",
"description": "Javascript engine for project gaia",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -101,3 +101,10 @@ import { expect } from "chai";

name: string;
give: { power: number; autoCharge: AutoCharge; lastRound?: boolean; playerHasPassed?: boolean };
give: {
power: number;
autoCharge: AutoCharge;
autoChargeTargetSpendablePower?: number;
powerInArea3?: number;
lastRound?: boolean;
playerHasPassed?: boolean;
};
want: ChargeDecision;

@@ -135,2 +142,12 @@ }[] = [

},
{
name: "target power is already satisfied",
give: { power: 2, autoCharge: 1, powerInArea3: 3, autoChargeTargetSpendablePower: 3 },
want: ChargeDecision.Ask,
},
{
name: "target power overrides decision",
give: { power: 2, autoCharge: 1, powerInArea3: 2, autoChargeTargetSpendablePower: 3 },
want: ChargeDecision.Yes,
},
];

@@ -142,2 +159,4 @@

player.settings.autoChargePower = test.give.autoCharge;
player.settings.autoChargeTargetSpendablePower = test.give.autoChargeTargetSpendablePower;
player.data.power.area3 = test.give.powerInArea3;

@@ -144,0 +163,0 @@ const offer = new Offer(

@@ -71,2 +71,3 @@ import { Offer } from "./available/types";

(r: ChargeRequest) => askForMultipleTaklonsOffers(r.offers, r.player.settings.autoBrainstone),
(r: ChargeRequest) => allowBasedOnTargetPower(r.player),
(r: ChargeRequest) => askOrDeclineBasedOnCost(r.minCharge, r.maxCharge, r.player.settings.autoChargePower),

@@ -128,2 +129,9 @@ askForItars,

export function allowBasedOnTargetPower(player: Player) {
if (player.data.spendablePowerTokens() < player.settings.autoChargeTargetSpendablePower) {
return ChargeDecision.Yes;
}
return ChargeDecision.Undecided;
}
export function askOrDeclineBasedOnCost(minCharge: number, maxCharge: number, autoCharge: AutoCharge) {

@@ -130,0 +138,0 @@ if (autoCharge === "ask") {

@@ -34,3 +34,3 @@ import { expect } from "chai";

it("should force to add a mine to the federation if it means less satellites", function () {
it("should force to add a mine to the federation if it means fewer satellites", function () {
this.timeout(10000);

@@ -37,0 +37,0 @@

@@ -39,3 +39,3 @@ import assert from "assert";

// If so, and fed has more satellites, then fed is invalid
// because it can be built with less satellites
// because it can be built with fewer satellites
const fedPlanets = fed.hexes.filter((hex) => hex.hasPlanet());

@@ -42,0 +42,0 @@ const compPlanets = comparison.hexes.filter((hex) => hex.hasPlanet());

@@ -63,2 +63,3 @@ import assert from "assert";

export const defaultAutoCharge = 1;
export const defaultAutoChargeTargetSpendablePower = 0;

@@ -68,2 +69,3 @@ export class Settings {

public autoChargePower: AutoCharge = defaultAutoCharge,
public autoChargeTargetSpendablePower: number = defaultAutoChargeTargetSpendablePower,
public autoIncome: boolean = false,

@@ -249,3 +251,3 @@ public autoBrainstone: boolean = false,

for (const cost of costs) {
this.data.gainReward(this.factionReward(cost, source, true), true, source);
this.data.gainReward(this.factionReward(cost, source, false), true, source);
}

@@ -256,3 +258,3 @@ }

this.data.gainRewards(
rewards.map((rew) => this.factionReward(rew, source, false)),
rewards.map((rew) => this.factionReward(rew, source, true)),
false,

@@ -893,3 +895,3 @@ source

factionReward(reward: Reward, source: EventSource, pay: boolean): Reward {
factionReward(reward: Reward, source: EventSource, gleensQic: boolean): Reward {
if (this.faction === Faction.Terrans && reward.type === Resource.GainTokenGaiaArea) {

@@ -900,3 +902,3 @@ return new Reward(-reward.count, Resource.MoveTokenFromGaiaAreaToArea1);

if (
!pay &&
gleensQic &&
source !== Phase.BeginGame &&

@@ -1202,3 +1204,3 @@ this.faction === Faction.Gleens &&

// Check if federation can be built with less satellites
// Check if federation can be built with fewer satellites
if (!flexible) {

@@ -1235,3 +1237,3 @@ const allHexes = [...map.grid.values()].filter((hex) => !excluded.has(hex));

info2.satellites >= info.satellites,
"The federation can be built with less satellites, for example: " + path.join(",")
"The federation can be built with fewer satellites, for example: " + path.join(",")
);

@@ -1238,0 +1240,0 @@ }

@@ -6,3 +6,3 @@ import assert from "assert";

import { Round } from "./src/enums";
import { defaultAutoCharge } from "./src/player";
import { defaultAutoCharge, defaultAutoChargeTargetSpendablePower } from "./src/player";

@@ -46,2 +46,3 @@ export async function init(

autoCharge?: string;
autoChargeTargetSpendablePower?: string;
autoIncome?: boolean;

@@ -59,2 +60,9 @@ autoBrainstone?: boolean;

}
if ("autoChargeTargetSpendablePower" in settings) {
set(
engine.players[player],
"settings.autoChargeTargetSpendablePower",
Number(settings.autoChargeTargetSpendablePower)
);
}
if ("autoIncome" in settings) {

@@ -76,2 +84,5 @@ set(engine.players[player], "settings.autoIncome", settings.autoIncome);

autoCharge: String(engine.players[player].settings?.autoChargePower ?? defaultAutoCharge),
autoChargeTargetSpendablePower: String(
engine.players[player].settings?.autoChargeTargetSpendablePower ?? defaultAutoChargeTargetSpendablePower
),
autoIncome: !!engine.players[player].settings?.autoIncome,

@@ -78,0 +89,0 @@ autoBrainstone: !!engine.players[player].settings?.autoBrainstone,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc