Why NPC-to-NPC bailing was removed?

This forum is the ideal place for all discussion relating to X4. You will also find additional information from developers here.

Moderator: Moderators for English X Forum

User avatar
Shuulo
Posts: 1629
Joined: Mon, 14. Apr 08, 17:03
x4

Why NPC-to-NPC bailing was removed?

Post by Shuulo » Tue, 8. Jun 21, 19:59

Hi Devs,

Can you please shed a light why the feature when NPC could cause NPC to bail was removed?
It still stays in 4.0 path notes:
- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.


And no info on when and why it was removed. Currently its back to non-immervise player-only system that even forces you to have ship with weaker hull than target for NPC to bail.

It was such a great feature and I was so happy when it was introduced, and was quite disappointed when I found that its now removed.

Was it moved for some reason to upcoming pirate DLC or we will never see this feature again?
Or is it just an oversight?
Thanks for your time.

Edit: seems people confuse what that change actually meant and how it worked in initial change. So, I meant that now NPC cannot bail from the fire of other non-player NPC faction, while it was possible in initial 4.0 version.
Last edited by Shuulo on Wed, 9. Jun 21, 01:16, edited 1 time in total.

Fishille
Posts: 109
Joined: Fri, 9. Aug 13, 17:40
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Fishille » Tue, 8. Jun 21, 20:44

Crew bailing does not necessarily mean 100% of the crew to bail. This is important on capital ships as when you are trying to weaken the ship to cause the enemy to bail you may have npc ships firing too that way there is less resistance when boarding.

Falcrack
Posts: 4929
Joined: Wed, 29. Jul 09, 00:46
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Falcrack » Tue, 8. Jun 21, 21:35

Shuulo wrote:
Tue, 8. Jun 21, 19:59
Hi Devs,

Can you please shed a light why the feature when NPC could cause NPC to bail was removed?
It still stays in 4.0 path notes:
- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.


And no info on when and why it was removed. Currently its back to non-immervise player-only system that even forces you to have ship with weaker hull than target for NPC to bail.

It was such a great feature and I was so happy when it was introduced, and was quite disappointed when I found that its now removed.

Was it moved for some reason to upcoming pirate DLC or we will never see this feature again?
Or is it just an oversight?
Thanks for your time.
I've gotten many ships to bail without ever firing a shot at them. I just hang around during a big battle, and send comm messages to low health S and M combatants asking them to surrender. In many cases, they will immediately comply and bail, even though neither myself nor ships under my command attacked them. So in a sense, it is NPC vs NPC bailing, with an assist from me asking them to surrender.

Imperial Good
Moderator (English)
Moderator (English)
Posts: 4750
Joined: Fri, 21. Dec 18, 18:23
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Imperial Good » Tue, 8. Jun 21, 21:55

Shuulo wrote:
Tue, 8. Jun 21, 19:59
And no info on when and why it was removed. Currently its back to non-immervise player-only system that even forces you to have ship with weaker hull than target for NPC to bail.
Was it removed? It sounds like you might be speculating.

Also be aware that both current toughness and maximum hull are used to calculate bail rolls. For optimum bail chance you want your ship to have lower maximum hull but also larger toughness (current hull + current shield) than the target.

Player owned but not currently flown ships have a significantly reduced chance to cause the target to bail. This has been the case since X4 released.

Alan Phipps
Moderator (English)
Moderator (English)
Posts: 30368
Joined: Fri, 16. Apr 04, 19:21
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Alan Phipps » Tue, 8. Jun 21, 23:08

- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.


These are indeed in 4.00. Purely NPC fire can cause crewmembers (service crew/marines) to bail (and so potentially weakening the defence of the ship and making it's pilot's chances of bailing greater after that) but the shot that causes the pilot/captain to bail must come from a player-owned ship.
A dog has a master; a cat has domestic staff.

User avatar
Shuulo
Posts: 1629
Joined: Mon, 14. Apr 08, 17:03
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Shuulo » Wed, 9. Jun 21, 00:20

Alan Phipps wrote:
Tue, 8. Jun 21, 23:08
- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.


