©WebNovelPlus
Ascension of the Sylvan Cosmos-Chapter 405. Sylvans Gather. [Sprouts Of Chaos]
Chapter 405 - 405. Sylvans Gather. [Sprouts Of Chaos]
Verdantia walked down the streets with a complicated expression. After releasing all her lust, her rational thoughts were clearer than before. 'I don't regret it.' Verdantia was happy about what happened; that was the definitive truth. 'Still... I broke our promise.'
A few years ago, when Liu Shu was still sleeping, the four Sylvans made a pact between them. Verdantia muttered it. "We won't have real intercourse unless Liu Shu asks for it herself without hints from us."
In short, Liu Shu needed to tell them quite clearly, "I want to make love with you," before they could take that step. However, Verdantia broke that promise, and that made her feel guilty.
All four of them knew that if they were pushy about it or even suggested it, Liu Shu would not deny them. Their precious girl had already matured, becoming an adult in both mind and body. However, as a World Tree, she didn't really attach that much importance to sexual matters. For Liu Shu, the act of intercourse was a way to create new life, something she did constantly.
Verdantia sighed, and as soon as she did so, she heard the calm and elegant voice of a woman she knew well. "Verdantia? What is wrong?"
The Life Sylvan tensed and turned around. Tempestria was walking toward her with a faint smile, her grey hair and slender body swaying like a cloud. However, when she turned around, she saw that Tempestria's eyes moved toward the side of her head, and then, she frowned. "Were you with Shu'er? You forgot to clean some of your flowers from your hair."
Flustered, she quickly used her hands to pluck the flowers and place them in her pouch. Seeing her unusual reaction, Tempestria squinted her beautiful light grey eyes. "Verdantia... Anything you want to say?"
Verdantia's heart clenched slightly, and after struggling for a little while, she nodded. "Yes. I'll call the other two."
Tempestria approached and extended her neck, sniffing her twice. Smelling the particular scent Liu Shu's body emanated, Tempestria glared at Verdantia. "You—"
Verdantia interrupted, raising her hands guiltily. "I can explain! Let me gather everyone first."
Those words were half a confirmation, making the Wind Sylvan's eyes become tempestuous. Still, when she saw Verdantia's firm gaze, she swallowed the words she wanted to say and turned around coldly. "Your house in two hours. First shower and clean that scent; otherwise, you'll agitate the other two."
Verdantia nodded and saw Tempestria walk away gloomily. Rubbing her face, Verdantia sighed once more. Then, she whistled twice, and two birds flew down from the branches of the nearby House Trees. She took two smooth, white leaves from her pouch and a writing feather and filled them with a small letter. With that done, she attached it to the birds' necks and told them to go and find Harmonixia and Cinderielle.
After she entered her apartment, Verdantia took off her sleeveless shirt and brown skirt and took a shower. She closed her eyes while water flowed down her curvy body. "Sigh... I hope they understand." After showering, she put aside her gloomy mood and remembered her first experience with Liu Shu.
Leaning against the couch in the middle of her room, Verdantia looked at the ceiling with a dazed expression. "... She was so cute."
A blush appeared on her cheeks when she remembered the raunchy words that she said. "Liu Shu said that she learned those from one book she ate out of curiosity..." The coquettish voice echoed in her ear once again and she started rolling around on the couch. "Ah! Why did she say those things!? So embarrassing!"
Two hours passed quickly while rolling around in shame and remembering their session.
Knock, knock. ƒree𝑤ebnσvel.com
Verdantia stood up and spoke. "Take out some snacks and place them on the table, ."
A plant creature made out of thorny, brown vines walked from the side. It moved like a mass of pokey tentacles, opening the fridge and cabinets to place things on the table.
It was one of Verdantia's many summons, and she had it out thanks to the .
After opening the door, Verdantia's face became somewhat awkward. "Um, welcome."
The three Sylvans on the other side of the room sneered simultaneously, causing Verdantia to feel a cold sweat building up on her back.
After they entered, Verdantia guided them toward the circular wooden table in the middle of the dining room. "Ahem. Welcome again."
Cinderielle crossed her arms, her face not showing any warmth. "So, what happened? Did you really break our promise?"
Verdantia laughed awkwardly. "Straight to the point. Don't you want to taste some of the snacks...?"
"Verdantia." Harmonica interrupted, her purple-blue eyes glowing ethereally. "Enough beating around the bush. Tell us straight what happened. We'll judge afterwards."
As serious as the situation was, Verdantia was quite confident that if these three were in her position, they would've done the same. Therefore, she took a deep breath and explained everything. "I was in the botanical section teaching Elu the last details before I passed over the mantle of that section to her. She had already grown enough to lead it. Then, she invited me home..."
Verdantia explained some of the words they exchanged, which even the Sylvans didn't find strange. After speaking for a bit, Cinderielle interrupted. "Wait, Verdantia. We've asked you to talk to us about what happened with Tiantian, not about how good your relationship with your junior is."
Verdantia smiled awkwardly. "Even you three don't see it at first glance... Well, it is normal. We four only have Liu'er in our minds."
Tempestria tapped the table twice. "Don't be enigmatic. What is wrong?"
Their clueless looks gave Verdantia more confidence. 'Okay, it wasn't only my particular mistake. If they were in my position, they would've committed the same mistakes.'
Verdantia sighed. "Well, Elu was flirting with me."
The other three froze for a second, completely baffled. However, their surprised looks changed to thoughtful and then disbelieving ones.
"She... Huh?" Cinderielle's eyes were wide open. "Aren't her guts a bit too big? What if Liu Shu discovered... it? Wait."
Verdantia nodded with a wry smile. "Indeed. She discovered it. Moreover, the situation was quite dire as she almost killed Elu."
The three Sylvans didn't overreact. A World Tree's possessiveness was clear to them. However, until now, Liu Shu had not shown that sense of jealousy. Tempestria frowned. "... So, Liu Shu discovered it. What happened next?"
Thinking back to that moment, Verdantia's whole body felt uncomfortable. The feelings during that time were imprinted on her soul like an evil curse. She took a deep breath and explained the situation.
The more the Sylvans heard, the more solemn their faces became.
"Finally, after begging Flor, I was able to have Liu Shu agree for me to enter the ."
By then, the other three Sylvans had already forgiven what happened. They could imagine how desperate to regain Liu Shu's love Verdantia must've felt. Verdantia continued. "Then, well, I entered her core room and..."
Verdantia explained somewhat awkwardly their interaction until the point before intercourse. "... And, then, um, Liu'er and I—"
"Stop." Tempesria raised her hand, her face somewhat uncomfortable. "Even if we are in a harem, hearing about it feels like I am being cheated on. I can understand why it happened, though. So, well, let's leave it here."
Harmonixia was a bit different; she blinked twice and asked. "How tight was she?"
Cinderielle choked on her drink. "Har—Cough! Harmonixia!?"
Harmonixia commented, her eyebrow raised. "I mean. You all have probably used your fingers, right? Usually, two fingers are almost out of the question; her... Um, pistil is quite small after all. I was wondering how Verdantia could enter. Hers and ours are not much different in size, so I always thought it would be either impossible or painful for my little Lian'er."
Cinderielle and Tempestria deadpanned. However, their eyes looked at Verdantia with curiosity. They also felt that they were too big for their precious darling's Avatar. Verdantia seemed to have done it without problems, though. The Life Sylvan muttered, her face gaining a reddish color. "That. Explaining is a bit too... embarrassing."
Harmonixia snorted. "You stole her first, so you better say everything! Since you have experience, tell us how you did it so that we don't hurt her."
Verdantia was pushed by them, and eventually, she spilled everything.
While they were talking, a message appeared in their eyes.
[You'll soon be affected by World Tree Tianlian Liu Shu's title, , do not resist.]
All four of them stopped speaking, and then, the world around them changed.
WHOOM!
A continent-wide pulse of essence rippled through the air, making everyone's head turn toward the origin. At that very moment, everyone in the Wild Continent looked in a single direction.
Then, everyone saw a pillar of green light soar skyward and hit the atmosphere. Green light filled the sky for a moment, and then, green essence rained from the sky.
Tempestria and the others walked toward the balcony, looking at the pillar of light shooting up from the World Tree. Their eyes were filled with wonder and shock. "What is happening?"
Verdantia muttered. "This ... It is quite similar to the one I've gained..." </p><p> Tempestria looked at Verdantia with surprise. "You... You gained a title for doing it with her?" </p><p> Cinderielle glanced at the Life Sylvan and humphed. "Since you've done it, the barrier has been broken. Now, everything goes." </p><p> The four Sylvans looked at each other and nodded. The rain of green essence sank into the land, and everyone it fell on. Moreover, the event lasted for almost three hours. </p><p> Flor looked up at the falling rain, her eyelids fluttering each time a droplet fell in her eyes. "What is this...?" </p><p> She wasn't the only one, though. Everyone was looking at Liu Shu with reverent looks. </p><p> "Hey... Don't you feel... Better?" </p><p> An old man walking down the street looked at his hands, confused. His old friend nodded with a confused expression. "This rain feels quite revitalizing." </p><p> At that moment, a message hit everyone. </p><p> [You are under <Sprouts Of Chaos> effects!] </p><p> <Sprouts of Chaos>: Phoer regeneration is increased by 100% to all plant-life. You can summon plant-based lifeforms that rank higher than the summoning skill until C Tier. All life forms under your influence age 5% slower, have 5% more Phoer, and have their basic attributes increased by 2%. All plant life under your influence gains Experience Points 25% faster (Until the World Tree's Level). The World Tree will gain an additional 0.05% Experience of what the plant-attributed creatures gain (Maximum Level*1.5 daily). </p><p> As soon as everyone read the effects, the array of reactions was as diverse as a rainbow's colors. Still, among the myriad emotions people were suffering, the one everyone shared was, quite logically, pure and unadulterated shock. </p><p> Flor extended her hand and grabbed her emotional-support teacup filled with warm tea from Liu Shu's leaves. "Sip... Sigh." She then had a smile uglier than crying. "The paperwork... The paperwork this title will need... Haha..." </p><p> As if that was not over, another pulse of energy spread from Liu Shu's body, and the ternary essences she was emitting made everyone's face turn a shade paler. It was as if the air had stagnated with raw essence. </p><p> In Liu Shu's eyes, a notification appeared. </p><p> [You've completed the <Life Petal> on the </p><p> . Congratulations!] </p><p> [Tier Up!] </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> [Tier Up!] </p><p> Liu Shu's branches tensed. "Eh?" </p><p> BOOM! </p><p> A pillar of pure light shot skyward this time around as Liu Shu's stats skyrocketed. </p><p> *** </p><p> Level: 58 [0/432,130] </p><p> Aether Mana Cores: 413/413 → 648/648 </p><p> Phoer Body Cores: 680/680 → 1013/1013 </p><p> Anima Energy Cores: 628/628 → 636/636 </p><p> *** </p><p> Liu Shu looked at her </p><p> and felt her roots tangling. 'O-Over a thousand...?'</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-404" 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 class="next"> <a href="/novel/ascension-of-the-sylvan-cosmos" id="next_url">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="405"><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: '405' }, 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:'9425e2df9ceddca1',t:'MTc0NzY4MTc0MC4wMDAwMDA='};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":"9425e2df9ceddca1","version":"2025.4.0-1-g37f21b1","r":1,"token":"3dfd337b6d8847e985544a8c990b61b1","serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}}}' crossorigin="anonymous"></script>