Various requests regarding C++ AI modding

Owlfeathers asked for this feature almost 2 years ago — 5 comments

Owlfeathers commented almost 2 years ago

Probably easier to just put these all here instead of having them haphazardly strewn around the #ask_arthur channel (these aren't in any particular order):

  • Addition of dll export/.lib file update to include getHealthFaction() function (for implementing disengage behaviour on critically damaged ships)

  • Access to/explanation of core radius calculations (core radius is very different from what I'd expect on some ships, which is causing problems with adding certain AI behaviours)

  • Some kind of capability to recognize tournament arena boundaries

| manylegged commented almost 2 years ago Admin

Formally the core radius is the mean plus one standard deviation of the blocks in the ship weighted by P (min 0.25 P). You can loop over the blocks in a ship in the AI and calculate it however you want, just beware that it can get slow quickly if you aren't careful.

You can access the tournament arena boundaries with zone->getStreamer()->getBoundsRadius() which returns a float2 width/height and and zone->getStreamer()->getBoundsEdges() which returns the number of verts (e.g. 8).

These functions aren't dll exported yet but will be soon.

| manylegged commented almost 2 years ago Admin

Note that ships/clusters also have a member called "bbox" which stores the unroted axis aligned bounding box which might be more appropriate for long skinny ships (I think +x is forwards). AABBox has .mn and .mx members which are the minimum and maximum points.

| manylegged commented almost 2 years ago Admin

The ReassemblyRelease.lib has been updated so getHealthFaction() should be available now (need beta reassembly).

| manylegged commented almost 2 years ago Admin

implemented, closing.

Join the discussion!

with GitHub to comment