NOVEL Ascension of the Sylvan Cosmos Chapter 281. Start of the Assimilation Process.

Ascension of the Sylvan Cosmos

Chapter 281. Start of the Assimilation Process.
  • Prev Chapter
  • Background
    Font family
    Font size
    Line hieght
    Full frame
    No line breaks
    Text to Speech
  • Next Chapter

Chapter 281 - 281. Start of the Assimilation Process.

After Liu Shu's declaration, the entire northeast side of the continent was thrown into disarray. A new ruling World Tree that spanned the entirety of a province on this side of the continent has been unheard of for the last generations. While there were strong candidates in almost every province, with some being very close to reaching that point, Liu Shu came out of nowhere, taking everyone by surprise.

Yet, while most did not dare bother such a being because of such an event, some groups were planning on taking advantage of the situation. no𝚟𝚙u𝚋.c𝚘m

In a luxurious room inside the building of a gorgeous city inside a forest, a man spoke to the leaders sitting around him. "We move the next time there is a large spike in energy around Fortuna City or the entirety of the White Flower Province. It is time for our to throw out the tag of savages once and for all!"

His words surprised many. This was unlike their Lord's usual way of doing things. While he was a brave and impulsive warrior, he was not the type to recklessly attack another province unprovoked.

Of course, many in the council understood the desire for a World Tree. The province didn't have one, after all. They were all building cities around three Life Trees that had sprouted, making their civilization fall a step behind their neighbors.

One of the men, wearing ceremonial garbs that looked like a toga, asked with a hesitant tone. "Are you sure, Lord? She doesn't seem like someone who is easily affected by a plan such as this one."

The Lord shook his head, strangely stubborn about it. He reiterated, his tone firm like an immovable mountain. "Regardless, we must do it. If we wait longer, we won't know what type of height she will reach! Now is not the time to hesitate!" The Lord said inspiringly. "Once we dominate those lands, the World Tree will have no reason to attack us, and we will become the inhabitants!"

Everyone in the room frowned faintly, and some looked to the side where a woman of great beauty and mystery was sitting. Her dress was a mix of a purple dress with a pink coat, looking poised and elegant. They felt that she was overly influencing the Lord's decisions. Still, nobody dared say anything. Those who did in the past ended up being disposed of by the Lord after just a few days.

'Human males are so easy~.' The woman spread a handheld fan, covering her smiling mouth. 'Also, with this, that stubborn Baron Lorbase will finally relent.' She clicked her tongue, her eyebrows showing a hint of displeasure. 'My plans almost fell short because of his general's, Kaedric, influence. If they did so, my little girl Jolie would've mocked me for a while.' Her smile returned, thinking of her lovely girl. 'Thankfully, my precious Jolie was able to get a hold of Kaedric behind Lorbase's back~. She is such a talented darling.'

Meanwhile, far away in Fortuna City, Liu Shu started the assimilation process with Fortuna. "Fortuna, start the Level Up process. Then, make sure not to resist when I expand my presence into you. To help you adjust to my influence, I'll start now."

Hearing her words, the older World Tree readied her mind and focused on the creeping aura that started to spread from Liu Shu's roots. The sensation was not powerful at first, but it was constantly increasing without a single hint of it stopping. Fortuna spread her branches in her canopy, taking a deep breath, and then she stated. "I am ready, Liu Shu."

"Great~!"

Her cheerful exclamation was followed by the aura surrounding her suddenly transforming. It was as if a cute little bird suddenly multiplied in size and spread its wings, revealing that it was, in truth, a dragon. Fortuna's mind was struck by shock and fear as the terrifying wave of pure aura made Fortuna's danger senses start flaring like crazy. 'W-What!?'

Liu Shu spoke to her softly. "It's me, Fortuna. There is nothing to fear~. I am not going to hurt you."

The gentle whispers coming from Liu Shu helped relax the taut nerves of the World Tree. Even then, Fortuna's urge to lash out with her entire strength was almost unbearable. 'There is no threat. There is no threat. There is no threat.'

Repeating those words in her mind was all she could do as her very existence resisted being dominated and influenced by another being.

Right when Liu Shu started, in a way, "attacking" Fortuna, some alarms went off in a remote location inside some mountains. This place was the center of command where the Azure Rose Confederation checked the well-being of their World Trees in the Wild Continent. "Hm? Didn't the informant tell me that Fortuna was momentarily safe because the other World Tree showed uncharacteristic kindness?"

While he was confused, the system clearly sounded the alarm. Fortuna was currently under terrible pressure, and from the readings, it could be seen that she was in pain and scared. Therefore, he decided to send a report to the Count in charge of that area. "Let's hope the report makes it in time. Did we get deceived by that World Tree? It didn't feel false, though...'

The person monitoring couldn't help but feel that this event was out of the norm, but he couldn't place his finger around it. By the time he would notice, it would be too late.

Meanwhile, Liu Shu was staring at her system message with a baffled mind.