These are indeed in 4.00. Purely NPC fire can cause crewmembers (service crew/marines) to bail (and so potentially weakening the defence of the ship and making it's pilot's chances of bailing greater after that) but the shot that causes the pilot/captain to bail must come from a player-owned ship.
This is different from how it was in first 4.0 betas, captains could bail even from NPC vs NPC fights, sometimes you stumbled on abandoned fighters just floating in space, it was very rare but it happened 100%.
So, I wonder for a dev's answer why that was changed? It feels too artificial to happen only from player shot and only if your ship is weaker than the target.

Its quite obvious that those 2 patch notes are meant to work in unison and thats how it was, ships can bail from any shot but other NPCs could claim them as well. I want to know if it will be back in future.
Imperial Good wrote:
Tue, 8. Jun 21, 21:55

Was it removed? It sounds like you might be speculating.
Im quite sure im not, this the part from MD that controls it (unless im reading this totally wrong):

Code: Select all

        <cue name="PlayerOwnedShipAttacks" instantiate="true" namespace="this">
          <conditions>
            <check_any>
              <check_all>
                <check_any>
                  <event_player_owned_attacked_object comment="param == attacker, param2 == target"/>
                  <event_object_signalled object="player.galaxy" param3="'shouldwebail'" comment="param == attacker, param2 == target"/>
                </check_any>
                <check_value value="event.param.trueowner != event.param2.trueowner"/>
                <check_value value="event.param.isoperational"/>
              </check_all>
              <check_all>
                <event_cue_signalled comment="signalled from md.Conversations. param == target, attacker always the player"/>
                <check_value value="player.occupiedship"/>
                <check_value value="not event.param.isplayerowned"/>
              </check_all>
            </check_any>
            <set_value name="$target" exact="if (event.name == 'event_cue_signalled') then event.param else event.param2"/>
            <check_value value="$target and $target.isoperational"/>
            <check_value value="$target.isclass.ship and $target.pilot.exists" />
            <check_value value="not $target.isclass.station" comment="TODO for stations?" />
            <check_value value="not $target.isplayerowned or $target.people.{entityrole.service}.{0}.count or $target.people.{entityrole.marine}.{0}.count"/>
            <check_value value="not $target.isunit"/>
            <check_value value="not $target.islasertower"/>
            <check_value value="@$target.order.state != orderstate.critical"/>
          </conditions>
          <actions>
            <do_if value="event.name == 'event_player_owned_attacked_object'">
              <set_value name="$target" exact="event.param2"/>
              <set_value name="$attacker" exact="event.param"/>
            </do_if>
            <do_elseif value="(event.name == 'event_object_signalled') and (event.object == player.galaxy)">
              <set_value name="$target" exact="event.param2"/>
              <set_value name="$attacker" exact="event.param"/>
            </do_elseif>
            <do_elseif value="(event.name == 'event_cue_signalled') and player.occupiedship">
              <set_value name="$target" exact="event.param"/>
              <set_value name="$attacker" exact="player.occupiedship"/>
            </do_elseif>
            <do_else>
              <debug_text text="'invalid call. event: %s\nobject: %s\nparam: %s\nparam2: %s\nparam3: %s'.[event.name, event.object, event.param2, @event.param3]" filter="error"/>
              <cancel_cue cue="this"/>
            </do_else>

            <do_if value="not $attacker.isclass.controllable">
              <debug_text text="'attacker: %s %s %s is not a controllable. skipping actions.'.[@$attacker.idcode, $attacker.knownname, $attacker]" filter="error"/>
              <cancel_cue cue="this"/>
            </do_if>
            <debug_text text="'event: %s,\nattacker: %s, %s, %s,\ntarget: %s %s %s'.[event.name, $attacker.idcode, $attacker.knownname, $attacker, $target.idcode, $target.knownname, $target]" chance="$debug? * 100"/>

            <!-- MAINTENANCE: keep synced with surrender conditions in md.Conversations.DefaultComm -->
            <!-- chance that the pilot bails out-->
            <do_if value="$target.iscapturable">
              <do_if value="event.name == 'event_cue_signalled'">
                <set_value name="$Speak_Line" exact="5037" comment="(refusal to surrender - in danger)" />
              </do_if>
              <debug_text text="'bail: initial check: %s\nshieldpercentage: %s (threshold: 20)\nhullpercentage: %s (threshold: 75)\ndocked: %s\nis capitalship: %s\nhas crew: %s'.[(((not $target.maxshield) or ($target.shieldpercentage lt 20)) and ($target.hullpercentage lt 75) and not $target.assigneddock and (not $target.iscapitalship or $target.people.count)), $target.shieldpercentage, $target.hullpercentage, $target.assigneddock, $target.iscapitalship, $target.people.count]" chance="$debug? * 100"/>
              <!-- Dismiss ship if it has shields which above 20%, hull above 75%, or is a capital ship with no service personnel on board. -->
              <do_if value="if not $testcheat? then (((not $target.maxshield) or ($target.shieldpercentage lt 20)) and ($target.hullpercentage lt 75) and not $target.assigneddock and (not $target.iscapitalship or $target.people.count)) else true">
                <do_if value="not $target.pilot.$nextcapturechance?">
                  <set_value name="$target.pilot.$nextcapturechance" exact="player.age - 1s" />
                </do_if>
                <do_if value="if not $testcheat? then ($target.pilot.$nextcapturechance lt player.age) else true">
                  <!-- TODO: chance to reduce morale? -->
                  <!-- response to demand to surrender. reflects the nerve of the captain and his ability to hold the crew together. -->
                  <do_if value="event.name != 'event_cue_signalled' or (($target.people.count)f / ($target.people.capacity)f) lt ((16 - $target.pilot.skill.morale)f / 16.0)">
                    <!-- ejectchance range: 23-46%, inversely proportional to crew skill,
                      multiplied by (targetmaxhull)/(mymaxhull) capped to 1.0,
                      multiplied by (((myshieldperc+myhullperc)/(targetshieldperc+targethullperc))) capped to 1.0,
                      reduced to a quarter if attacker is not personally flown by the player. -->
                    <!-- crew just making a run for it. looks at crew state as a whole and rough state of the battle. -->
                    <set_value name="$ejectchance" exact="( (46 - $target.combinedskill / 5) * [(($target.maxhull)f / [($attacker.maxhull)f, 1.0].max), 1.0].min * [(($attacker.shieldpercentage + $attacker.hullpercentage) / [($target.shieldpercentage + $target.hullpercentage), 1.0].max), 1.0].min )i"/>
                    <do_if value="$attacker != player.occupiedship">
                      <set_value name="$ejectchance" exact="$ejectchance / 4"/>
                    </do_if>
                    <do_if value="$target.iscapitalship">
                      <set_value name="$ejectchance" exact="$ejectchance / 2"/>
                    </do_if>
                    <debug_text text="player.age + ' %s %s %s attacking %s %s %s.\n eject chance %s. base: %s, hull class ratio: %s, current damage ratio: %s, attacker is player: %s'.[$attacker.idcode, $attacker.knownname, $attacker, $target.idcode, $target.knownname, $target, $ejectchance, 18 - $target.pilot.skill.morale, ($target.maxhull)f / ($attacker.maxhull)f, (($attacker.shieldpercentage + $attacker.hullpercentage) / ($target.shieldpercentage + $target.hullpercentage)), $attacker == player.occupiedship]" chance="$debug? * 100"/>

                    <do_if value="true" chance="if not $testcheat? then $ejectchance else 100">
                      <set_value name="$maxcrewbailing" exact="$target.people.count"/>
                      <do_if value="$target.isplayerowned">
                        <set_value name="$bail_role" exact="entityrole.service"/>
                        <do_if value="not $target.people.{entityrole.service}.{0}.count">
                          <set_value name="$bail_role" exact="entityrole.marine"/>
                        </do_if>
                        <set_value name="$maxcrewbailing" exact="$target.people.{$bail_role}.{0}.count"/>
                      </do_if>

                      <do_if value="event.name == 'event_cue_signalled'">
                        <set_value name="$numcrewbailing" exact="$maxcrewbailing"/>
                      </do_if>
                      <do_else>
                        <!-- number of crew members that bail is proportional to the pilot's (later, the entire crew's) morale with a minimum of 1 crew member. capped to 3 at a time so that a ship with a bigger crew complement would have to bail more times before the ship is abandoned. -->
                        <set_value name="$numcrewbailing" exact="[[[($target.people.capacity * ((15 - $target.pilot.skill.morale)f / 15.0))i, $maxcrewbailing].min, 1].max, 3].min"/>
                      </do_else>

                      <do_if value="($numcrewbailing ge $target.people.count) and not $target.iscapitalship and not $target.isplayerowned and ($attacker.isplayerowned or @$attacker.signal.{'foundabandonedship'}.response.id == 'claim')">
                        <!-- pilot and remaining crew all bail -->
                        <set_value name="$pilotbail"/>
                        <set_value name="$damageminpercent" exact="100 - $target.pilot.combinedskill"/>
                        <do_if value="$attacker == player.occupiedship">
                          <set_value name="$Speak_Line" exact="10034" />
                        </do_if>
                      </do_if>

                      <set_value name="$eject"/>
                    </do_if>

                    <do_if value="not @$pilotbail">
                      <!-- increment nextcapturechance regardless of whether any crew bails unless the pilot is set to bail, but only if ejectchance is actually evaluated. -->
                      <set_value name="$target.pilot.$nextcapturechance" exact="player.age + 30s" />
                      <debug_text text="'next chance ' + $target.pilot.$nextcapturechance" chance="$debug? * 100" />
                    </do_if>
                  </do_if>
                </do_if>
              </do_if>

              <do_if value="$Speak_Line? and ($target.owner != faction.xenon) and ($target.owner != faction.khaak)">
                <do_if value="event.name == 'event_cue_signalled' and player.isinconversation">
                  <!-- Add NPC response for 'g_surrender' conversation section -->
                  <add_npc_line line="$Speak_Line"/>
                </do_if>
                <do_else>
                  <speak actor="$target.pilot" line="$Speak_Line" />
                </do_else>
              </do_if>

              <do_if value="$eject?">
                <debug_text text="'%s crew are about to bail from %s %s %s %s'.[$numcrewbailing, $target.class, $target.idcode, $target.knownname, $target]" chance="$debug? * 100"/>
                <do_if value="$bail_role?">
                  <debug_text text="'bailing from %s %s %s.\nattacker: %s %s %s\nbailing: %s %s\nnum crew of role: %s'.[@$target.idcode, @$target.knownname, $target, @$attacker.idcode, @$attacker.knownname, $attacker, $numcrewbailing, $bail_role, $target.people.{$bail_role}.{0}.count]" chance="0"/>
                  <eject_people object="$target" attacker="$attacker" max="$numcrewbailing" role="$bail_role" level="0"/>
                </do_if>
                <do_else>
                  <eject_people object="$target" attacker="$attacker" max="$numcrewbailing"/>
                </do_else>
                <remove_value name="$numcrewbailing"/>

                <do_if value="$pilotbail?">
                  <do_if value="$attacker.isplayerowned">
                    <substitute_text text="$logtext" source="{1016,79}" comment="Forced pilot to leave ship $SHIP$ in sector $SECTOR$.">
                      <replace string="'$SHIP$'" with="$target.knownname" />
                      <replace string="'$SECTOR$'" with="$target.pilot.sector.knownname" />
                    </substitute_text>
                    <write_to_logbook category="upkeep" title="$logtext" interaction="showonmap" object="$target"/>
                  </do_if>
                  <debug_text text="'pilot about to bail from %s %s %s %s'.[$target.class, $target.idcode, $target.knownname, $target]" chance="$debug? * 100"/>

                  <create_order id="'Wait'" object="$target" default="true">
                    <param name="allowdocked" value="not $target.iscapitalship"/>
                  </create_order>
                  <cancel_all_orders object="$target"/>
                  <do_all exact="$target.cargo.count" counter="$i" reverse="true">
                    <set_value name="$removedware" exact="$target.cargo.list.{$i}"/>
                    <set_value name="$removedmaxamount" exact="($target.cargo.{$removedware}.count * ($target.pilot.combinedskill / 100.0))i"/>
                    <debug_text text="'removing from %s to %s out of %s %s. combinedskill: %s'.[($removedmaxamount * 0.8)i, $removedmaxamount, $target.cargo.{$removedware}.count, $removedware.name, $target.pilot.combinedskill]" chance="$debug? * 100"/>
                    <remove_cargo object="$target" ware="$removedware" min="($removedmaxamount * 0.8)i" max="$removedmaxamount"/>
                  </do_all>
                  <cease_fire object="$target"/>
                  <eject_npcs object="$target"/>

                  <do_if value="$damageminpercent gt 0">
                    <set_object_hull object="$target" min="[$target.hullpercentage, [$damageminpercent, 5].max].min" max="[$target.hullpercentage, [$damageminpercent, 10].max].min"/>
                  </do_if>
                  <do_else>
                    <destroy_object object="$target" explosion="true"/>
                  </do_else>

                  <!-- it's important that integrated subcomponents are destroyed with no explosion. otherwise, they will leave wrecks that the game will not recognize. -->
                  <do_if value="$target.exists">
                    <!-- NB: scuttleeffect defined in defaults.xml -->
                    <add_effect object="$target" effect="$target.scuttleeffect"/>
                    <find_object_component name="$subcomponents" object="$target" class="[class.weapon, class.turret, class.shieldgenerator]" multiple="true"/>
                    <shuffle_list list="$subcomponents"/>
                    <do_all exact="[$subcomponents.count, $target.pilot.combinedskill / 10].min" counter="$i" reverse="true">
                      <debug_text text="'destroying %s'.[$subcomponents.{$i}.knownname]" chance="$debug? * 100"/>
                      <destroy_object object="$subcomponents.{$i}" explosion="false"/>
                      <remove_value name="$subcomponents.{$i}"/>
                    </do_all>
                  </do_if>

                  <do_if value="$attacker.isplayerowned">
                    <set_value name="stat.pilots_bailed" operation="add"/>
                  </do_if>

                  <remove_value name="$pilotbail"/>
                </do_if>
                <remove_value name="$eject"/>
              </do_if>
            </do_if>

            <do_if value="$attacker == player.occupiedship">
              <do_if value="not global.$last_npc_notification?">
                <set_value name="global.$last_npc_notification" exact="0s" />
              </do_if>

              <!-- Object speak (at least a few seconds of wait) -->
              <do_if value="global.$last_npc_notification le (player.age - 50s) and ($target.pilot.page != 0) and not player.isinconversation">
                <remove_value name="$Speak_Line" />

                <!-- Plead for life (escape pod) -->
                <do_if value="$target.type == shiptype.escapepod">
                  <set_value name="$Speak_Line" exact="[10024, 10025].random" comment="(plea for life)" />
                </do_if>
                <!-- The object is attacking the player -->
                <do_elseif value="$target.pilot.command.value == command.attackobject and $target.pilot.command.param == player.controlled">
                  <!--Kill-relation case: Fight or flight-->
                  <do_if value="$target.pilot.mayattack.{player.controlled}">
                    <set_value name="$Speak_Line"  exact="10015" comment="(player attacks enemy object)" />
                  </do_if>
                  <!--Enemy (non-kill), Neutral or friendly case-->
                  <do_else>
                    <do_if value="$target.pilot.hasrelation.friend.{player.controlled}">
                      <set_value name="$Speak_Line" exact="[10047, 10048, 10049].random" comment="(player attacks friendly ship)" />
                    </do_if>
                    <!--Neutral and Enemy(non-kill) case-->
                    <do_else>
                      <set_value name="$Speak_Line" exact="[10047, 10048, 10049].random" comment="(player attacks neutral ship)" />
                    </do_else>
                  </do_else>
                </do_elseif>
                <!-- If not -->
                <do_else>
                  <!-- Depending on hull/shield, say something according to it -->
                  <do_if value="$target.shieldpercentage" min="50">
                    <do_if value="$target.people.count == 1">
                      <set_value name="$Speak_Line" exact="[10047, 10048, 10049].random" comment="(hit without taking serious damage)"/>
                    </do_if>
                    <do_else>
                      <set_value name="$Speak_Line" exact="[10004, 10005, 10006].random" comment="(hit without taking serious damage)"/>
                    </do_else>
                  </do_if>
                  <do_elseif value="$target.shieldpercentage" min="10">
                    <set_value name="$Speak_Line" exact="[10007, 10008].random" comment="(serious threat threshold reached)"/>
                  </do_elseif>
                  <do_elseif value="$target.hullpercentage" min="20">
                    <do_if value="$target.people.count == 1">
                      <set_value name="$Speak_Line" exact="[10024, 10025, 10028, 10029].random" comment="(generic life threat threshold reached)"/>
                    </do_if>
                    <do_else>
                      <set_value name="$Speak_Line" exact="[10024, 10025, 10026, 10027].random" comment="(generic life threat threshold reached)"/>
                    </do_else>
                  </do_elseif>
                  <do_elseif value="$target.hullpercentage" max="5">
                    <set_value name="$Speak_Line" exact="10035" comment="(deathrattle)"/>
                  </do_elseif>
                </do_else>

                <do_if value="$Speak_Line? and $target.owner != faction.xenon">
                  <speak actor="$target.pilot" line="$Speak_Line" />
                  <set_value name="global.$last_npc_notification" exact="player.age"/>
                </do_if>

              </do_if>
            </do_if>
          </actions>
        </cue>

