Core/Conditions: Added CONDITION_SCENE_IN_PROGRESS, useful for cases where you need phase things when a scene is in progress.

Port From (https://github.com/TrinityCore/TrinityCore/commit/bd401af0912eca2c938b6dd93fdb7689b9146c89)
This commit is contained in:
hondacrx
2022-06-24 21:43:24 -04:00
parent d4f5f39a46
commit c81639bf56
3 changed files with 21 additions and 1 deletions
@@ -74,6 +74,7 @@ namespace Framework.Constants
TypeMask = 52, // TypeMask 0 0 true if object is type object's TypeMask matches provided TypeMask
BattlePetCount = 53, // SpecieId count ComparisonType true if player has `count` of battle pet species
ScenarioStep = 54, // ScenarioStepId 0 0 true if player is at scenario with current step equal to ScenarioStepID
SceneInProgress = 55, // SceneScriptPackageId 0 0 true if player is playing a scene with ScriptPackageId equal to given value
Max
}
+9
View File
@@ -411,6 +411,12 @@ namespace Game.Conditions
}
break;
}
case ConditionTypes.SceneInProgress:
{
if (player != null)
condMeets = player.GetSceneMgr().GetActiveSceneCount(ConditionValue1) > 0;
break;
}
default:
condMeets = false;
break;
@@ -527,6 +533,9 @@ namespace Game.Conditions
case ConditionTypes.ScenarioStep:
mask |= GridMapTypeMask.All;
break;
case ConditionTypes.SceneInProgress:
mask |= GridMapTypeMask.Player;
break;
default:
Cypher.Assert(false, "Condition.GetSearcherTypeMaskForCondition - missing condition handling!");
break;
+11 -1
View File
@@ -1767,6 +1767,15 @@ namespace Game
}
break;
}
case ConditionTypes.SceneInProgress:
{
if (!CliDB.SceneScriptPackageStorage.ContainsKey(cond.ConditionValue1))
{
Log.outError(LogFilter.Sql, $"{cond.ToString(true)} has non existing SceneScriptPackageId in value1 ({cond.ConditionValue1}), skipped.");
return false;
}
break;
}
default:
Log.outError(LogFilter.Sql, $"{cond.ToString()} Invalid ConditionType in `condition` table, ignoring.");
return false;
@@ -2986,7 +2995,8 @@ namespace Game
new ConditionTypeInfo("Object Entry or Guid", true, true, true),
new ConditionTypeInfo("Object TypeMask", true, false, false),
new ConditionTypeInfo("BattlePet Species Learned", true, true, true),
new ConditionTypeInfo("On Scenario Step", true, false, false)
new ConditionTypeInfo("On Scenario Step", true, false, false),
new ConditionTypeInfo("Scene In Progress", true, false, false)
};
public struct ConditionTypeInfo