mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-21 11:07:18 +00:00
upgrade unit when building a unit of same type (#1328)
## Description: When building a structure in the same location as a nearby structure, it will update the existing structure instead of creating a new one. Also fix ctrl+click shortcut to bring up the build menu. ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced - [x] I understand that submitting code with bugs that could have been caught through manual testing blocks releases and new features for all contributors ## Please put your Discord username so you can be contacted if a bug or regression is found: evan
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
Game,
|
||||
Player,
|
||||
PlayerInfo,
|
||||
PlayerType,
|
||||
UnitType,
|
||||
} from "../src/core/game/Game";
|
||||
import { setup } from "./util/Setup";
|
||||
|
||||
let game: Game;
|
||||
let player: Player;
|
||||
|
||||
describe("PlayerImpl", () => {
|
||||
beforeEach(async () => {
|
||||
game = await setup(
|
||||
"plains",
|
||||
{
|
||||
infiniteGold: true,
|
||||
instantBuild: true,
|
||||
},
|
||||
[new PlayerInfo("player", PlayerType.Human, null, "player_id")],
|
||||
);
|
||||
|
||||
while (game.inSpawnPhase()) {
|
||||
game.executeNextTick();
|
||||
}
|
||||
|
||||
player = game.player("player_id");
|
||||
});
|
||||
|
||||
test("City can be upgraded", () => {
|
||||
const city = player.buildUnit(UnitType.City, game.ref(0, 0), {});
|
||||
const buCity = player
|
||||
.buildableUnits(game.ref(0, 0))
|
||||
.find((bu) => bu.type === UnitType.City);
|
||||
expect(buCity).toBeDefined();
|
||||
expect(buCity!.canUpgrade).toBe(city.id());
|
||||
});
|
||||
|
||||
test("DefensePost cannot be upgraded", () => {
|
||||
player.buildUnit(UnitType.DefensePost, game.ref(0, 0), {});
|
||||
const buDefensePost = player
|
||||
.buildableUnits(game.ref(0, 0))
|
||||
.find((bu) => bu.type === UnitType.DefensePost);
|
||||
expect(buDefensePost).toBeDefined();
|
||||
expect(buDefensePost!.canUpgrade).toBeFalsy();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user