Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CheckRespawns()

void Terraria.GameContent.CoinLossRevengeSystem.CheckRespawns ( )
inline

Definition at line 392 of file CoinLossRevengeSystem.cs.

393 {
395 {
396 if (_markers.Count == 0)
397 {
398 return;
399 }
400 }
402 for (int i = 0; i < 255; i++)
403 {
404 Player player = Main.player[i];
405 if (player.active && !player.dead)
406 {
407 list.Add(Tuple.Create(i, Utils.CenteredRectangle(player.Center, _playerBoxSizeInner), Utils.CenteredRectangle(player.Center, _playerBoxSizeOuter)));
408 }
409 }
410 if (list.Count == 0)
411 {
412 return;
413 }
416 {
418 for (int j = 0; j < _markers.Count; j++)
419 {
420 RevengeMarker revengeMarker = _markers[j];
421 bool flag = false;
424 {
425 if (revengeMarker.Intersects(item.Item2, item.Item3))
426 {
427 tuple = item;
428 flag = true;
429 break;
430 }
431 }
432 if (!flag)
433 {
434 revengeMarker.SetRespawnAttemptLock(state: false);
435 }
436 else
437 {
438 if (revengeMarker.RespawnAttemptLocked)
439 {
440 continue;
441 }
442 revengeMarker.SetRespawnAttemptLock(state: true);
443 if (revengeMarker.WouldNPCBeDiscouraged(Main.player[tuple.Item1]))
444 {
445 revengeMarker.SetToExpire();
446 continue;
447 }
448 revengeMarker.SpawnEnemy();
450 if (Main.dedServ)
451 {
452 NetMessage.SendData(127, -1, -1, null, revengeMarker.UniqueID);
453 }
454 }
455 }
456 _markers = _markers.Except(list2).ToList();
457 }
458 }
void Add(TKey key, TValue value)

References Terraria.GameContent.CoinLossRevengeSystem._markers, Terraria.GameContent.CoinLossRevengeSystem._markersLock, Terraria.GameContent.CoinLossRevengeSystem._playerBoxSizeInner, Terraria.GameContent.CoinLossRevengeSystem._playerBoxSizeOuter, Terraria.Entity.active, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Terraria.Entity.Center, Terraria.Utils.CenteredRectangle(), System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.Player.dead, Terraria.Main.dedServ, System.item, System.list, Terraria.Main.player, Terraria.GameContent.CoinLossRevengeSystem.RemoveExpiredOrInvalidMarkers(), Terraria.NetMessage.SendData(), and System.state.

Referenced by Terraria.NPC.SpawnNPC().