Ascension of the Sylvan Cosmos-Chapter 429. Six Months and Lakeborn’s Discovery.
Chapter 429 - 429. Six Months and Lakeborn's Discovery.
Liu Shu woke up half a year later. After all, the Tier Ups were to a higher compared to before. She was an overall C- Tier World Tree, but now, after four Tier Ups, she was a B Tier World Tree, something quite up there in the global Tier scale for World Trees.
After waking up, Liu Shu noticed the change in her senses and control. 'Wow... I feel much more alive... Again.' She chuckled and thought of why this happened. 'Are the related to them? Or did their seed unlock them because of a certain condition? I don't understand why they are part of my or needed to unlock them.'
She was quite confused. After all, in Liu Shu's opinion, at least, her four lovers could've been anyone with enough incentive. 'Well, not anyone. I wouldn't change them for anyone. However... It is quite strange that so many coincidences are occurring, right?'
After her first time with Verdantia, she unlocked ; after her first time with Harmonixia, she unlocked . While relation wouldn't always correlate to causation, she felt that she was onto something. 'Hm... should I do it with Cinderielle and Tempestria as well?'
However, when she thought of doing it just to see if they could unlock a for her, there was a hint of discomfort. 'Making love shouldn't be done with those ulterior motives. Even if they make me much stronger...' Of course, Liu Shu was confident that her lovers wouldn't say no to her if she asked. After all, they all loved her to quite an insane degree. </p><p> Still, such an act was too intimate and pure to desecrate with ulterior motives. 'Hm... Well, Cinderielle and Tempestria will eventually ask for it. I'll just wait patiently.' </p><p> Putting those thoughts aside, she opened the eyes of her Avatar and looked down. Her lips arched delightedly. "Hehe~, my fertility is definitely SSS Class~." </p><p> Liu Shu had, once again, a big stomach protruding out. "I am pregnant again! Hehehe~. So happy~." </p><p> Her branches outside danced happily because she could give birth to another baby soon. When she moved, a frown etched on her face, the bounce of her breasts was somewhat painful. "Ah, right. They are swelling with milk because little Dewna is not here to empty them..." </p><p> She pondered, and soon, a vine came down from the ceiling. Looking at her own vine, she poked it with her finger, opening like a flower at the tip, dividing into four sides. Inside, there were a few soft suction cups. "Hm... I hope that those pouches I created can store the milk for later." </p><p> The vines latched onto her and started sucking while she tapped her chin in thought. "Hm... What was I doing before I went to sleep? Ah, yeah, I was beginning to expand beyond the <Wall Forest>." </p> <div style="margin-top: 0px; margin-bottom: 10px; text-align: center;"> <div id="pf-1558-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "6291d4945648930028748c1a", id: "pf-1558-1"})</script></div> </div><p> Before she did so, a myriad voices reached her. "Liu Shu, are you awake?" </p><p> Liu Shu looked at the origin and smiled. "Big Sister Lakeborn? What's wrong?" </p><p> Lakeborn spoke softly. "We've spread quite a lot in the sea, and we've found a few intelligent races underwater. What should we do?" </p><p> Hearing her worries, our World Tree laughed faintly. "Well, do as you please. You can either take them under your protection, you can kill them so that they don't give you trouble... Or you can ignore them and leave them for your people to deal with. How strong are they? Is there any Fourth Energy Cycle being?" </p><p> "Nothing like that." Lakeborn commented. "They are quite numerous. However, their strongest combatants are Third Energy Cycle beings. We asked because they are somewhat peculiar." </p><p> "Peculiar...?" Liu Shu moved her gaze and shared senses with Lakeborn. There, Liu Shu noticed a group of normal humans. Nothing like what she expected. They were all in an underwater city covered by a glass dome. This dome had a few tunnels that went up to the sea's surface. There, Liu Shu observed a few large platforms where people came and went in large ships. </p><p> She was somewhat confused. "Hm... Who are these people?" Her senses moved over, listening to the conversations of the people there. She didn't find anything for a little while, until she finally caught one interesting conversation. </p><p> "When will the reinforcements arrive? We are here so far into the sea only to avoid that freakish World Tree." </p><p> "Who knows? The high ("People with influence"<- find the word please.) have been going ham on the territories of the Celestial Lotus Empire and Azure Rose Confederation. Once they conquer that side, we'll probably be mobilized." </p><p> "Sucks... Either way, did you go to the new brothel..." </p><p> Liu Shu stopped listening there and searched for another conversation. </p><p> "Lady Evangeline is quite intelligent. Creating this offshore platform to avoid the World Tree's sight and still be able to flank them is very creative." </p> <div style="margin-top: 0px; margin-bottom: 10px; text-align: center;"> <div id="pf-1556-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "62910880adf4e30027560830", id: "pf-1556-1"})</script></div> </div><p> "Indeed. No matter how many times I see it, I am in awe. The Water, Earth, Fire, and Wind Aether Mana used to create this place is in the hundreds of thousands of cores in total. It's quite an absurd place." </p><p> Liu Shu paused. 'Evangeline... That name is familiar...' She searched her memories for a little while, and eventually she found it. 'Ah. That's Jolie's mother. Hm... She was part of the Nexus, right? So, this is a place for the nexus?' </p><p> Her eyes shone with curiosity. 'Should I destroy it?' However, she quickly denied that motion. 'No... I will act as if I didn't find it. Still, I'll stretch my roots here and latch them at the base of the dome protecting the city. When time's right... Hehe.' </p><p> With that in mind, Liu Shu spoke to Lakeborn. "Big Sister Lakeborn! This is quite a great discovery! Hehe. I'll tell Flor to up your resource share for the next year!" </p><p> Lakeborn was somewhat surprised. "Is it? We appreciate your words, Liu Shu. By the way, did Liu Shu develop the underwater defensive structure?" </p><p> Liu Shu building a <Mother Of Thousand Flower Field> in every surface city was widely known among the World Trees. However, that defensive structure was only good for land and air; underwater, it didn't work. So, of all the World Trees, only Lakeborn's city lacked such a city-wide, long-range, defensive structure. </p><p> Still, our World Tree was working on ways to modify the structure for it to work underwater as well. She didn't know how to do it yet. </p><p> "I am still working on it, Lakeborn. I have no idea how to create something like it and make it work underwater." Securing the surroundings of an underwater city was harder than one could imagine. </p><p> Lakeborn answered, her tone curious. "Liu Shu wants to build a long-range attacking structure, right? However, projectiles underwater don't work that well. Then, why don't you use something similar to our nature but for long range?" </p><p> Liu Shu pondered. "Something similar to your nature?" Her mind started working and creating many ideas in her head. Eventually, there was a flash of inspiration. "Ah. I know! The projectiles just need to know how to steer themselves!" </p><p> Lakeborn was speechless. How could doing something like that be easy? Still, Liu Shu's roots began moving around Lakeborn's city, moving some sand. The people living in the underwater city freaked out for a moment before Lakeborn spoke. </p><p> "Don't fret. Tianlian Liu Shu is helping us develop a defensive structure." </p><p> The people calmed down and looked on curiously at what the World Tree above ground could be doing in their city. Some people even voiced their doubts. "Although I admire Lady Liu Shu, isn't Lady Lakeborn much more suited to create underwater defensive measures?" </p> <div style="margin-top: 0px; margin-bottom: 10px; text-align: center;"> <div id="pf-878-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "618befb240ce5b0028261626", id: "pf-878-1"})</script></div> </div> <p> "There are already some, right? I don't know why Lady Liu Shu feels the need to be involved with us. I think she should ignore the underwater domain." </p><p> Lakeborn heard those words and felt somewhat uncomfortable. For her, Liu Shu was someone whom she owed a lot to. Not only did Liu Shu share her old Core with her, she managed to find her a place where she could stretch her roots in all directions with little to no resistance. Lakeborn's current situation was like Heaven for a World Tree. </p><p> Before she did something, Liu Shu's roots gently coiled around her underwater vine-like roots. "Don't worry, Lakeborn. Let them speak as they want. Actions speak louder than words. Once I create it, those who listened to him will be the first ones to bring it up and embarrass them for it." </p><p> Lakeborn felt a soothing feeling when Liu Shu's roots coiled around hers. She answered softly. "En. We understand." </p><p> While working on that, Liu Shu finally focused on the outer side of the Wall Forest. 'To make it not obvious that I've conquered the Wall Forest, I need to destroy a small part of it. My roots will then pass through that place and extend everywhere. Now, where do I plant this trap?' </p><p> She looked around and decided to open a path that led to the <Snow Lands>, otherwise known as <Savage Lands>. That place was quite a natural fortress. Forests surrounded the outer side while powerful World Trees guarded the land. If the Nexus decided on going through that opening, it would be like jumping into a fire pit. Even if they don't burn alive, they will lose a few layers of their skin. </p><p> Her presence surged and then her Ternary Essences traveled through her complex root net to that area of the Wall Forest. Her powerful attributes allowed her to move the land, trees, and many other landscape-wide effects. </p><p> The Snow Lands World Trees naturally noticed, and Snow asked as the representative. "Little Liu Shu, what are you doing?" </p><p> Liu Shu answered with a humming voice. "I am opening a path to the Azure Rose Confederation territory through the <Wall Forest>! They are right on the other side of the <Wall Forest> at the south. I'll also open another path by our side to reach the central area, where the Celestial Lotus Empire's territory resides. Once I open those two paths, the intelligent creatures can use them to create traps, ambushes, or whatever they want. Plus, since I control the <Wall Forest>, it won't be as aggressive to all of you." </p><p> Snow listened and moved her branches in thought. Her gorgeous white leaves made it look as if her canopy was a low-hanging cloud dancing under the wind's whims. "I see. Will you send people to protect those entrances down here?" </p><p> Puzzled, Liu Shu spoke. "Of course! Big Sister Frost is quite near the Wall Forest, so her city makes for a perfect fortress!" Frost was another World Tree from the snow lands. Her city was down south and near the middle, making her position perfect for being the "destination" of the channel she was opening. </p><p> With that, she informed Flor and the others before starting "destroying" the <Wall Forest> so that her roots could pass through.</p></div> <!--bidgear--> <script async data-cfasync="false" src="https://platform.pubadx.one/pubadx-ad.js" type="text/javascript"></script> <div style="margin-top: 10px; margin-bottom: 0px; text-align: center;"> <div id="bg-ssp-10016"> <script data-cfasync="false"> var adx_id_10016 = document.getElementById('bg-ssp-10016'); adx_id_10016.id = 'bg-ssp-10016-' + Math.floor(Math.random() * Date.now()); window.pubadxtag = window.pubadxtag || []; window.pubadxtag.push({zoneid: 10016, id: adx_id_10016.id, wu: window.location.href}) </script> </div> </div> <!--bidgear end--> <!--<div style="margin-top: 0px; margin-bottom: 0px; text-align: center;">--> <!--<div id="pf-1448-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "6282088417d0810027b05464", id: "pf-1448-1"})</script></div>--> <!--</div>--> </div> <div class="chapter-end"></div> <ul class="ul-list7"> <li> <a href="/novel/ascension-of-the-sylvan-cosmos/chapter-428" id="prev_url" title="Read Privious Chapter"><span class="glyphicon glyphicon-chevron-left"></span>Prev Chapter</a> </li> <li> <a href="javascript:;" class="a1"><span class="glyphicon glyphicon-list-alt"></span></a> <div class="catalog"> <select onchange="location.href=options[selectedIndex].value"> </select> </div> </li> <li> <a href="/novel/ascension-of-the-sylvan-cosmos/chapter-430" id="next_url" title="Read Next chapter">Next Chapter<span class="glyphicon glyphicon-chevron-right"></span></a> </li> </ul> <div class="text-center" style="text-align:center"> <a href="javascript:;" class="library set-case" data-articleid="6075" data-chapterid="429"><span class="glyphicon glyphicon-plus"></span> Add to Library</a> <a href="javascript:;" class="showcomment"><span class="glyphicon glyphicon-comment"></span> <span id="total-tomm2">0</span> Comments</a> </div> <p class="tips">Use arrow keys (or A / D) to PREV/NEXT chapter</p> <div id="e-comments" class="m-newest3" style="display: none;margin-bottom: 1em"> <div class="m-newest3"> <div class="g-tit"> <h3 class="tit" style="text-align:left;margin: 0;"><span class="text-align: left; glyphicon glyphicon-comment"></span> Comments</h3> </div> <div class="flex-col" style="gap: 8px;padding: 1em"> <div class="flex-col comment-box" style="align-items: end;gap: 8px;"> <!-- Edit box --> <textarea placeholder="Share your thoughts." class="e-edit comm-inp" id = 'comm-text' rows="5"></textarea> <!-- Submit Button --> <button type="button" class="e-show-more comm-btn comment-submit"><span class="glyphicon glyphicon-circle-arrow-up"></span> Submit</button> </div> <!-- Best and Newest --> <div class="flex-row justify-end color2" style="gap: 8px;align-items: stretch;"> <div class="flex-row f16" style="flex-grow: 1;font-weight: bold;align-items: center;"> <span><span id="total-tomm">0</span> Comments</span> </div> <div class="flex-row e-label order-box" data-sort="best" style="align-items: center;">Best</div> <div class="flex-row e-label order-box selected" data-sort="newest" style="align-items: center;">Newest</div> </div> <div class="flex-col e-comment-list align-center" style="gap: 1em"> <div class="comment-list w100"> </div> <button type="button" class="e-show-more f14 pointer load-comment"> <span class="glyphicon glyphicon-plus-sign load-icon"></span> <span class="btn-text">Load More Comments</span> </button> </div> </div> </div> <script> let page = 1; let articleid = 6075; let chapterid = 0; $(function(){ $('body').on("click",".reply-btn",function(){ if($(this).parent().parent().find(".flex-col").is(":visible")){ $(this).parent().parent().find(".flex-col").hide(200) }else{ $(this).parent().parent().find(".flex-col").show(200) } }) if(localStorage.comment_cache){ $('#comm-text').val(localStorage.comment_cache); } let defContent = '<span class="glyphicon glyphicon-circle-arrow-up"></span> Submit'; let comment_submit = false; $('body').on('click','.comment-submit',function(){ if(comment_submit){ return } $(this).html('<span class="glyphicon glyphicon-refresh spin"></span> Sending...'); let that = $(this); comment_submit = true; submitComm(this,function(){ comment_submit = false; that.html(defContent); }); }) function submitComm(e,after){ var pid = 0; var ppid = 0; let content = ''; let pUserUid = 0; if($(e).is('.child')){ pid = $(e).attr('data-pid')*1; if(pid == 0) { alert('pid is empty!') if(after != null) { after() } return } ppid = $(e).attr('data-ppid')*1; if(ppid == 0) { alert('ppid is empty!') if(after != null) { after() } return } content = $(e).parent().find('.comm-text').val(); }else{ content = $('#comm-text').val(); } pUserUid = $(e).attr('data-puserid')*1; if(pUserUid == 0) { alert('puserId is empty!') if(after != null) { after() } return } if(content == '') { alert('comment is empty!') if(after != null) { after() } return } localStorage.comment_cache = content; let that = $(e); $.ajax({ type: "post", url: '/api/comments.php', async:true, data: { pid:pid, ppid:ppid, p_user_uid:pUserUid, action:'add', articleid:articleid, chapterid:chapterid, content:content }, xhrFields: { withCredentials: true }, crossDomain: true, dataType: "json", success: function(res) { if(res.code == 403) { window.location.replace('/login'); return } if (res.code == 0) { $('#comm-text').val(''); getList(true); }else{ alert(res.msg) } if(after != null) { after() } localStorage.comment_cache = ''; }, error: function(){ if(after != null) { after() } localStorage.comment_cache = ''; } }) } let agree_ing = false; $('.comment-list').on('click','.agree-click',function(){ if(agree_ing){ return } agree_ing = true; let commid = $(this).attr('data-commid'); if(commid <= 0) { alert('commid is empty!') agree_ing = false; return } let articleid = $(this).attr('data-articleid'); if(articleid <= 0) { alert('articleid is empty!') agree_ing = false; return } let isOn = true; let action = 'addArgee'; if($(this).find('.glyphicon').is('.glyphicon-heart')) { isOn = false; action = 'delArgee'; } let that = $(this); $.ajax({ type: "post", url: '/api/comments.php', data: { action:action, commid:commid, articleid:articleid }, xhrFields: { withCredentials: true }, crossDomain: true, dataType: "json", success: function(res) { if(res.code == 403) { window.location.replace('/login'); return } if (res.code == 0) { if(isOn){ that.find('.glyphicon').addClass('glyphicon-heart') that.find('.glyphicon').removeClass('glyphicon-thumbs-up') that.find('.argee_num').html(that.find('.argee_num').html()*1 + 1) }else{ that.find('.glyphicon').addClass('glyphicon-thumbs-up') that.find('.glyphicon').removeClass('glyphicon-heart') that.find('.argee_num').html(that.find('.argee_num').html()*1 - 1) } }else{ alert(res.msg) } agree_ing = false; }, error: function(){ agree_ing = false; } }) }) $('.comment-list').on('click','#delbut',function(){ var res = confirm('Do you want to remove this comment?'); if (!res) { return } if($(this).is('.run_ing')){ return } $(this).addClass('run_ing'); let commid = $(this).attr('data-commid'); if(commid <= 0) { alert('commid is empty!') return } let articleid = $(this).attr('data-articleid'); if(articleid <= 0) { alert('articleid is empty!') return } let that = $(this); $.ajax({ type: "post", url: '/api/comments.php', data: { action:'del', commid:commid, articleid:articleid }, xhrFields: { withCredentials: true }, crossDomain: true, dataType: "json", success: function(res) { that.removeClass('run_ing'); if(res.code == 403) { window.location.replace('/login'); return } if (res.code == 0) { getList(true); }else{ alert(res.msg) } }, error: function(){ that.removeClass('run_ing'); } }) }) let orderIng = false; $('.order-box').click(function(){ if(orderIng){ return } orderIng = true let boxs = document.querySelectorAll('.order-box') for(const box of boxs) { if (box === this) { box.classList.add('selected') }else { box.classList.remove('selected') } } let od = $(this).attr('data-sort'); this.classList.add('selected'); getList(true,od); orderIng = false; }) $('.vcode').click(function(){ $('.vcode').attr('src',"/api/vcode.php?t="+Math.random()); }) $('.load-comment').click(function(){ if($(this).hasClass('btn-loading') || $(this).hasClass('loaded-all')) { return; } getList(); }) let firstLoad = false; $('.showcomment').click(function(){ let container = document.querySelector('#e-comments') if(!container)return; if (container.style.display === "none") { if(!firstLoad) { firstLoad = true getList(); } container.style.display = ""; } else { container.style.display = "none"; } }) getcount(); }) function getcount() { $.ajax({ type: "post", url: '/api/comments.php', data: { action:'count', articleid:articleid, chapterid:chapterid, }, xhrFields: { withCredentials: true }, crossDomain: true, dataType: "json", success: function(res) { if(res.code == 403) { window.location.replace('/login'); return; } if (res.code == 0) { $('#total-tomm').html(res.data.total); $('#total-tomm2').html(res.data.total); } else { alert(res.msg); $btnText.text('Load More Comments'); } }, error: function(){ } }); } function getList(reLoad, order) { var $btn = $('.load-comment'); var $btnText = $btn.find('.btn-text'); if(reLoad !== true) { $btn.addClass('btn-loading').prop('disabled', true); $btn.find('.load-icon').removeClass('glyphicon-plus-sign').addClass('glyphicon-refresh spin'); $btnText.text('Loading...'); } if(reLoad === true){ page = 1; } $.ajax({ type: "post", url: '/api/comments.php', data: { action:'list', articleid:articleid, chapterid:chapterid, order:order, page:page }, xhrFields: { withCredentials: true }, crossDomain: true, dataType: "json", success: function(res) { $btn.removeClass('btn-loading').prop('disabled', false); $btn.find('.load-icon').removeClass('glyphicon-refresh spin').addClass('glyphicon-plus-sign'); if(res.code == 403) { window.location.replace('/login'); return; } if (res.code == 0) { page++; if(reLoad === true){ $('.comment-list').html(''); } res.data.data_list.forEach(function(v,i){ let con = getCommLi({ uid:v.user_info.uid, userName:v.user_info.nickname, headPic:v.user_info.picture, content:v.content, addTime:v.created_at, agree:v.agree, myAagree:v.my_agree, atricleid:v.article_id, commid:v.id, child:v.child, }); $('.comment-list').append(con); }); // 新增判断:如果总评论数不超过一页数量,或者已经加载完且只有一页 if(res.data.total <= res.data.data_list.length || (res.data.is_end && page <= 2)) { $btn.hide(); // 直接隐藏整个按钮 } else if(res.data.is_end) { $btn.show() .find('.load-icon').removeClass('glyphicon-plus-sign').addClass('glyphicon-ok'); $btnText.text('All Comments Loaded'); $btn.addClass('loaded-all'); } else { $btn.show() .find('.load-icon').removeClass('glyphicon-ok').addClass('glyphicon-plus-sign'); $btnText.text('Load More Comments'); $btn.removeClass('loaded-all'); } $('#total-tomm').html(res.data.total); $('#total-tomm2').html(res.data.total); } else { alert(res.msg); $btnText.text('Load More Comments'); } }, error: function(){ $btn.removeClass('btn-loading').prop('disabled', false) .find('.load-icon').removeClass('glyphicon-refresh spin').addClass('glyphicon-plus-sign'); $btn.find('.btn-text').text('Load More Comments'); alert('Failed to load comments. Please try again.'); } }); } function getCommLi(opt){ let uid = opt['uid']; let child = opt['child']; let userName = opt['userName']; let headPic = opt['headPic']; let content = opt['content']; let addTime = opt['addTime']; let agree = opt['agree']; let myAagree = opt['myAagree']; let articleId = opt['atricleid']; let commId = opt['commid']; let nowUid = 0; let agOn = ' <span class="glyphicon glyphicon-thumbs-up"></span>'; if(myAagree){ agOn = '<span class="glyphicon glyphicon-heart"></span>'; } let del = `<button class="e-reply flex-center color3 delate" id="delbut" data-articleid="`+articleId+`" data-commid="`+commId+`"><span class="glyphicon glyphicon-trash" style="top: 0"></span></button>`; if(uid != nowUid) { del = ''; } let showAll = `<button class="e-show-more-re" id="showButton" onclick="showMoreReplies(this)"><span class="glyphicon glyphicon-eye-open"></span> Show More Replies</button> <button class="e-show-more-re" style="display:none;" id="showButton" onclick="showMoreReplies(this)"><span class="glyphicon glyphicon-eye-close"></span> Close Replies</button>` if(child == null || child.length <= 1) { showAll = ''; } let childHtml = ''; if (child != null && child.length >0) { child.forEach(function(v,i){ var childAgOn = ' <span class="glyphicon glyphicon-thumbs-up"></span>'; if(v.my_agree){ childAgOn = '<span class="glyphicon glyphicon-heart"></span>'; } var attr = 'id="reply-item" style="display: none;"'; if (i == 0) { attr = ''; } let childDel = `<button class="e-reply flex-center color3 delate" id="delbut" data-articleid="`+v.article_id+`" data-commid="`+v.id+`"> <span class="glyphicon glyphicon-trash" style="top: 0"></span> </button>`; if(v.user_info.uid != nowUid) { childDel = ''; } childHtml += ` <div class="flex-row e-comment-item" `+attr+`> <img class="e-avatar" src="`+v.user_info.picture+`" alt=""> <div class="flex-col" style="flex-grow: 1;gap: 8px;"> <div class="flex-row justify-between e-username"> <span class="color1" style="flex-shrink: 1;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"> <span style="flex-shrink: 1">`+v.user_info.nickname+`</span> <span style="flex-shrink: 1" class="color3 glyphicon glyphicon-share-alt"></span> <span style="flex-shrink: 1" class="color3">`+v.p_user_info.nickname+`</span> </span> <div class="color2 f14 main-color-hs agree-click" data-articleid="`+v.article_id+`" data-commid="`+v.id+`"> `+childAgOn+` <span class="argee_num">`+v.agree+`</span> </div> </div> <div class="e-comment">`+v.content+`</div> <div class="flex-row justify-between"> <div class="color3 f14">`+v.created_at+`</div> `+childDel+` <div style="flex-grow: 1"></div> <button class="e-reply reply-btn" onclick="if (!window.__cfRLUnblockHandlers) return false; switchDisplayNone(this)"> <span class="glyphicon glyphicon-comment"></span> Reply </button> </div> <div class="flex-col" style="align-items: end; gap: 8px; display: none;"> <textarea placeholder="Share your thoughts." class="e-edit comm-text" rows="5"></textarea> <button class="e-show-more comment-submit child" data-puserid="`+v.user_info.uid +`" data-pid="`+v.id +`" data-ppid="`+v.ppid +`"><span class="glyphicon glyphicon-circle-arrow-up"></span> Submit</button> </div> </div> </div>`; }) } if(childHtml != '') { childHtml += showAll; } let commHtml = `<div class="flex-col e-border-bottom w100"> <div class="flex-row e-comment-item w100"> <img class="e-avatar" src="`+headPic+`" alt=""> <div class="flex-col" style="flex-grow: 1;gap: 8px;width:calc(100% - 48px"> <!-- 用户名 and 点赞 --> <div class="flex-row justify-between e-username"> <span class="color1">`+userName+`</span> <div class="color2 f14 main-color-hs agree-click" data-articleid="`+articleId+`" data-commid="`+commId+`"> `+agOn+` <span class="argee_num">`+agree+`</span> </div> </div> <div class="e-comment w100">`+content+`</div> <div class="flex-row justify-between"> <div class="color3 f14">`+addTime+`</div> `+del+` <div style="flex-grow: 1"></div> <button class="e-reply reply-btn" onclick="if (!window.__cfRLUnblockHandlers) return false; switchDisplayNone(this)"> <span class="glyphicon glyphicon-comment"></span> Reply </button> </div> <!-- textarea --> <div class="flex-col" style="align-items: end; gap: 8px; display: none;"> <textarea placeholder="Share your thoughts." class="e-edit comm-text" rows="5"></textarea> <button class="e-show-more comment-submit child" data-puserid="`+uid +`" data-pid="`+commId +`" data-ppid="`+commId +`"><span class="glyphicon glyphicon-circle-arrow-up"></span> Submit</button> </div> </div> </div> <div class="flex-col" style="padding-left: 1em;"> `+childHtml +` </div> </div>`; return commHtml; } function showMoreReplies(element) { let parent = element.parentElement; if (!parent) return; parent.querySelectorAll("& > #reply-item").forEach((item, index) => { if (item.style.display === "none") { item.style.display = ""; } else { item.style.display = "none"; } }); parent.querySelectorAll("& > #showButton").forEach((item, index) => { if (item.style.display === "none") { item.style.display = ""; } else { item.style.display = "none"; } }); } </script> </div> </div> </div> <!-- Floating Button --> <div class="float-container flex-row align-center speak-float-btn" style="display:none;"> <button class="control-btn flex-center glyphicon glyphicon-play speak-switch-fl" style="top: 0;vertical-align: baseline;"> </button> <button class="control-btn flex-center glyphicon glyphicon-stop speak-close-fl" style="top: 0;vertical-align: baseline;"> </button> </div> <a href="javascript:;" id="goTop"> <span class="glyphicon glyphicon-circle-arrow-up"></span> </a> </div> <script src="/static/novelbuddy/js/reader.js?v=1.25"></script> <script src="/static/novelbuddy/js/jquery.cookie.min.js"></script> <script src="/static/novelbuddy/js/speak.js?v=1.0.72"></script> <script src="/static/novelbuddy/js/bookcase.js?v=1.1.3"></script> <script> $('.ul-list7 li .a1').click(function() { $(this).stop().hide().siblings('.catalog').stop().show(); $.ajax({ type: "post", url: "/api/chapterlist.php", data: { aid: '6075', acode: 'ascension-of-the-sylvan-cosmos', cid: '429' }, success: function(data) { $('.catalog > select').html(data.html) }, dataType: "json" }) }); </script> <script> $(function() { // Define a configuration object const bookCaseConf = { attrArticleid:'data-articleid', attrChapterid:'data-chapterid', parentSelecter:'body', selecter:'.set-case', selectedClass:'.on', delUrl:'/api/delbookcase.php', addUrl:'/api/addbookcase.php', delCallback: function(e) { let htmlContent = `<span class="glyphicon glyphicon-plus"></span> Add to Library`; e.removeClass('on'); e.html(htmlContent); }, addCallback: function(e){ let htmlContent = `<span class="glyphicon glyphicon-ok"></span> In Library`; e.addClass('on'); e.html(htmlContent); }, } let bookCase = new BookCase(bookCaseConf) }) </script> <script> document.onkeydown = (event) => { // input or textarea if (event.target.nodeName === 'TEXTAREA' || event.target.nodeName === 'INPUT') return; if (event.keyCode == 65 || event.keyCode==37) window.location = document.querySelector('#prev_url').attributes.href.value; if (event.keyCode == 68 || event.keyCode==39) window.location = document.querySelector('#next_url').attributes.href.value; if (event.keyCode == 13) window.location = '/novel/ascension-of-the-sylvan-cosmos'; } </script> <div class="footer"> <div class="wp"> <div class="ll"> <a href="/home" title="Free Web Novel">novelbuddy.Com</a><br>Read Books Online & Free Novels Online </div> <div class="rr"> <a href="/contact" title="Contact us">Contact</a> - <a href="/sitemap.xml" title="Sitemap" target="_blank">Sitemap</a> <br><a href="/privacypolicy" title="Privacy Policy"> Privacy Policy</a> & <a href="/termsofuse" title="Terms of use"> Terms of use</a> </div> </div> </div> <!-- log in --> <div id="login" class="e-login-wrapper flex-row justify-center align-center" style="z-index: 1000;position: fixed;left: 0;top: 0;right: 0;bottom: 0;display: none"> <div class="flex-col e-login-container"> <div onclick="loginPopups()" class="flex-row color1 justify-end" style="position: absolute;top: 5%;right: 5%"> <span class="glyphicon glyphicon-remove" style="cursor: pointer;"></span> </div> <div class="flex-row color1 f24">Welcome to novelbuddy</div> <div class="color2" style="text-align: center;font-size: 16px;">Create or log into your account to access terrific novels and protect your data.</div> <div class="e-login-button" style="position:relative;"> <img style="position: absolute" src="/static/novelbuddy/images/Google.png" alt=""> <a href="/login"><div>Log in with Google</div></a> </div> <div style="text-align: center;"> <span class="color2">Don’t Have an account? Click above to create an account.</span> <!--<a href="#" style="color: var(--main-color)">Sign up with your email address.</a>--> </div> <div> <a href="/termsofuse" style="color: var(--main-color)">Terms of Service</a> <span>/</span> <a href="/privacypolicy" style="color: var(--main-color)">Privacy Policy</a> </div> </div> </div> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-1Z2JMDX1K4"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-1Z2JMDX1K4'); </script><script> // Login pop-up window function loginPopups() { let login = document.querySelector('#login') if (login.style.display !== 'none') login.style.display = 'none' else login.style.display = '' } </script> </body></html><div id="pf-1553-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "6290aaf14b78ab002735e567", id: "pf-1553-1"})</script></div> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'951cc7759e9e4d52',t:'MTc1MDI3MDYwMC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"rayId":"951cc7759e9e4d52","version":"2025.6.2","r":1,"token":"3dfd337b6d8847e985544a8c990b61b1","serverTiming":{"name":{"cfExtPri":true,"cfEdge":true,"cfOrigin":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}}}' crossorigin="anonymous"></script>