Last edited by Shuulo on Wed, 9. Jun 21, 00:30, edited 5 times in total.

Falcrack
Posts: 4929
Joined: Wed, 29. Jul 09, 00:46
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Falcrack » Wed, 9. Jun 21, 00:23

Alan Phipps wrote:
Tue, 8. Jun 21, 23:08
- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.

but the shot that causes the pilot/captain to bail must come from a player-owned ship.
Not really, as I said, you can comm badly damaged ships in battles where none of the shots come from you or a player-owned ship, ask them to surrender, and have a decent chance that they bail on you. Try it out, you might find you can get a good sized fleet this way if you are patient!

User avatar
Shuulo
Posts: 1629
Joined: Mon, 14. Apr 08, 17:03
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Shuulo » Wed, 9. Jun 21, 00:29

Falcrack wrote:
Wed, 9. Jun 21, 00:23
Alan Phipps wrote:
Tue, 8. Jun 21, 23:08
- Added possibility for crew to bail when under attack by NPCs.
- Added possibility for NPC factions to claim abandoned ships.

but the shot that causes the pilot/captain to bail must come from a player-owned ship.
Not really, as I said, you can comm badly damaged ships in battles where none of the shots come from you or a player-owned ship, ask them to surrender, and have a decent chance that they bail on you. Try it out, you might find you can get a good sized fleet this way if you are patient!
Yeah, it can be caused by that, but it has no connection to my question. NPC cannot bail from other non-player NPC faction, never. Only player can make pilot bail, either via shot or via comm like you described.

