diff --git a/client/webapp/index.html b/client/webapp/index.html
--- a/client/webapp/index.html
+++ b/client/webapp/index.html
@@ -185,3 +185,3 @@
-
+
diff --git a/client/webapp/js/engine/entity_renderer.js b/client/webapp/js/engine/entity_renderer.js
--- a/client/webapp/js/engine/entity_renderer.js
+++ b/client/webapp/js/engine/entity_renderer.js
@@ -43,2 +43,7 @@
}
+ // Ground Combat Telegraph Decals (PoE2 Warning Cones & Rings)
+ if (typeof window.TelegraphRenderer !== 'undefined' && typeof window.TelegraphRenderer.renderTelegraphs === 'function') {
+ window.TelegraphRenderer.renderTelegraphs(ctx);
+ }
+
// 4. COLLECT & SORT DEPTH ENTITIES (PROPS, MONSTER, HERO)
diff --git a/client/webapp/js/engine/monster_system.js b/client/webapp/js/engine/monster_system.js
--- a/client/webapp/js/engine/monster_system.js
+++ b/client/webapp/js/engine/monster_system.js
@@ -158,2 +158,5 @@
+ if (typeof window.TelegraphRenderer !== 'undefined' && typeof window.TelegraphRenderer.updateTelegraphs === 'function') {
+ window.TelegraphRenderer.updateTelegraphs(dt);
+ }
if (typeof window.updateMonsterPackAI === 'function') window.updateMonsterPackAI(activeMonsters, dt);
@@ -178,2 +181,3 @@
if (m.hp <= 0) {
+ if (typeof window.cancelTelegraph === 'function') window.cancelTelegraph(m.id);
m.respawnTimer += dt;
@@ -199,2 +203,3 @@
if (m.staggerTimer > 0) {
+ if (typeof window.cancelTelegraph === 'function') window.cancelTelegraph(m.id);
m.staggerTimer -= dt;
@@ -213,2 +218,3 @@
if (distToOrigin > (m.leashRadius || 5.2)) {
+ if (typeof window.cancelTelegraph === 'function') window.cancelTelegraph(m.id);
m.hasAggro = false;
@@ -237,4 +243,7 @@
} else if (m.attackCooldown <= 0) {
- // Attack strike on player!
- m.attackCooldown = 1.75 + Math.random() * 0.5;
- executeMonsterAttackOnPlayer(m);
+ m.attackCooldown = (m.isBoss ? 2.4 : 1.8) + Math.random() * 0.5;
+ if (typeof window.TelegraphRenderer !== 'undefined' && typeof window.TelegraphRenderer.startMonsterAttack === 'function') {
+ window.TelegraphRenderer.startMonsterAttack(m, player, executeMonsterAttackOnPlayer);
+ } else {
+ executeMonsterAttackOnPlayer(m);
+ }
}