예제 #1
0
        public static void GetDefinition(EnemyDetail detail, DefinitionLua definitionLua)
        {
            if (detail.enemies.Count > 0)
            {
                string region = GetRegion(detail.enemyMetadata.subtype);

                StringBuilder faceIdList = new StringBuilder("faceIdList = {");
                if (HasBalaclavas(detail.enemies))
                {
                    faceIdList.Append($"TppDefine.QUEST_FACE_ID_LIST.{region}_BALACLAVA, ");
                }
                faceIdList.Append("}");
                definitionLua.AddPackInfo(faceIdList.ToString()); // if necessary faceIdList and bodyIdList should be components of definitionLua

                StringBuilder bodyIdList = new StringBuilder("bodyIdList = {");
                if (HasArmors(detail.enemies))
                {
                    bodyIdList.Append($"TppDefine.QUEST_BODY_ID_LIST.{region}_ARMOR, ");
                }
                foreach (string body in GetBodies(detail.enemies))
                {
                    bodyIdList.Append($"TppEnemyBodyId.{body}, ");
                }
                bodyIdList.Append("}");
                definitionLua.AddPackInfo(bodyIdList.ToString());
            }
        }
예제 #2
0
        internal static void GetEnemyAssets(EnemyDetail questDetail, FileAssets fileAssets)
        {
            string enemyFPKDAssetsPath = Path.Combine(enemyAssetsPath, "FPKD_Files");

            if (HasZombie(questDetail.enemies))
            {
                fileAssets.AddFPKDFolder(Path.Combine(enemyFPKDAssetsPath, "zombie_fpkd"));
            }
        }
예제 #3
0
        public static void GetMain(EnemyDetail detail, MainLua mainLua)
        {
            List <Enemy>  enemies = detail.enemies;
            EnemyMetadata meta    = detail.enemyMetadata;

            mainLua.AddToOpeningVariables("SUBTYPE", $@"""{meta.subtype}""");

            mainLua.AddToQuestTable(BuildEnemyList(enemies));
            bool hasSpawn  = false;
            bool hasTarget = false;

            foreach (Enemy enemy in enemies)
            {
                if (enemy.spawn)
                {
                    hasSpawn = true;
                    if (enemy.isTarget)
                    {
                        hasTarget = true;
                        mainLua.AddToTargetList(enemy.GetObjectName());
                    }
                }
            }

            if (hasSpawn)
            {
                string questarmor     = $"isQuestArmor = {(HasArmors(enemies) ? "true" : "false")}";
                string questZombie    = $"isQuestZombie = {(HasZombie(enemies) ? "true" : "false")}";
                string questBalaclava = $"isQuestBalaclava = {(HasBalaclavas(enemies) ? "true" : "false")}";
                mainLua.AddToQuestTable(questarmor, questZombie, questBalaclava);

                if (hasTarget)
                {
                    mainLua.AddToQStep_Main(QStep_MainCommonMessages.genericTargetMessages);
                    CheckQuestGenericEnemy CheckEnemy = new CheckQuestGenericEnemy(mainLua, CheckIsSoldier, meta.objectiveType);
                }
            }
        }
예제 #4
0
 public EnemyManager(EnemyDetail detail) : base(detail, visualizer)
 {
 }