User avatar
grapedog
Posts: 2398
Joined: Sat, 21. Feb 04, 20:17
x4

Re: Why NPC-to-NPC bailing was removed?

Post by grapedog » Wed, 9. Jun 21, 01:09

There are probably 5 or 6 unclaimed ships hanging around in my game that I haven't gotten around to scooping up. They were all caused by my employees, my own fleets.... so npcs making other npcs bail is still a thing. I have personally seen it happen less than a day ago.

User avatar
Shuulo
Posts: 1629
Joined: Mon, 14. Apr 08, 17:03
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Shuulo » Wed, 9. Jun 21, 01:14

grapedog wrote:
Wed, 9. Jun 21, 01:09
There are probably 5 or 6 unclaimed ships hanging around in my game that I haven't gotten around to scooping up. They were all caused by my employees, my own fleets.... so npcs making other npcs bail is still a thing. I have personally seen it happen less than a day ago.
I will quote my last message
NPC cannot bail from other non-player NPC faction

Alan Phipps
Moderator (English)
Moderator (English)
Posts: 30368
Joined: Fri, 16. Apr 04, 19:21
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Alan Phipps » Wed, 9. Jun 21, 12:42

@ Falcrack:

I wrote : ".. but the shot that causes the pilot/captain to bail must come from a player-owned ship."
and you wrote : "Not really, as I said, you can comm badly damaged ships in battles .."

