internal static void AddQuestEntities(HelicopterDetail questDetail, DataSet dataSet, List <Fox2EntityClass> entityList) { List <Helicopter> helis = questDetail.helicopters; if (helis.Count() > 1) // reinforceHeli does not need fox2 entries { foreach (Helicopter heli in helis) { if (heli.ID == 0) { continue; } GameObjectLocator heliLocator = new GameObjectLocator(heli.GetObjectName(), dataSet, "TppEnemyHeli"); Transform heliTransform = new Transform(heliLocator, new Core.Classes.InfiniteHeaven.Position()); TppHeli2LocatorParameter heliLocatorParameter = new TppHeli2LocatorParameter(heliLocator); heliLocator.SetTransform(heliTransform); heliLocator.SetParameter(heliLocatorParameter); entityList.Add(heliLocator); entityList.Add(heliTransform); entityList.Add(heliLocatorParameter); } } }
internal static void GetDefinition(HelicopterDetail questDetail, DefinitionLua definitionLua) { if (questDetail.helicopters.Any(helicopter => helicopter.isSpawn)) { definitionLua.AddDefinition($"hasEnemyHeli = {(questDetail.helicopters.Any(helicopter => helicopter.isSpawn) ? "true" : "false")}"); } }
private static Table BuildHeliList(HelicopterDetail questDetail) { Table heliList = new Table("heliList"); foreach (Helicopter heli in questDetail.helicopters) { if (!heli.isSpawn) { continue; } string DRouteString; uint route; if (uint.TryParse(heli.dRoute, out route)) // no quotations if the route is hashed { DRouteString = heli.dRoute; } else { DRouteString = $@"""{heli.dRoute}"""; } string CRouteString; if (uint.TryParse(heli.cRoute, out route)) { CRouteString = heli.cRoute; } else { CRouteString = $@"""{heli.cRoute}"""; } string dRouteCommand = $@"{{id = ""SetSneakRoute"", route = {DRouteString}}}"; string cRouteCommand = $@"{{id = ""SetCautionRoute"", route = {CRouteString}}}"; heliList.Add($@" {{ heliName = ""{heli.GetObjectName()}"", routeName = {DRouteString}, commands = {{{dRouteCommand},{cRouteCommand}}},{((heli.heliClass == "DEFAULT") ? "" : $@" coloringType = TppDefine.ENEMY_HELI_COLORING_TYPE.{heli.heliClass},")} }}");
internal static void GetMain(HelicopterDetail questDetail, MainLua mainLua) { if (questDetail.helicopters.Any(helicopter => helicopter.isSpawn)) { mainLua.AddToQuestTable(BuildHeliList(questDetail)); mainLua.AddToAuxiliary(setHelicopterAttributes); if (questDetail.helicopters.Any(helicopter => helicopter.isTarget)) { mainLua.AddToQStep_Main(QStep_MainCommonMessages.mechaNoCaptureTargetMessages); CheckQuestGenericEnemy helicopterCheck = new CheckQuestGenericEnemy(mainLua); foreach (Helicopter heli in questDetail.helicopters) { if (heli.isTarget) { mainLua.AddToTargetList(heli.GetObjectName()); } } } } }
public HelicopterManager(HelicopterDetail detail) : base(detail, visualizer) { }