v1.5.7.0 (Summer Update)

This commit is contained in:
Regalis11
2024-06-18 16:49:51 +03:00
parent 4a63dacbce
commit 230d1b6e78
263 changed files with 7792 additions and 2845 deletions
@@ -16,7 +16,7 @@ namespace Barotrauma
private readonly bool repeat;
//how long until the path to the target is declared unreachable
private float waitUntilPathUnreachable;
private bool getDivingGearIfNeeded;
private readonly bool getDivingGearIfNeeded;
/// <summary>
/// Doesn't allow the objective to complete if this condition is false
@@ -34,11 +34,6 @@ namespace Barotrauma
public bool DebugLogWhenFails { get; set; } = true;
public bool UsePathingOutside { get; set; } = true;
/// <summary>
/// Which event action created this objective (if any)
/// </summary>
public EventAction SourceEventAction;
public float ExtraDistanceWhileSwimming;
public float ExtraDistanceOutsideSub;
private float _closeEnoughMultiplier = 1;
@@ -94,10 +89,10 @@ namespace Barotrauma
/// </summary>
public bool UseDistanceRelativeToAimSourcePos { get; set; } = false;
public override bool AbandonWhenCannotCompleteSubjectives => false;
public override bool AbandonWhenCannotCompleteSubObjectives => false;
public override bool AllowOutsideSubmarine => AllowGoingOutside;
public override bool AllowInAnySub => true;
protected override bool AllowOutsideSubmarine => AllowGoingOutside;
protected override bool AllowInAnySub => true;
public Identifier DialogueIdentifier { get; set; } = "dialogcannotreachtarget".ToIdentifier();
public LocalizedString TargetName { get; set; }
@@ -287,10 +282,12 @@ namespace Barotrauma
if (waitUntilPathUnreachable < 0)
{
waitUntilPathUnreachable = pathWaitingTime;
if (repeat)
if (repeat && !IsCompleted)
{
SpeakCannotReach();
return;
if (!IsDoneFollowing())
{
SpeakCannotReach();
}
}
else
{
@@ -374,16 +371,10 @@ namespace Barotrauma
return;
}
}
if (repeat && IsCloseEnough)
if (IsDoneFollowing())
{
if (requiredCondition == null || requiredCondition())
{
if (character.CanSeeTarget(Target) && (!character.IsClimbing || IsFollowOrder))
{
OnCompleted();
return;
}
}
OnCompleted();
return;
}
float maxGapDistance = 500;
Character targetCharacter = Target as Character;
@@ -653,6 +644,21 @@ namespace Barotrauma
character.SetInput(InputType.Aim, false, true);
character.SetInput(InputType.Shoot, false, true);
}
bool IsDoneFollowing()
{
if (repeat && IsCloseEnough)
{
if (requiredCondition == null || requiredCondition())
{
if (character.CanSeeTarget(Target) && (!character.IsClimbing || IsFollowOrder))
{
return true;
}
}
}
return false;
}
}
private bool useScooter;