diff --git a/client/src/scripts/managers/uiManager.ts b/client/src/scripts/managers/uiManager.ts
index 56f9a04e5..f9f9ae87a 100644
--- a/client/src/scripts/managers/uiManager.ts
+++ b/client/src/scripts/managers/uiManager.ts
@@ -1038,8 +1038,7 @@ export class UIManager {
case KillfeedMessageType.KillLeaderAssigned: {
if (victimId === this.game.activePlayerID) {
classes.push("kill-feed-item-killer");
- }
- else {
+ } else {
classes.push("kill-feed-kill-leader");
}
@@ -1071,11 +1070,9 @@ export class UIManager {
}`;
if (attackerId === this.game.activePlayerID) {
classes.push("kill-feed-item-killer");
- }
- else if (victimId === this.game.activePlayerID) {
+ } else if (victimId === this.game.activePlayerID) {
classes.push("kill-feed-item-victim");
- }
- else {
+ } else {
classes.push("kill-feed-kill-leader");
}
this.game.soundManager.play("kill_leader_dead");
@@ -1281,8 +1278,7 @@ class PlayerHealthUI {
if (teammate) {
this.nameLabel.text(teammate.name);
- }
- else {
+ } else {
this.nameLabel.text("Loading..");
}
}
diff --git a/client/src/scripts/news/newsPosts.ts b/client/src/scripts/news/newsPosts.ts
index ca12de92f..b19c14a1e 100644
--- a/client/src/scripts/news/newsPosts.ts
+++ b/client/src/scripts/news/newsPosts.ts
@@ -1,19 +1,19 @@
import { type NewsPost } from "./newsHelper";
export const news: NewsPost[] = [
- {
- date: 1717870665000,
- author: "HAZEL",
- title: "Back in the Saddle",
- bannerImage: "../img/news/v0.18.0.png",
- content: `After a long break, we're back with some important updates and fun changes. Although we're late, we're celebrating Suroi's 1 year birthday with some new items, and even more exciting, limited edition squads.
+ {
+ date: 1717870665000,
+ author: "HAZEL",
+ title: "Back in the Saddle",
+ bannerImage: "../img/news/v0.18.0.png",
+ content: `After a long break, we're back with some important updates and fun changes. Although we're late, we're celebrating Suroi's 1 year birthday with some new items, and even more exciting, limited edition squads.
A revamped moderation system is here to combat those cheater pests with improved efficiency. Say hello to our new Game Moderatrs on Discord!
There's also a new structure, the large bridge. While huge in proportion, it offers plenty of cover and close quarter combat. It's also a perfect spot to set up your squad in a defensive position!
Lots of changes and bug fixes have made it into this update, so check out the full log. Thank you everyone for sticking with us!`,
- longContent: `
Suroi v0.18.0
+ longContent: `Suroi v0.18.0
New features
- Squads! To celebrate Suroi's 1st birthday, squads will be available for the next week only. They will be back once we have enough players.
diff --git a/server/src/data/maps.ts b/server/src/data/maps.ts
index 87ddecb48..495b71e40 100644
--- a/server/src/data/maps.ts
+++ b/server/src/data/maps.ts
@@ -380,8 +380,8 @@ const maps = {
beachSize: 8,
oceanSize: 8,
genCallback(map) {
- map.game.addLoot("vector", Vec.create(this.width / 2, this.height / 2 - 10));
- map.game.addLoot("9mm", Vec.create(this.width / 2, this.height / 2 - 10), { count: Infinity });
+ map.game.addLoot("radio", Vec.create(this.width / 2, this.height / 2 - 10));
+ map.game.addLoot("curadell", Vec.create(this.width / 2, this.height / 2 - 10), { count: Infinity });
}
},
gunsTest: (() => {
diff --git a/server/src/objects/parachute.ts b/server/src/objects/parachute.ts
index d0a2dd010..fa171ebd8 100644
--- a/server/src/objects/parachute.ts
+++ b/server/src/objects/parachute.ts
@@ -1,10 +1,12 @@
+import { create } from "domain";
import { GameConstants, KillfeedEventType, ObjectCategory } from "../../../common/src/constants";
import { CircleHitbox } from "../../../common/src/utils/hitbox";
import { Angle, Numeric } from "../../../common/src/utils/math";
import { type FullData } from "../../../common/src/utils/objectsSerializations";
-import { type Vector } from "../../../common/src/utils/vector";
+import { Vec, type Vector } from "../../../common/src/utils/vector";
import { type Airdrop, type Game } from "../game";
import { Events } from "../pluginManager";
+import { Logger } from "../utils/misc";
import { Building } from "./building";
import { BaseGameObject } from "./gameObject";
import { Loot } from "./loot";
@@ -70,6 +72,24 @@ export class Parachute extends BaseGameObject {
amount: Infinity,
source: crate
});
+ // Hacky hacky solution probably not the smartest solution atm but fuck it we ball :shrug:
+ if (object.definition.idString == "airdrop_crate_locked" && object != crate) {
+ let xDif = crate.position.x - object.position.x;
+ if (xDif <= 0) {
+ xDif = xDif + 10;
+ } else {
+ xDif = xDif - 10;
+ }
+ let yDif = crate.position.y - object.position.y;
+ if (yDif <= 0) {
+ yDif = yDif + 10;
+ } else {
+ yDif = yDif - 10;
+ }
+ const position = Vec.create(xDif, yDif);
+ crate.hitbox = object.hitbox.transform(position);
+ crate.position = crate.hitbox.getCenter();
+ }
break;
}
case object instanceof Building && object.scopeHitbox?.collidesWith(crate.hitbox): {
diff --git a/server/src/server.ts b/server/src/server.ts
index 4f92ab285..816e40405 100644
--- a/server/src/server.ts
+++ b/server/src/server.ts
@@ -37,7 +37,7 @@ function removePunishment(ip: string): void {
if (Config.protection?.punishments?.url) {
fetch(
`${Config.protection.punishments.url}/punishments/${ip}`,
- { method: 'DELETE', headers: { "api-key": Config.protection.punishments.password } }
+ { method: "DELETE", headers: { "api-key": Config.protection.punishments.password } }
).catch(err => console.error("Error removing punishment from server. Details:", err));
} else {
writeFile(
@@ -51,7 +51,6 @@ function removePunishment(ip: string): void {
}
}
-
export const customTeams: Map = new Map();
let _maxTeamSize = typeof Config.maxTeamSize === "number" ? Config.maxTeamSize : Config.maxTeamSize.rotation[0];
@@ -83,7 +82,7 @@ if (isMainThread) {
let response: GetGameResponse;
const punishment = punishments.find(p => p.ip === ip);
- console.log(`Punishment is ${punishment?.punishmentType}${punishment?.ip}${punishment?.reason} `)
+ console.log(`Punishment is ${punishment?.punishmentType}${punishment?.ip}${punishment?.reason} `);
if (punishment) {
if (punishment.punishmentType === "warn") {
const protection = Config.protection;