I said 'the shot that causes' etc while a 'surrender comm' is obviously not a shot. :wink:
A dog has a master; a cat has domestic staff.

Fishille
Posts: 109
Joined: Fri, 9. Aug 13, 17:40
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Fishille » Wed, 9. Jun 21, 15:23

I had a Yaki ship outside my wharf that… produces Yaki ships… cause one of the trade ships supplying the production of… Yaki ships… to bail. None of my ships were involved, one of my own traders called it in and I had it claimed. (Side note that is fun. You get a good discount on materials when Yaki ships blow up or cause freighters to drop cargo, then have your own cargo ships collect the materials and deposit it into cargo.)

NightmareNight91
Posts: 419
Joined: Sun, 7. Feb 16, 17:28
x4

Re: Why NPC-to-NPC bailing was removed?

Post by NightmareNight91 » Thu, 10. Jun 21, 16:30

I can confirm that I have not found a SINGLE npc bailed ship, in 5 different game starts since 4.0 beta, this is very depressing. I do hope it is a mistake and will be fixed soon.

In my current game I have almost 100% vision on all sectors, all border conflicts included, not a single ship has bailed, even switched to a vanilla snoozefest playthrough to see if its a mod causing it, it is not...

The npc bailing vs npc behavior and frequency was much better before COH released.

