• Visit Rebornbuddy
  • Detect talismaned mob

    Discussion in 'Archives' started by Tormiasz, Jan 11, 2016.

    1. Tormiasz

      Tormiasz Community Developer

      Joined:
      Jun 16, 2014
      Messages:
      701
      Likes Received:
      5
      Trophy Points:
      18
      Hello.
      Is there any option in the API to detect talismaned mob? They are usually more dangerous than other mobs and should get higher weight (especially the fucker that creates spikes on the ground). I didn't found anything in Object Explorer
       
    2. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Best way to test things like this is go to normal or a place where you won't die and give a mob the talisman.

      Here's a snippet from one of them:
      Code:
      ExplicitAffixes:
      		Level: 1, Category: Daemon, InternalName: TalismanMonsterUnsetAmulet, DisplayName: Black Maw Talisman, IsHidden: False, IsPrefix: False, IsSuffix: False, Stats: Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Min: 0, Max: 0, Stat: 0, Values: 
      		Level: 1, Category: TalismanBonus, InternalName: MonsterHasTalismanNormal, DisplayName: , IsHidden: False, IsPrefix: False, IsSuffix: False, Stats: Min: 30, Max: 30, Stat: BaseActorScalePosPct, Min: 450, Max: 450, Stat: MonsterLifePosPctFinalFromRarity, Min: 20, Max: 20, Stat: AttackAndCastSpeedPosPct, Min: 10, Max: 10, Stat: BaseMovementVelocityPosPct, Values: 30, 450, 20, 10
      	_94: First: 0x0, Last: 0x0, End: 0x0, Allocator: 0x0
      
      Your code in the CR could be something like:
      Code:
      // Mark anything with a talisman bonus affix super important to kill first.
      if (m.ExplicitAffixes.Any(a => a.Category.Equals("TalismanBonus")))
      {
      	weight += 50;
      }
      
      Or, if you want to handle each based on talisman name instead,
      Code:
      // Mark anything with a talisman bonus affix super important to kill first.
      if (m.ExplicitAffixes.Any(a => a.DisplayName.Equals("Black Maw Talisman")))
      {
      	weight += 10; // Hardly care about this type
      }
      else if (m.ExplicitAffixes.Any(a => a.DisplayName.Equals("Bonespire Talisman")))
      {
      	weight += 50; // These are super important to kill asap.
      }
      // Handle the reset, or just check to see if the DisplayName contains "Talisman" to catch all others
      
      To see if you have the Bone Roil effect, you'd check under your player entry and the auras section in the LifeComponent:
      Code:
      		BaseAddress: -
      		SubInfo: -
      		Name: Bone Roil
      		InternalName: talisman_degen
      		Description: You are taking Physical Damage over time from the Bone Roil
      		CasterId: -
      		OwnerId: 0
      		BuffType: 30
      		TimeLeft: 00:00:02.8500000
      		MaxTimeLeft: 00:00:03
      		Charges: 0
      		IsInvisible: False
      		IsRemovable: False
      
      Using the more updated buff system, the code would simply be:
      Code:
      if (LokiPoe.Me.HasBuff(BuffDefinitionsEnum.talisman_degen))
      {
      	// You're under the effect
      }
      
      If you want to code around trying to avoid the Bone Spire spikes themselves, it's a bit more work, but everything is already in place. Basically, you need to loop though the deployed objects for the monster, and check for that object type, which I logged as roughly "Metadata/Monsters/Daemon/TalismanT1SummonBonespireDaemon", so see if the Type contains "BonespireDaemon" to catch any variations.

      I'll add a convenience property to the Actor class to simply the next bit of code, but all you'd do is:
      Code:
      foreach (var deployed in m.Components.ActorComponent.DeployedObjects.Where(d => d.Type.Contains("SummonBonespireDaemon")))
      {
      // You have access to the Position, so you can make assumptions about the size based on what you know in game visually, so move away to an anchor point or somewhere else to avoid getting destroyed by them
      }
      
      Hope that helps!
       
    3. Tormiasz

      Tormiasz Community Developer

      Joined:
      Jun 16, 2014
      Messages:
      701
      Likes Received:
      5
      Trophy Points:
      18
      Thank you! IDK how did I miss that.

      Now it can be added to OldRoutine :D
       

    Share This Page