[An attempt at assimilation between World Trees was detected! World Trees are unable to perform this acti... acti-ti-ti-ti-tion. ERROR... Action has triggered Tianlian Liu Shu's . Contradictory Directives... Eliminating .]

Liu Shu almost flipped the landscape. She instantly protested. 'Huh? HEY! WAIT! NOT FAIR!'

[Wisdom: Overrule it. has the priority.]

'Wisdom?'

[Overruled. has priority over fundamental directives.]

'Oh?'

[Activating.]

'OH! Wahahaha!' Her branches danced in glee as she waited for the following messages. 'Thank you, Wisdom!'

[ is too powerful for current Tianlian Liu Shu to harness its power! Tianlian Liu Shu's soul would collapse under its pressure.]

[Wisdom: Lock it away. Create a less powerful one as a substitute and unlock the real one at Level 100.]

[Creating a substitute to replace it in the meantime.] </p><p> 'L-Level 100...' Thinking of how far that Level was, Liu Shu's mind was a bit in disarray. 'Will I even remember about it by then...?' </p><p> [Congratulations! You've gained the title <One With The World>!] </p><p> 'New Title! Let's see what you do~.' </p><p> <One With The World>: You are a unique being that's similar to a World Tree but not entirely one. Your inheritance is one that shall either wither in silence or bloom to illuminate all creation with your presence. Effect: You are able to assimilate all types of plant creatures in your domain, without exceptions, and keep their individuality unchanged while reducing their rebelliousness several times over. Moreover, your influence over other plant beings is increased by 100%, while other plant-based creatures have 50% less influence over you. </p><p> 'Hm? What's this feeling- Ah.' </p><p> Liu Shu felt her vision and soul expand, and then, it exploded outward. As soon as that power was unlocked from deep within her soul, an invisible wave of pure pressure spread outward from deep within. The aura wave accelerated each second, covering her entire domain and beyond, reaching a radius of around fifty kilometers before it disappeared. </p><p> The intimidating and all-encompassing presence of her massive soul startled not only the original plant beings like trees and flowers but also humanoid creatures such as Rose Fairies and Sylvans. This powerful and domineering presence greatly affected everyone. </p><p> The rest of the beings didn't feel anything, but seeing the collective reaction of the plant beings made some curious. After all, they had all stopped and widened their eyes in tandem. </p><p> A man holding his wife's hand while sitting on the couch of their house looked sideways and asked, curious at his wife's peculiar reaction. "What happened, love?" </p><p> The Sylvan woman in Fortuna City looked outside of the window and muttered. "No... There was this powerful presence that made my soul shudder." </p><p> The man frowned faintly and asked, curious. "Do you think that our girl, Cinderielle, has noticed?" </p><p> The woman blinked twice and smiled. "Who knows? She is quite single-minded toward that World Tree of the Golden Sap Forest, so it might've not affected her as much as me." </p><p> The husband nodded for a second and then paused, looking at his wife with a strange expression. "... What's that supposed to mean?" </p> <p> His wife raised her eyebrow, smiling faintly. "I wonder~. Fufufu~." </p><p> Meanwhile, those in Golden Sap City instantly knew from where and who such an aura spread out. Their gaze toward Liu Shu gained a touch of fanatical respect, and there were even some that went as far as bowing or even kneeling down toward Liu Shu. </p><p> Flor had been inside Liu Shu's canopy, and her eyes were still lost and misty as if she had had an out-of-body experience. Not to mention, Cinderielle, Verdantia, and Tempestria were all squirming around, their breaths heavy. </p><p> Not being able to hold themselves back, the three of them rushed back home and had quite a fun evening until their bodies relaxed. </p><p> Back in Fortuna City, Liu Shu felt her control over her entire domain change and increase at an accelerated pace. With this newfound control, she noticed that the aura she was sending Fortuna was extremely violent. '... No wonder Fortuna is having trouble.' </p><p> The energy she used changed how it moved, creating a new feeling that soon covered the fearful and resisting World Tree. Moreover, with her new title, <One With The World>, her aura stopped feeling like a hostile presence for Fortuna. </p><p> Fortuna couldn't help but feel a surge of surprise as the violent hurricane of strength changed to a soothing serenade of gentle energy. 'Oh... This... It feels good.' Fortuna's soul relaxed, her roots similarly softening, followed by her entire body. 'Ah... So, this is Liu Shu's real presence? It's so... warm. It makes me want to snuggle close to her and sleep forever.' </p><p> Back in the place where they controlled their World Trees, the man saw the alarms around Fortuna suddenly disappearing as everything returned to normal. He looked at the soothing lights around Fortuna and didn't know what to do. "... Do I cancel the letter?" </p><p> He really couldn't understand the situation. How could Fortuna's mood change from utterly terrified and feeling pain to relaxed and peaceful in less than five seconds? "... I guess I should?" </p><p> He stood up again, sighing and scratching his head. "We should send a Rune Crafter and Array Master to review Fortuna's safety Rune Field..."</p> </div> <!--<div style="margin-top: 0px; margin-bottom: 10px;">--> <!--<div id="pf-6777-1"><script>window.pubfuturetag = window.pubfuturetag || [];window.pubfuturetag.push({unit: "6571a4a2256794003ccac48b", id: "pf-6777-1"})</script></div>--> <!--</div>--> </div> <div class="chapter-end"></div> <ul class="ul-list7"> <li> <a href="/nov/ascension-of-the-sylvan-cosmos/chapter-280" 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="/nov/ascension-of-the-sylvan-cosmos/chapter-282" 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="281"><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"> <style> .comment-vip-level-image { width: 45px; height: 15px; vertical-align: middle; } .comment-child-vip-level-image { width: 45px; height: 15px; vertical-align: middle; } </style> <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, level:v.user_info.level, adv_exp:v.user_info.adv_exp, 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 level = opt['level']; let advExp = opt['adv_exp']*1; 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 = ''; } let vipLogColor = ''; if((new Date()).getSeconds() > v.user_info.adv_exp) { vipLogColor = 'style="filter: grayscale(100%);"'; } let vipLog = ` <img `+vipLogColor+` class="comment-child-vip-level-image" src="/static/novpub/images/vip`+v.user_info.level+`.webp">`; if(v.user_info.level == 0) { vipLog = ''; } let pvipLogColor = ''; if((new Date()).getSeconds() > v.p_user_info.adv_exp) { pvipLogColor = 'style="filter: grayscale(100%);"'; } let pvipLog = ` <img `+pvipLogColor+` class="comment-child-vip-level-image" src="/static/novpub/images/vip`+v.p_user_info.level+`.webp">`; if(v.p_user_info.level == 0) { pvipLog = ''; } 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+vipLog+`</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+pvipLog+`</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 vipLogColor = ''; if((new Date()).getSeconds() > advExp) { vipLogColor = 'style="filter: grayscale(100%);"'; } let vipLog = ` <img `+vipLogColor+` class="comment-vip-level-image" src="/static/novpub/images/vip`+level+`.webp">`; if(level == 0) { vipLog = ''; } 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"> <div class="color1"> <span style="display: inline-block;">`+userName+vipLog+`</span> </div> <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/novpub/js/reader.js?v=1.14"></script> <script src="/static/novpub/js/jquery.cookie.min.js"></script> <script src="/static/novpub/js/speak.js?v=1.0.70"></script> <script src="/static/novpub/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: '281' }, 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,res) { if(res.code == 0) { let htmlContent = `<span class="glyphicon glyphicon-plus"></span> Add to Library`; e.removeClass('on'); e.html(htmlContent); }else{ let htmlContent = `<span class="glyphicon glyphicon-ok"></span> In Library`; e.addClass('on'); e.html(htmlContent); alert(res.msg); } }, addCallback: function(e,res){ if(res.code == 0) { let htmlContent = `<span class="glyphicon glyphicon-ok"></span> In Library`; e.addClass('on'); e.html(htmlContent); }else{ let htmlContent = `<span class="glyphicon glyphicon-plus"></span> Add to Library`; e.removeClass('on'); e.html(htmlContent); alert(res.msg); } }, selecterBef: function(e){ let loadcontent = '<span class="glyphicon glyphicon-refresh spin"></span> Loading...'; // 设置加载状态 $(e).addClass('btn-loading').prop('disabled', true); $(e).html(loadcontent); }, selecterAft: function(e){ $(e).removeClass('btn-loading').prop('disabled', false); }, } 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 = '/nov/ascension-of-the-sylvan-cosmos'; } </script> <script> const btnBuyChapter = document.getElementById('btn-buy-chapter'); if (btnBuyChapter) { btnBuyChapter.addEventListener('click', async function () { document.querySelector('#btn-buy-chapter').innerText = 'Unlocking...'; let articleid = '6075'; let chapterid = '3241552'; $.ajax({ type: "post", url: '/api/sub.php', data: { articleid:articleid, chapterid:chapterid, chapterorder:'281', uri:'/nov/ascension-of-the-sylvan-cosmos/chapter-281', }, dataType: "json", success: function(res) { console.log(res) if(res.code == 403) { window.location.replace('/login'); return; } if (res.code == 0) { document.querySelector('#article').innerHTML = res.data; var unlockButtons = document.querySelector('.unlock-buttons'); if (unlockButtons) { unlockButtons.remove(); } return; } if(res.code = 400) { // window.location.href = '/goods'; }else{ alert(result.message || 'Something went wrong. Please try again.'); } }, error: function(){ alert('An error occurred while unlocking the chapter. Please try again later.'); } }); }); } </script> <div class="footer"> <div class="wp"> <div class="ll"> <a href="/" title="NOVPUB">NovPub.Com</a><br>Read Books Online Free & Free Web Novel 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 NovPub</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/novpub/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-2P3TQ9PYTY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-2P3TQ9PYTY'); </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>