I feel like we could increase the chance of NPC vs NPC bailing and add NPC salavagers that would try to compete and claim derilicts, and send them to a wharf to be recycled, this way it is somewhat balanced and would contribute to the economy.

Any chance a dev can chime in on this? Feel like this deserves to be answered.

NightmareNight91
Posts: 419
Joined: Sun, 7. Feb 16, 17:28
x4

Re: Why NPC-to-NPC bailing was removed?

Post by NightmareNight91 » Thu, 17. Jun 21, 06:47

Can we get an official answer if NPC's can no longer cause eachother to bail or if it was changed in some way?

Alan Phipps
Moderator (English)
Moderator (English)
Posts: 30368
Joined: Fri, 16. Apr 04, 19:21
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Alan Phipps » Thu, 17. Jun 21, 11:13

I said above "Purely NPC fire can cause crewmembers (service crew/marines) to bail (and so potentially weakening the defence of the ship and making it's pilot's chances of bailing greater after that) but the shot that causes the pilot/captain to bail must come from a player-owned ship."

This was said by the dev responding to a question after he made the changes to that bailing mechanic for 4.00 release after seeing that pure NPC vs NPC combat was making too many ships bail in a 4.00 beta.
A dog has a master; a cat has domestic staff.

jlehtone
Posts: 21801
Joined: Sat, 23. Apr 05, 21:42
x4

