View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0018763 | Starward Rogue | Bug - Other | Mar 1, 2016 4:18 pm | Mar 19, 2016 7:19 pm | |
Reporter | Pepisolo | Assigned To | keith.lamothe | ||
Status | resolved | Resolution | fixed | ||
Product Version | 1.016-1.017 | ||||
Fixed in Version | 1.018 | ||||
Summary | 0018763: Familiar behavior FamiliarFollower wigs out | ||||
Description | As an example, use the AutocannonMinibot (not AutocannonDrone) familiar in Dayton_Familiars.xml. The item pickup entity is AutocannonMinibotPickup. The familiar is currently set to the behavior FamiliarBeelineFollower which seems to work fine aside from it not being as desired as having a Pathfinding behavior. If you switch this to the FamiliarFollower behavior (the pathfinding one) the familiar seems to wig out as if it's caught between two different types of AI movement. Example vid: https://dl.dropboxusercontent.com/u/30011618/Starward%20Rogue/StarwardRogue%20--%20Drone%20Wig%20Out.mp4 I believe that this behavior is also visible on the Deep Blue mech familiar, although the wigging out is less pronounced, maybe because that familiar is player directed. Test room attached. | ||||
Tags | No tags attached. | ||||
|
a_testCraig.xml (3,523 bytes)
<root> <room_setup script="Miniboss/CMP_MinibossBasic" skip_normal_enemy_population="true" /> <entity type="PlayerStandard" category="Player"/> <entity type="AutocannonMinibotPickup" category="ItemPickup" offset_from_center="400,100"/> <entity type="BansheeRed" category="Enemy" offset_from_center="300,0"/> <entity type="BansheeRed" category="Enemy" offset_from_center="300,0"/> </root> <!-- <entity type="GuardianBlaster" category="ItemPickup" offset_from_center="-500,0"/> <entity type="RainCannon" category="ItemPickup" offset_from_center="-400,0"/> <entity type="STG4377" category="ItemPickup" offset_from_center="-300"/> <entity type="TwinMachineguns" category="ItemPickup" offset_from_center="-200,0"/> <entity type="RiotSuppressor" category="ItemPickup" offset_from_center="-100,0"/> <entity type="Grapeshot" category="ItemPickup" offset_from_center="0,0"/> <entity type="PrecisionRailgun" category="ItemPickup" offset_from_center="100,0"/> <entity type="PhantomBullet" category="ItemPickup" offset_from_center="200,0"/> <entity type="SplitfireCannon" category="ItemPickup" offset_from_center="300,0"/> <entity type="VenomousStinger" category="ItemPickup" offset_from_center="400,0"/> <entity type="HornetMine" category="ItemPickup" offset_from_center="500,0"/> <entity type="NarcoStinger" category="ItemPickup" offset_from_center="600,0"/> <entity type="HunterKiller" category="ItemPickup" offset_from_center="700,0"/> <entity type="TurboBlaster" category="ItemPickup" offset_from_center="-600,0"/> <entity type="Translocator" category="ItemPickup" offset_from_center="-500,0"/> <entity type="FragmentCannon" category="ItemPickup" offset_from_center="-400,0"/> <entity type="SmartGun" category="ItemPickup" offset_from_center="-300"/> <entity type="GuardianGun" category="ItemPickup" offset_from_center="-200,0"/> <entity type="Railgun" category="ItemPickup" offset_from_center="-100,0"/> <entity type="PhaserGun" category="ItemPickup" offset_from_center="0,0"/> <entity type="SplinterCannon" category="ItemPickup" offset_from_center="100,0"/> <entity type="HornetNest" category="ItemPickup" offset_from_center="200,0"/> <entity type="Incinerator" category="ItemPickup" offset_from_center="300,0"/> <entity type="GrenadeLauncher" category="ItemPickup" offset_from_center="400,0"/> <entity type="ClusterLauncher" category="ItemPickup" offset_from_center="500,0"/> <entity type="PhaseBlade" category="ItemPickup" offset_from_center="600,0"/> <entity type="PoisonedKnife" category="ItemPickup" offset_from_center="700,0"/> <room_setup script="Unused" skip_normal_enemy_population="false" extra_player_systems="" player_familiars="" use_boss_data="InvaderBoss" use_boss_room_node_index="0" /> <entity type="PlayerStandard" category="Player"/> <room_setup script="Miniboss/CMP_MinibossBasic" skip_normal_enemy_population="true" /> <entity type="PlayerStandard" category="Player"/> <entity type="ReaperRed" category="Enemy" offset_from_center="-300,0"/> <room_setup script="Unused" skip_normal_enemy_population="false" extra_player_systems="" player_familiars="" use_boss_data="HunterRed" use_boss_room_node_index="0" /> </root> --> |
|
I think this is correct. The over-riding behavior is to stay within LeashDistance from the player. Once there it then gets an Attack order, so it tries to close with an enemy. It then finds out it is too far from the player and so the familiar returns to the player. If you want different behavior, you'll have to decide under what circumstances the drone is allowed to engage the enemy. Otherwise he'll keep getting pulled back to the "carrier". I haven't looked, but the beam familiar doesn't have an attack and attack range like that, so it doesn't need to close to the enemy. You can change the range of the autocannon system to prevent the autocannon from going searching for enemies. Although in general, I still think that familiars should be made "bodiless", always orbit the player, and never collide with anything. |
|
I'm not sure why BeeLineFollower seems to work perfectly, but FamiliarFollower doesn't. (scratches head). Could the Attack order code be removed from FamiliarFollower, I'm not sure if it's at all useful. Regarding Orbit only drones, that is the way in which the game originally was, but it was deemed boring by Misery and Chris, so the followers were introduced. I do like the follower behavior, though, in theory, if I can get it working nicely. |
|
Amusingly, I would say the opposite. BeelineFollower does not interrupt orders to return to the player. He won't come back until everything is dead. FamiliarFollower DOES interrupt orders to return to the player. He will constantly return to the player. I believe the key is Flock.cs line 591. newOrder.UpdatePathfinding( 50, 200, false ); Comment this out and the FamiliarFollower will not return to the player until everything is dead.If you compare FamilarFollower and BeelineFollower this is the relevant different line. Watching in game it seems to behave correctly. This might also solve your Kamikaze familiar problem. |
|
The weird thing is that the AutoCannon Minibot using BeeLineFollower does return to the player, even if everything in the room is not dead, so I'm not sure what that extra code in FamiliarFollower is intended to accomplish (scratches head). I'll have to try and comment out that code and compile with the changes, to see how that works out. Thanks! |
|
It might only target enemies that are within weapon range. Or it might return to player after a target dies. |
|
For 1.018: * Fixed a few problems with the FamiliarFollower logic that was making it rubber-band back and forth between the player and the enemy, etc. Thanks :) |
Date Modified | Username | Field | Change |
---|---|---|---|
Mar 1, 2016 4:18 pm | Pepisolo | New Issue | |
Mar 1, 2016 4:18 pm | Pepisolo | File Added: a_testCraig.xml | |
Mar 3, 2016 5:02 pm | ptarth | Note Added: 0045354 | |
Mar 3, 2016 6:39 pm | Pepisolo | Note Added: 0045356 | |
Mar 3, 2016 9:59 pm | ptarth | Note Added: 0045358 | |
Mar 4, 2016 12:55 am | Pepisolo | Note Added: 0045360 | |
Mar 4, 2016 1:52 am | ptarth | Note Added: 0045361 | |
Mar 10, 2016 7:37 pm | Pepisolo | Assigned To | => keith.lamothe |
Mar 10, 2016 7:37 pm | Pepisolo | Status | new => assigned |
Mar 19, 2016 7:19 pm | keith.lamothe | Note Added: 0045444 | |
Mar 19, 2016 7:19 pm | keith.lamothe | Status | assigned => resolved |
Mar 19, 2016 7:19 pm | keith.lamothe | Fixed in Version | => 1.018 |
Mar 19, 2016 7:19 pm | keith.lamothe | Resolution | open => fixed |