Re: Why NPC-to-NPC bailing was removed?

Post by jlehtone » Thu, 17. Jun 21, 12:02

In other words an idea was tested in beta, but was not found to be feasible in that form and therefore was not included in the official release?
Sounds right and proper.
Goner Pancake Protector X
Insanity included at no extra charge.
There is no Box. I am the sand.

Alan Phipps
Moderator (English)
Moderator (English)
Posts: 30368
Joined: Fri, 16. Apr 04, 19:21
x4

Re: Why NPC-to-NPC bailing was removed?

Post by Alan Phipps » Thu, 17. Jun 21, 14:24

Well, to be fair to that dev, the introduction of NPC fire perhaps causing crewmembers to bail and that player-owned AI ships could cause pilots to bail were both new in 4.00 betas and were taken into the release version. The bail mechanism is evolving over releases.
A dog has a master; a cat has domestic staff.

User avatar
grapedog
Posts: 2398
Joined: Sat, 21. Feb 04, 20:17
x4

Re: Why NPC-to-NPC bailing was removed?

Post by grapedog » Thu, 17. Jun 21, 15:57

I dont think it would be much of sn issue if npcs also claimed abandoned ships. Seems only the yaki try go claim/reclaim ships. If all the npcs did, abandoned ships could be cool thing to find on occasion, as opposed to having them stashed around the map... it could be much more organic. Less of a "lets read this forum thread that lists then all and their locations"...

NightmareNight91
Posts: 419
Joined: Sun, 7. Feb 16, 17:28
x4

Re: Why NPC-to-NPC bailing was removed?

Post by NightmareNight91 » Thu, 17. Jun 21, 19:40

This is very unfortunate to hear, i really like the bail mechanic, and would like to see it return...maybe just up the amount of salvagers to compete with the player? Are there any plans to reintroduce this mechanic?

jlehtone
Posts: 21801
Joined: Sat, 23. Apr 05, 21:42
x4

Re: Why NPC-to-NPC bailing was removed?

Post by jlehtone » Fri, 18. Jun 21, 09:05

grapedog wrote:
Thu, 17. Jun 21, 15:57
I dont think it would be much of sn issue if npcs also claimed abandoned ships.
Jobs, jobs, jobs are a fundamental issue. Jobs (not Steve) defines what ships and how many the NPC do use. NPC can't use ships that we sell them. Claimed ships are no different.
Goner Pancake Protector X
Insanity included at no extra charge.
There is no Box. I am the sand.

Post Reply

Return to “X4: Foundations”