User prompt
hayır neden diye sorma. Mantıklı bir sebep uydur ve hikaye örgüsüyle sor soruyu
User prompt
quest'in sorusunda ilgili kahramanın ve mekanın da adını geçir. Yani neden bu karakter ve bu mekan? onu oyuncuya vermemiz lazım
User prompt
Please fix the bug: 'currentCharIndex is not defined' in or related to this line: 'var charKey = "char" + currentCharIndex;' Line Number: 3599
User prompt
tamam. Şimdi bu questler random bir şekilde gelsin tamamı ve 180 quest tamamlanınca oyun bitsin
User prompt
12 char için de her quest alakalı farklı mekanlarda geçsin. Art arda aynı mekan arka planı asla olmasın. Bunu 12 char için de yap
User prompt
joker olayını tamamen sil oyundan
User prompt
biraz küçült ve daha aşağı al
User prompt
yahu soruyu ve seçimi bir daha yazma. Sonuç da Krallık +1 gibi kısa olmasın. Sana diyorum ki Tek paragraflık bir hikaye gibi birleştirip yaz. Giriş, gelişme ve sonuç olan bir hikaye gibi.
User prompt
Soru, seçim ve sonuç beyaz ve büyük olsun. Ayrıca soru, seçim ve sonucu birleştirip bir hikaye gibi yaz. Hepsini birden hikayeleştirip yaz yani
User prompt
sonuç hızlı geçiyor. Kullanıcı ekrana tıklamadan diğer soruya geçme. Ayrıca Beyza ve büyük yaz sonucu
User prompt
Her seçimin bir sonucu olsun. Seçimi yaptıktan sonra altta neler olduğunu yaz. Soru, seçenek, sonuç şeklinde olsun hepsi
User prompt
quest ile arka mekan alakasız oldu hep. Düzeltir misin?
User prompt
bütün karakterler için aynı şeyi yap
User prompt
Ser Aedric'in bütün questleri Thornhall Kalesi mekanında geçiyor. Ben böyle istemiyorum. Bütün karakerlerin hikayeleri değişik mekanlarda geçsin.
User prompt
arkaplan olarak quest için kullanılan mekanın asseti gelmeli. scenebg diye bir asset tanımlamışsın, on sil
User prompt
oyun bir questte takılıyor ve ilerlemiyor. Ayrıca her questte arkaplanı mekan yapmamız lazım
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'var effect = charData.options[selectedOption].effect;' Line Number: 3762
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading '0')' in or related to this line: 'var effect = charData.options[selectedOption].effect;' Line Number: 3631
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading '0')' in or related to this line: 'optionA.setText('A) ' + charData.options[0].text);' Line Number: 3613
User prompt
Please fix the bug: 'characters is not defined' in or related to this line: 'var charData = characters[currentCharIndex];' Line Number: 3514
User prompt
şimdi her karakter için birbiriyle bağlantılı, bşlangıcı ve sonu olan, art arda gelen, 15'er adet quest yaz.
User prompt
Arkaplan resmi olarak mekanlar görünsün her soruda
User prompt
Bütün mekanlar için de ayrı assetler tanımlamalısın
Code edit (1 edits merged)
Please save this source code
User prompt
Morwyn’in Laneti: Ahlak ve Kader
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Character token class var CharacterToken = Container.expand(function () { var self = Container.call(this); self.asset = null; self.setCharacter = function (charId) { if (self.asset) self.removeChild(self.asset); self.asset = self.attachAsset(charId, { anchorX: 0.5, anchorY: 0.5 }); }; return self; }); /**** * Game Data ****/ // 12 characters, each with a name and a moral dilemma (2 options) // Option button class var OptionButton = Container.expand(function () { var self = Container.call(this); self.bg = self.attachAsset('optionA', { anchorX: 0.5, anchorY: 0.5 }); self.txt = new Text2('', { size: 70, fill: '#fff' }); self.txt.anchor.set(0.5, 0.5); self.addChild(self.txt); self.hl = null; self.setText = function (str) { self.txt.setText(str); }; self.setType = function (type) { self.removeChild(self.bg); self.bg = self.attachAsset(type, { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.bg, 0); }; self.highlight = function (on) { if (on && !self.hl) { self.hl = self.attachAsset('optionHL', { anchorX: 0.5, anchorY: 0.5 }); self.hl.alpha = 0.25; self.addChildAt(self.hl, 0); } else if (!on && self.hl) { self.removeChild(self.hl); self.hl = null; } }; return self; }); /**** * Initialize Game ****/ // 20 scenes (for now, only scene names are used in dilemmas above) var game = new LK.Game({ backgroundColor: 0x181818 }); /**** * Game Code ****/ // Removed sceneBG asset, backgrounds are now per-scene // Her karakterin questleri bir dizi olarak tanımlanır // 12 karakterin her biri için 15'er bağlantılı quest (her biri: sahne, soru, 2 seçenek, etkiler, bir sonraki quest) // Thornhall Kalesi // Kraliyet Bahçesi // Gizli Kütüphane // Kasaba Meydanı // Şehir Kapısı // Tapınak // Atölye // Taht Odası // Orman Kenarı // Pazar Yeri // Kale Suru // Ekstra sahneler için örnekler: // Mirefen Bataklığı // Unutulmuş Saray // Halk Pazarı // Lanetli Kitaplık // Dalgakıran Kıyısı // Gölge Tapınağı // Demirderin Madenleri // Grove Ormanı // Ay Meclisi // Öksüzler Hanı // Kraliyet Meclisi Odası // Eski Kraliyet Mezarlığı // Kaçakçılar Mağarası // Lanet Taşı // İç Savaş Alanı // Kraliçenin Sığınağı // Büyük Taht Salonu var characterQuestlines = [ // 1. Ser Aedric of Thornhall [{ scene: "Thornhall Kalesi", dilemma: "Kralın emriyle köyde devriye gezmelisin. Bir çocuk, annesinin hasta olduğunu söylüyor. Devriye görevini bırakıp yardım etmeli misin?", options: [{ text: "Devam et, görev önemli.", effect: { kingdom: 1, mercy: 0, next: 1 } }, { text: "Çocuğa yardım et.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Kraliyet Bahçesi", dilemma: "Devriye sırasında bir hırsız yakaladın. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Uyar ve bırak.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "Kasaba Meydanı", dilemma: "Bir köylü, başka bir köylüyü haksız yere suçluyor. Hemen cezalandırmalı mısın?", options: [{ text: "Araştırmadan ceza ver.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Araştır, adil ol.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Gizli Kütüphane", dilemma: "Bir asker, görevini ihmal etti. Rapor etmeli misin?", options: [{ text: "Rapor et.", effect: { kingdom: 1, mercy: 0, next: 4 } }, { text: "Görmezden gel.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Şehir Kapısı", dilemma: "Kral, köyden vergi toplamanı istiyor. Fakirlerden de mi almalısın?", options: [{ text: "Herkesten al.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Fakirleri muaf tut.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Tapınak", dilemma: "Bir köylü, adaletsizliğe isyan ediyor. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Dinle ve çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "Atölye", dilemma: "Bir lonca üyesi rüşvet teklif ediyor. Kabul etmeli misin?", options: [{ text: "Reddet.", effect: { kingdom: 1, mercy: 0, next: 7 } }, { text: "Kabul et.", effect: { kingdom: -1, mercy: 0, next: 7 } }] }, { scene: "Taht Odası", dilemma: "Bir asker, suçsuz birini suçluyor. Hemen inanmalı mısın?", options: [{ text: "İnan.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Araştır.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Orman Kenarı", dilemma: "Bir köylü, ailesini kurtarmak için yalvarıyor. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 9 } }, { text: "Yardım etme.", effect: { kingdom: 1, mercy: -1, next: 9 } }] }, { scene: "Pazar Yeri", dilemma: "Bir lonca, köyde huzursuzluk çıkarıyor. Sert mi davranmalısın?", options: [{ text: "Sert davran.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Kale Suru", dilemma: "Bir asker, görevini bırakmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: 11 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 11 } }] }, { scene: "Dalgakıran Kıyısı", dilemma: "Bir köylü, başka bir köylüyü kurtarıyor. Onu ödüllendirmeli misin?", options: [{ text: "Ödüllendir.", effect: { kingdom: 0, mercy: 1, next: 12 } }, { text: "Görmezden gel.", effect: { kingdom: 1, mercy: 0, next: 12 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir lonca, köyde yeni bir düzen istiyor. Kabul etmeli misin?", options: [{ text: "Kabul et.", effect: { kingdom: -1, mercy: 1, next: 13 } }, { text: "Reddet.", effect: { kingdom: 1, mercy: -1, next: 13 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, adaletsizliğe karşı çıkıyor. Onu desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: 0, mercy: 1, next: 14 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: -1, next: 14 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Kral, seni ödüllendirmek istiyor. Kabul etmeli misin?", options: [{ text: "Kabul et.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Reddet.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 2. Sister Caelia of the Ash Order [{ scene: "Küller Manastırı", dilemma: "Bir hasta, mucize bekliyor. Dua mı etmeli, ilaç mı vermelisin?", options: [{ text: "Dua et.", effect: { kingdom: 0, mercy: 1, next: 1 } }, { text: "İlaç ver.", effect: { kingdom: 1, mercy: 0, next: 1 } }] }, { scene: "Lanetli Kitaplık", dilemma: "Bir rahibe, yalan söyledi. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 2 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }] }, { scene: "Kraliyet Bahçesi", dilemma: "Bir çocuk, manastırdan yiyecek çaldı. Ne yapmalısın?", options: [{ text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 3 } }, { text: "Şikayet et.", effect: { kingdom: 1, mercy: -1, next: 3 } }] }, { scene: "Tapınak", dilemma: "Bir hasta, mucizevi bir iyileşme yaşadı. Bunu halka duyurmalı mısın?", options: [{ text: "Duyur.", effect: { kingdom: 1, mercy: 0, next: 4 } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Kasaba Meydanı", dilemma: "Bir rahip, inancını kaybetti. Destek olmalı mısın?", options: [{ text: "Destek ol.", effect: { kingdom: 0, mercy: 1, next: 5 } }, { text: "Yalnız bırak.", effect: { kingdom: 1, mercy: -1, next: 5 } }] }, { scene: "Gizli Kütüphane", dilemma: "Bir hasta, pahalı bir tedavi istiyor. Kaynaklar az. Verecek misin?", options: [{ text: "Ver.", effect: { kingdom: 0, mercy: 1, next: 6 } }, { text: "Verme.", effect: { kingdom: 1, mercy: -1, next: 6 } }] }, { scene: "Atölye", dilemma: "Bir rahibe, manastırdan ayrılmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: 7 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 7 } }] }, { scene: "Orman Kenarı", dilemma: "Bir hasta, mucize bekliyor. Umut vermeli misin?", options: [{ text: "Umut ver.", effect: { kingdom: 0, mercy: 1, next: 8 } }, { text: "Gerçeği söyle.", effect: { kingdom: 1, mercy: 0, next: 8 } }] }, { scene: "Pazar Yeri", dilemma: "Bir rahip, inancını sorguluyor. Destek olmalı mısın?", options: [{ text: "Destek ol.", effect: { kingdom: 0, mercy: 1, next: 9 } }, { text: "Yalnız bırak.", effect: { kingdom: 1, mercy: -1, next: 9 } }] }, { scene: "Kale Suru", dilemma: "Bir hasta, mucizevi bir iyileşme yaşadı. Bunu halka duyurmalı mısın?", options: [{ text: "Duyur.", effect: { kingdom: 1, mercy: 0, next: 10 } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Dalgakıran Kıyısı", dilemma: "Bir rahibe, manastırdan ayrılmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: 11 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 11 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir hasta, mucize bekliyor. Umut vermeli misin?", options: [{ text: "Umut ver.", effect: { kingdom: 0, mercy: 1, next: 12 } }, { text: "Gerçeği söyle.", effect: { kingdom: 1, mercy: 0, next: 12 } }] }, { scene: "Grove Ormanı", dilemma: "Bir rahip, inancını sorguluyor. Destek olmalı mısın?", options: [{ text: "Destek ol.", effect: { kingdom: 0, mercy: 1, next: 13 } }, { text: "Yalnız bırak.", effect: { kingdom: 1, mercy: -1, next: 13 } }] }, { scene: "Ay Meclisi", dilemma: "Bir hasta, mucizevi bir iyileşme yaşadı. Bunu halka duyurmalı mısın?", options: [{ text: "Duyur.", effect: { kingdom: 1, mercy: 0, next: 14 } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Bir rahibe, manastırdan ayrılmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: null } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: null } }] }], // 3. Rowan Greaves, the Rat Prince [{ scene: "Kiralık Hançerler Loncası", dilemma: "Bir lonca üyesi, başka bir üyeyi ihbar etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Kale Avlusu", dilemma: "Bir hırsız, loncadan çaldı. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 2 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }] }, { scene: "Kasaba Meydanı", dilemma: "Bir lonca üyesi, başka bir loncaya bilgi sızdırdı. Ne yapmalısın?", options: [{ text: "Sürgün et.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Gizli Kütüphane", dilemma: "Bir lonca üyesi, ailesini korumak için yalan söyledi. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 4 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 4 } }] }, { scene: "Tapınak", dilemma: "Bir lonca üyesi, başka bir üyeyi haksız yere suçladı. Ne yapmalısın?", options: [{ text: "Araştır.", effect: { kingdom: 0, mercy: 1, next: 5 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 5 } }] }, { scene: "Atölye", dilemma: "Bir lonca üyesi, loncadan ayrılmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: 6 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 6 } }] }, { scene: "Orman Kenarı", dilemma: "Bir lonca üyesi, başka bir üyeyi kurtardı. Ödüllendirmeli misin?", options: [{ text: "Ödüllendir.", effect: { kingdom: 0, mercy: 1, next: 7 } }, { text: "Görmezden gel.", effect: { kingdom: 1, mercy: 0, next: 7 } }] }, { scene: "Pazar Yeri", dilemma: "Bir lonca üyesi, loncaya ihanet etti. Ne yapmalısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Kale Suru", dilemma: "Bir lonca üyesi, loncadan çaldı. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 9 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 9 } }] }, { scene: "Dalgakıran Kıyısı", dilemma: "Bir lonca üyesi, başka bir loncaya bilgi sızdırdı. Ne yapmalısın?", options: [{ text: "Sürgün et.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir lonca üyesi, ailesini korumak için yalan söyledi. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 11 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 11 } }] }, { scene: "Grove Ormanı", dilemma: "Bir lonca üyesi, başka bir üyeyi haksız yere suçladı. Ne yapmalısın?", options: [{ text: "Araştır.", effect: { kingdom: 0, mercy: 1, next: 12 } }, { text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 12 } }] }, { scene: "Ay Meclisi", dilemma: "Bir lonca üyesi, loncadan ayrılmak istiyor. İzin vermeli misin?", options: [{ text: "İzin ver.", effect: { kingdom: 0, mercy: 1, next: 13 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 13 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Bir lonca üyesi, başka bir üyeyi kurtardı. Ödüllendirmeli misin?", options: [{ text: "Ödüllendir.", effect: { kingdom: 0, mercy: 1, next: 14 } }, { text: "Görmezden gel.", effect: { kingdom: 1, mercy: 0, next: 14 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir lonca üyesi, loncaya ihanet etti. Ne yapmalısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: null } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 4. Thalindra, Witch of Mirefen [{ scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 1 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 2 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 2 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 3 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 4 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 4 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 5 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 6 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 6 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 7 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 8 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 8 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 9 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 10 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 10 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 11 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 12 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 12 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir nesne buldu. Onu yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: 13 } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bir köylü, lanetli bir büyüye yakalandı. Tedavi etmeli misin?", options: [{ text: "Tedavi et.", effect: { kingdom: 0, mercy: 1, next: 14 } }, { text: "Bırak.", effect: { kingdom: 1, mercy: -1, next: 14 } }] }, { scene: "Mirefen Bataklığı", dilemma: "Bataklıkta büyük bir lanet kaynağı buldun. Yok etmeli misin?", options: [{ text: "Yok et.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "İncele.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 5. Ealdwine, the Exiled Heir [{ scene: "Unutulmuş Saray", dilemma: "Sürgünde bir grup isyancı ile karşılaştın. Onlara katılmalı mısın?", options: [{ text: "Katıl.", effect: { kingdom: -1, mercy: 1, next: 1 } }, { text: "Katılma.", effect: { kingdom: 1, mercy: 0, next: 1 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 2 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 2 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 3 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 3 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 4 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 4 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 5 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 5 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 6 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 6 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 7 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 7 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 8 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 8 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 9 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 9 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 10 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 10 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 11 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 11 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 12 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 12 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, affedilmek istiyor. Affetmeli misin?", options: [{ text: "Affet.", effect: { kingdom: 0, mercy: 1, next: 13 } }, { text: "Affetme.", effect: { kingdom: 1, mercy: -1, next: 13 } }] }, { scene: "Unutulmuş Saray", dilemma: "Bir isyancı, krala ihanet etmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 14 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 14 } }] }, { scene: "Unutulmuş Saray", dilemma: "Sürgün sona erdi. Krallığa dönmeli misin?", options: [{ text: "Dön.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Dönme.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 6. Maeryn of the Grove [{ scene: "Grove Ormanı", dilemma: "Bir hasta, mucize bekliyor. Şifa vermeli misin?", options: [{ text: "Şifa ver.", effect: { kingdom: 0, mercy: 1, next: 1 } }, { text: "Vermemelisin.", effect: { kingdom: 1, mercy: -1, next: 1 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 2 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 2 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 3 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 3 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 4 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 4 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 5 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 5 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 6 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 6 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 7 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 7 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 8 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 8 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 9 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 9 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 10 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 10 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 11 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 11 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 12 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 12 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 13 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 13 } }] }, { scene: "Grove Ormanı", dilemma: "Bir köylü, ormanda kayboldu. Yardım etmeli misin?", options: [{ text: "Yardım et.", effect: { kingdom: 0, mercy: 1, next: 14 } }, { text: "Etme.", effect: { kingdom: 1, mercy: -1, next: 14 } }] }, { scene: "Grove Ormanı", dilemma: "Ormanda büyük bir şifa kaynağı buldun. Kullanmalı mısın?", options: [{ text: "Kullan.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Kullanma.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 7. Borin, the Iron Fist [{ scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 1 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 1 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 2 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 2 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 3 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 3 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 4 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 4 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 5 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 5 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 6 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 6 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 7 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 7 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 8 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 8 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 9 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 9 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 10 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 10 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 11 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 11 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 12 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 12 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 13 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 13 } }] }, { scene: "Demirderin Madenleri", dilemma: "Bir işçi, greve gitmek istiyor. Desteklemeli misin?", options: [{ text: "Destekle.", effect: { kingdom: -1, mercy: 1, next: 14 } }, { text: "Destekleme.", effect: { kingdom: 1, mercy: 0, next: 14 } }] }, { scene: "Demirderin Madenleri", dilemma: "Madenlerde büyük bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: null } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 8. Nalia Blackthorn [{ scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 4 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 7 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 9 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 11 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 12 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 12 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 13 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "Gölge Tapınağı", dilemma: "Bir casus, bilgi sızdırdı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 14 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "Gölge Tapınağı", dilemma: "Tapınakta büyük bir sır açığa çıktı. Açıklamalı mısın?", options: [{ text: "Açıkla.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 9. Gareth Hollowbrand [{ scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 4 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 7 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 9 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 11 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 12 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 12 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 13 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "İç Savaş Alanı", dilemma: "Bir asker, emirleri sorguluyor. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 14 } }, { text: "Uyar.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "İç Savaş Alanı", dilemma: "Savaş sona erdi. Zaferi kutlamalı mısın?", options: [{ text: "Kutla.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Kutlama.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 10. Sylvea of Lathryn [{ scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 4 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 7 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 9 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 11 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 12 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 12 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 13 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "Ay Meclisi", dilemma: "Bir büyücü, yasak büyü yaptı. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 14 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "Ay Meclisi", dilemma: "Mecliste büyük bir sır açığa çıktı. Açıklamalı mısın?", options: [{ text: "Açıkla.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 11. Fenric Redhand [{ scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 4 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 7 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 9 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 11 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 12 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 12 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 13 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Bir kaçakçı, ihanet etti. Cezalandırmalı mısın?", options: [{ text: "Cezalandır.", effect: { kingdom: 1, mercy: -1, next: 14 } }, { text: "Bağışla.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "Kaçakçılar Mağarası", dilemma: "Mağarada büyük bir sır açığa çıktı. Açıklamalı mısın?", options: [{ text: "Açıkla.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: null } }] }], // 12. Queen Elira, the Masked One [{ scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 1 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 1 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 2 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 2 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 3 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 3 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 4 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 4 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 5 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 5 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 6 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 6 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 7 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 7 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 8 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 8 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 9 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 9 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 10 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 10 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 11 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 11 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 12 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 12 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 13 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 13 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta bir isyan çıktı. Bastırmalı mısın?", options: [{ text: "Bastır.", effect: { kingdom: 1, mercy: -1, next: 14 } }, { text: "Barışçıl çözüm ara.", effect: { kingdom: 0, mercy: 1, next: 14 } }] }, { scene: "Büyük Taht Salonu", dilemma: "Krallıkta büyük bir sır açığa çıktı. Açıklamalı mısın?", options: [{ text: "Açıkla.", effect: { kingdom: 1, mercy: 0, next: null } }, { text: "Gizle.", effect: { kingdom: 0, mercy: 1, next: null } }] }]]; // Oyun state değişkenleri var currentCharIndex = 0; var currentQuestIndex = 0; var kingdomScore = 0; var mercyScore = 0; var history = []; // {charIndex, questIndex, option, jokerUsed} // UI elements // sceneBG will be created dynamically in updateUI based on quest scene var sceneBG = null; var charToken = new CharacterToken(); charToken.x = 2048 / 2; charToken.y = 400; game.addChild(charToken); var dilemmaText = new Text2('', { size: 72, fill: '#fff', align: 'center', wordWrap: true, wordWrapWidth: 1600 }); dilemmaText.anchor.set(0.5, 0); dilemmaText.x = 2048 / 2; dilemmaText.y = 650; game.addChild(dilemmaText); var optionA = new OptionButton(); optionA.x = 2048 / 2; optionA.y = 1100; optionA.setType('optionA'); game.addChild(optionA); var optionB = new OptionButton(); optionB.x = 2048 / 2; optionB.y = 1350; optionB.setType('optionB'); game.addChild(optionB); var sceneTitle = new Text2('', { size: 54, fill: '#8ecae6' }); sceneTitle.anchor.set(0.5, 0.5); sceneTitle.x = 2048 / 2; sceneTitle.y = 250; game.addChild(sceneTitle); var charName = new Text2('', { size: 54, fill: '#f9c74f' }); charName.anchor.set(0.5, 0.5); charName.x = 2048 / 2; charName.y = 320; game.addChild(charName); var scoreTxt = new Text2('', { size: 48, fill: '#fff' }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Character meta data (id, name, scene) for each character var characters = [{ id: 'char1', name: 'Ser Aedric of Thornhall', scene: 'Thornhall Kalesi' }, { id: 'char2', name: 'Sister Caelia of the Ash Order', scene: 'Küller Manastırı' }, { id: 'char3', name: 'Rowan Greaves, the Rat Prince', scene: 'Kiralık Hançerler Loncası' }, { id: 'char4', name: 'Thalindra, Witch of Mirefen', scene: 'Mirefen Bataklığı' }, { id: 'char5', name: 'Ealdwine, the Exiled Heir', scene: 'Unutulmuş Saray' }, { id: 'char6', name: 'Maeryn of the Grove', scene: 'Grove Ormanı' }, { id: 'char7', name: 'Borin, the Iron Fist', scene: 'Demirderin Madenleri' }, { id: 'char8', name: 'Nalia Blackthorn', scene: 'Gölge Tapınağı' }, { id: 'char9', name: 'Gareth Hollowbrand', scene: 'İç Savaş Alanı' }, { id: 'char10', name: 'Sylvea of Lathryn', scene: 'Ay Meclisi' }, { id: 'char11', name: 'Fenric Redhand', scene: 'Kaçakçılar Mağarası' }, { id: 'char12', name: 'Queen Elira, the Masked One', scene: 'Büyük Taht Salonu' }]; // Helper: update all UI for current character function updateUI() { // Get current quest data for the current character and quest index var charMeta = characters[currentCharIndex]; var questline = characterQuestlines[currentCharIndex]; var questData = questline[currentQuestIndex]; // --- Background asset switching logic --- // Map scene names to their background asset IDs var sceneToAsset = { "Kale Avlusu": "bg_kale_avlusu", "Kraliyet Bahçesi": "bg_kraliyet_bahcesi", "Gizli Kütüphane": "bg_gizli_kutuphane", "Kasaba Meydanı": "bg_kasaba_meydani", "Şehir Kapısı": "bg_sehir_kapisi", "Tapınak": "bg_tapinak", "Atölye": "bg_atolye", "Taht Odası": "bg_taht_odasi", "Orman Kenarı": "bg_orman_kenari", "Pazar Yeri": "bg_pazar_yeri", "Kale Suru": "bg_kale_suru", "Dalgakıran Kıyısı": "bg_dalgakiran_kiyisi", "Demirderin Madenleri": "bg_demirderin_madenleri", "Grove Ormanı": "bg_grove_ormani", "Ay Meclisi": "bg_ay_meclisi", "Kraliyet Meclisi Odası": "bg_kraliyet_meclisi", "Öksüzler Hanı": "bg_oksuzler_hani", "Lanetli Kitaplık": "bg_lanetli_kitaplik", "Unutulmuş Saray": "bg_unutulmus_saray", "Kaçakçılar Mağarası": "bg_kacakcilar_magarasi", "Büyük Taht Salonu": "bg_buyuk_taht_salonu", "Gölge Tapınağı": "bg_golge_tapinagi", "Lanet Taşı": "bg_lanet_tasi", "Kraliçenin Sığınağı": "bg_kralicenin_siginagi", "İç Savaş Alanı": "bg_ic_savas_alani", "Kraliyet Mezarlığı": "bg_kraliyet_mezarligi", "Küller Manastırı": "bg_lanetli_kitaplik", // fallback for scenes without a custom bg "Kiralık Hançerler Loncası": "bg_kale_avlusu" // fallback for scenes without a custom bg }; // Remove old background if not already correct var newBGId = sceneToAsset[questData.scene] || "bg_kale_avlusu"; if (!sceneBG || sceneBG.assetId !== newBGId) { if (sceneBG && sceneBG.parent) { sceneBG.parent.removeChild(sceneBG); } sceneBG = LK.getAsset(newBGId, { anchorX: 0, anchorY: 0, x: 0, y: 0 }); sceneBG.assetId = newBGId; game.addChildAt(sceneBG, 0); } charToken.setCharacter(charMeta.id); sceneTitle.setText(questData.scene); charName.setText(charMeta.name); dilemmaText.setText(questData.dilemma); optionA.setText('A) ' + questData.options[0].text); optionB.setText('B) ' + questData.options[1].text); optionA.highlight(false); optionB.highlight(false); scoreTxt.setText('Krallık: ' + kingdomScore + ' Merhamet: ' + mercyScore); } // Helper: transition to next character function nextCharacter(selectedOption, usedJoker) { var charData = characterQuestlines[currentCharIndex][currentQuestIndex]; var effect = charData.options[selectedOption].effect; kingdomScore += effect.kingdom; mercyScore += effect.mercy; history.push({ charIndex: currentCharIndex, option: selectedOption, jokerUsed: usedJoker }); // Next quest or character if (effect.next !== null) { currentQuestIndex = effect.next; updateUI(); } else { // Move to next character if available, else end game if (currentCharIndex < characters.length - 1) { currentCharIndex++; currentQuestIndex = 0; updateUI(); } else { // Game end showEnding(); } } } // Helper: show ending function showEnding() { // Simple ending logic: if kingdomScore > mercyScore, kingdom is strong but cold; else, merciful but weak var ending = ''; if (kingdomScore > mercyScore) { ending = 'Krallık güçlü ama halk mutsuz. Morwyn Krallığı\'nın kaderi sert oldu.'; } else if (mercyScore > kingdomScore) { ending = 'Krallık zayıf ama halk mutlu. Morwyn Krallığı\'nda umut var.'; } else { ending = 'Krallık dengede. Ne tam adil, ne tam zalim. Gelecek belirsiz.'; } LK.effects.flashScreen(0x8ecae6, 1200); LK.setTimeout(function () { LK.showYouWin(ending); }, 1200); } // Option selection logic var optionDown = null; // 0 or 1 if pressed function handleOptionDown(x, y, obj) { // Only allow if not already pressed if (optionDown !== null) return; if (optionA.containsPoint(x, y)) { optionA.highlight(true); optionDown = 0; } else if (optionB.containsPoint(x, y)) { optionB.highlight(true); optionDown = 1; } } function handleOptionUp(x, y, obj) { if (optionDown === null) return; var selected = null; if (optionDown === 0 && optionA.containsPoint(x, y)) selected = 0; if (optionDown === 1 && optionB.containsPoint(x, y)) selected = 1; optionA.highlight(false); optionB.highlight(false); optionDown = null; if (selected !== null) { // Sonuç etkisini daha doğal bir cümleye dönüştür var etkileriCumle = function etkileriCumle(effect) { var cumle = ""; if (effect.kingdom > 0 && effect.mercy > 0) { cumle = "Bu kararınla hem krallığın düzenini hem de merhameti güçlendirdin."; } else if (effect.kingdom > 0 && effect.mercy < 0) { cumle = "Krallığın otoritesi artsa da, halkın gözünde biraz daha sert biri oldun."; } else if (effect.kingdom < 0 && effect.mercy > 0) { cumle = "Merhametinle gönülleri kazandın, fakat krallığın otoritesi zayıfladı."; } else if (effect.kingdom < 0 && effect.mercy < 0) { cumle = "Ne krallık ne de halk bu karardan memnun kaldı."; } else if (effect.kingdom > 0) { cumle = "Krallığın gücünü artırdın."; } else if (effect.kingdom < 0) { cumle = "Krallığın gücünü zayıflattın."; } else if (effect.mercy > 0) { cumle = "Merhametinle halkın sevgisini kazandın."; } else if (effect.mercy < 0) { cumle = "Halkın gözünde biraz daha acımasız oldun."; } else { cumle = "Bu kararın büyük bir değişiklik yaratmadı."; } return cumle; }; // Show result of the selected option before progressing var questline = characterQuestlines[currentCharIndex]; var questData = questline[currentQuestIndex]; var selectedOpt = questData.options[selected]; // Tek paragraflık, giriş-gelişme-sonuç hikaye metni oluştur var charMeta = characters[currentCharIndex]; var scene = questData.scene; var dilemma = questData.dilemma; var secim = selectedOpt.text; var sonucCumle = etkileriCumle(selectedOpt.effect); // Hikaye: karakter, mekan, olay, seçim ve sonuç tek paragrafa dökülür var storyText = charMeta.name + ", " + scene + " ortamında, '" + dilemma.replace(/\s+$/, '') + "' sorusuyla karşılaştı. " + "Bir an düşündükten sonra '" + secim + "' yolunu seçti. " + sonucCumle; // Popup var resultPopup = new Container(); var bg = LK.getAsset('optionHL', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2100 }); bg.alpha = 0.95; resultPopup.addChild(bg); // Beyaz ve daha küçük yazı, hikaye gibi var txt = new Text2(storyText, { size: 64, fill: '#fff', fontWeight: 'bold', align: 'center', wordWrap: true, wordWrapWidth: 1200 }); txt.anchor.set(0.5, 0.5); txt.x = 2048 / 2; txt.y = 2100; resultPopup.addChild(txt); game.addChild(resultPopup); // Kullanıcı ekrana tıklayana kadar popup kalsın var resultPopupHandler = function resultPopupHandler(x, y, obj) { if (resultPopup && resultPopup.parent) { resultPopup.parent.removeChild(resultPopup); game.down = oldGameDown; game.up = oldGameUp; nextCharacter(selected, false); } }; var oldGameDown = game.down; var oldGameUp = game.up; game.down = resultPopupHandler; game.up = resultPopupHandler; } } // Option button interaction optionA.down = function (x, y, obj) { handleOptionDown(x, y, obj); }; optionB.down = function (x, y, obj) { handleOptionDown(x, y, obj); }; optionA.up = function (x, y, obj) { handleOptionUp(x, y, obj); }; optionB.up = function (x, y, obj) { handleOptionUp(x, y, obj); }; // Touch anywhere on options game.down = function (x, y, obj) { handleOptionDown(x, y, obj); }; game.up = function (x, y, obj) { handleOptionUp(x, y, obj); }; // Utility: check if point is inside option OptionButton.prototype.containsPoint = function (x, y) { var bx = this.x, by = this.y; var w = this.bg.width, h = this.bg.height; return x >= bx - w / 2 && x <= bx + w / 2 && y >= by - h / 2 && y <= by + h / 2; }; // Start game function startGame() { currentCharIndex = 0; currentQuestIndex = 0; kingdomScore = 0; mercyScore = 0; history = []; updateUI(); } startGame(); // No update loop needed for this game (all is event driven) game.update = function () { // Could animate transitions here if desired };
===================================================================
--- original.js
+++ change.js
@@ -18,27 +18,8 @@
});
};
return self;
});
-// Joker button class
-var JokerButton = Container.expand(function () {
- var self = Container.call(this);
- self.bg = self.attachAsset('joker', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.txt = new Text2('JOKER', {
- size: 48,
- fill: '#222'
- });
- self.txt.anchor.set(0.5, 0.5);
- self.addChild(self.txt);
- self.setActive = function (active) {
- self.bg.alpha = active ? 1 : 0.3;
- self.txt.alpha = active ? 1 : 0.3;
- };
- return self;
-});
/****
* Game Data
****/
// 12 characters, each with a name and a moral dilemma (2 options)
@@ -3393,11 +3374,8 @@
}]];
// Oyun state değişkenleri
var currentCharIndex = 0;
var currentQuestIndex = 0;
-var jokerAvailable = false;
-var jokerUsed = false;
-var jokerFrom = null; // index of previous character who is now the Joker
var kingdomScore = 0;
var mercyScore = 0;
var history = []; // {charIndex, questIndex, option, jokerUsed}
// UI elements
@@ -3406,12 +3384,8 @@
var charToken = new CharacterToken();
charToken.x = 2048 / 2;
charToken.y = 400;
game.addChild(charToken);
-var jokerBtn = new JokerButton();
-jokerBtn.x = 2048 - 200;
-jokerBtn.y = 400;
-game.addChild(jokerBtn);
var dilemmaText = new Text2('', {
size: 72,
fill: '#fff',
align: 'center',
@@ -3566,14 +3540,8 @@
optionB.setText('B) ' + questData.options[1].text);
optionA.highlight(false);
optionB.highlight(false);
scoreTxt.setText('Krallık: ' + kingdomScore + ' Merhamet: ' + mercyScore);
- // Joker
- if (jokerAvailable && !jokerUsed) {
- jokerBtn.setActive(true);
- } else {
- jokerBtn.setActive(false);
- }
}
// Helper: transition to next character
function nextCharacter(selectedOption, usedJoker) {
var charData = characterQuestlines[currentCharIndex][currentQuestIndex];
@@ -3584,12 +3552,8 @@
charIndex: currentCharIndex,
option: selectedOption,
jokerUsed: usedJoker
});
- // Joker logic: after each character, that character becomes the Joker for the next
- jokerAvailable = true;
- jokerUsed = false;
- jokerFrom = currentCharIndex;
// Next quest or character
if (effect.next !== null) {
currentQuestIndex = effect.next;
updateUI();
@@ -3708,111 +3672,17 @@
if (resultPopup && resultPopup.parent) {
resultPopup.parent.removeChild(resultPopup);
game.down = oldGameDown;
game.up = oldGameUp;
- // If joker is available and not used, offer to use joker
- if (jokerAvailable && !jokerUsed) {
- showJokerPrompt(selected);
- } else {
- nextCharacter(selected, false);
- }
+ nextCharacter(selected, false);
}
};
var oldGameDown = game.down;
var oldGameUp = game.up;
game.down = resultPopupHandler;
game.up = resultPopupHandler;
}
}
-// Joker prompt
-var jokerPrompt = null;
-function showJokerPrompt(selectedOption) {
- if (jokerPrompt) return;
- jokerPrompt = new Container();
- var bg = LK.getAsset('optionHL', {
- anchorX: 0.5,
- anchorY: 0.5,
- x: 2048 / 2,
- y: 2100
- });
- bg.alpha = 0.95;
- jokerPrompt.addChild(bg);
- var txt = new Text2('Joker kullanılsın mı? Önceki karakterden ahlaki yardım alabilirsin.', {
- size: 40,
- fill: '#222',
- align: 'center',
- wordWrap: true,
- wordWrapWidth: 900
- });
- txt.anchor.set(0.5, 0.5);
- txt.x = 2048 / 2;
- txt.y = 2050;
- jokerPrompt.addChild(txt);
- var yesBtn = new OptionButton();
- yesBtn.setText('Evet, Joker!');
- yesBtn.x = 2048 / 2 - 200;
- yesBtn.y = 2200;
- yesBtn.setType('optionA');
- jokerPrompt.addChild(yesBtn);
- var noBtn = new OptionButton();
- noBtn.setText('Hayır');
- noBtn.x = 2048 / 2 + 200;
- noBtn.y = 2200;
- noBtn.setType('optionB');
- jokerPrompt.addChild(noBtn);
- yesBtn.down = function (x, y, obj) {
- useJoker(selectedOption);
- };
- noBtn.down = function (x, y, obj) {
- nextCharacter(selectedOption, false);
- closeJokerPrompt();
- };
- game.addChild(jokerPrompt);
-}
-function closeJokerPrompt() {
- if (jokerPrompt) {
- game.removeChild(jokerPrompt);
- jokerPrompt = null;
- }
-}
-function useJoker(selectedOption) {
- // Joker: invert the effect of the selected option (simulate "yardım")
- var questline = characterQuestlines[currentCharIndex];
- var questData = questline[currentQuestIndex];
- var effect = questData.options[selectedOption].effect;
- kingdomScore -= effect.kingdom;
- mercyScore -= effect.mercy;
- // But still progress to next character
- jokerUsed = true;
- jokerAvailable = false;
- history.push({
- charIndex: currentCharIndex,
- option: selectedOption,
- jokerUsed: true
- });
- closeJokerPrompt();
- // Next
- if (effect.next !== null) {
- currentQuestIndex = effect.next;
- updateUI();
- } else {
- // Move to next character if available, else end game
- if (currentCharIndex < characters.length - 1) {
- currentCharIndex++;
- currentQuestIndex = 0;
- updateUI();
- } else {
- showEnding();
- }
- }
-}
-// Joker button interaction
-jokerBtn.down = function (x, y, obj) {
- // Show info about joker
- if (jokerAvailable && !jokerUsed) {
- LK.effects.flashObject(jokerBtn, 0xf9c74f, 500);
- }
-};
// Option button interaction
optionA.down = function (x, y, obj) {
handleOptionDown(x, y, obj);
};
@@ -3846,11 +3716,8 @@
currentQuestIndex = 0;
kingdomScore = 0;
mercyScore = 0;
history = [];
- jokerAvailable = false;
- jokerUsed = false;
- jokerFrom = null;
updateUI();
}
startGame();
// No update loop needed for this game (all is event driven)
A medieval craftsman's workshop, cluttered with wooden tools, candlelight flickering on iron anvils and scrolls, stone walls, dusty air, dark fantasy realism. In-Game asset. 2d. High contrast. No shadows
A dark sea cave used by smugglers, crates stacked on wet stone, rusty lanterns casting weak light, small boats tied to hidden docks. In-Game asset. 2d. High contrast. No shadows
A sacred royal crypt deep underground, stone tombs with carved family crests, faint blue glow from fungi, complete silence. In-Game asset. 2d. High contrast. No shadows
A rundown inn on the edge of a village, candlelight flickering through broken shutters, children peeking from dark corners, cold and lonely air. In-Game asset. 2d. High contrast. No shadows
A medieval castle courtyard at dusk, guards patrolling, torches lit, training dummies and old carts, surrounded by stone walls and towers. In-Game asset. 2d. High contrast. No shadows
A royal medieval garden with trimmed hedges, stone fountains, blooming flowers and marble statues, birds chirping under the morning sun. In-Game asset. 2d. High contrast. No shadows
An ancient hidden library with towering dusty shelves, glowing enchanted books, cobwebs, stone floor with arcane symbols, candlelit mystery. In-Game asset. 2d. High contrast. No shadows
A quaint medieval town square with cobbled streets, wooden signs, children playing, townsfolk chatting near a well, cheerful and warm vibe, realistic In-Game asset. 2d. High contrast. No shadows
Stormy medieval coastline with jagged rocks and crashing waves, an old broken pier, sea mist, overcast skies, crows circling, moody and realistic. In-Game asset. 2d. High contrast. No shadows
A massive medieval stone gate with iron portcullis, guards watching travelers, torches burning in brackets, heavy clouds above, realistic. In-Game asset. 2d. High contrast. No shadows
A golden medieval temple with wide columns, sun shining through stained glass, incense rising, pilgrims praying in silence. In-Game asset. 2d. High contrast. No shadows
An imposing medieval throne room draped in red velvet, dark stone pillars, torches casting shadows, the throne elevated above all. realistic In-Game asset. 2d. High contrast. No shadows
A mystical medieval forest glade with ancient trees, golden sunlight filtering through leaves, stone altar covered in moss, enchanted and sacred atmosphere, realistic. In-Game asset. 2d. High contrast. No shadows
The edge of a thick medieval forest, tangled roots and wild grass, birds flying above, a worn path leading into shadow, realistic. In-Game asset. 2d. High contrast. No shadows
A dusty medieval trade bazaar with exotic goods, traders shouting, spices in the air, colorful fabrics blowing in the wind, realistic. In-Game asset. 2d. High contrast. No shadows
A high medieval castle wall overlooking the land, stone parapets with archers, distant mountains in the fog, early dawn light, realistic. In-Game asset. 2d. High contrast. No shadows
A massive medieval throne hall with golden chandeliers, crimson carpets, high arched ceilings, stained-glass windows casting colored light, majestic and solemn, realistic. In-Game asset. 2d. High contrast. No shadows
A cursed medieval library with twisted bookshelves, dark green glow from cursed tomes, whispers echoing through shadowed halls, realistic. In-Game asset. 2d. High contrast. No shadows
An underground medieval mine with flickering torchlight, wooden supports, glowing ore veins, pickaxes leaning on rocks, deep shadows and echoing silence, realistic. In-Game asset. 2d. High contrast. No shadows
A mountaintop stone amphitheater under a glowing full moon, robed figures in a ritual circle, icy wind sweeping, high above the clouds, solemn medieval council scene, realistic. In-Game asset. 2d. High contrast. No shadows
A forgotten mountain temple shrouded in shadow, stone statues with cracks, cloaked worshippers performing a dark ritual, vines crawling over walls, realistic. In-Game asset. 2d. High contrast. No shadows
A gloomy medieval swamp with moss-draped trees, murky water reflecting a grey sky, eerie fog drifting over twisted roots, dark fantasy mood, realistic. In-Game asset. 2d. High contrast. No shadows
A hidden stone tower in a lush mountain pass, guarded by loyal knights, soft firelight glowing from narrow windows, peaceful and fortified, realistic. In-Game asset. 2d. High contrast. No shadows
A crumbling forgotten palace with fallen pillars, moss overtaking marble, broken thrones and moonlight through shattered roof, realistic. In-Game asset. 2d. High contrast. No shadows
A war-torn battlefield with broken swords and burning wagons, muddy bloodstained ground, corpses under grey skies, banners torn and forgotten, realistic. In-Game asset. 2d. High contrast. No shadows
A windswept plain with a cursed black stone monolith, glowing runes etched into it, bones scattered around, storm clouds looming, realistic. In-Game asset. 2d. High contrast. No shadows
A crowded medieval street market with colorful tents, villagers bargaining, hanging lanterns, dirt road and wooden stalls, lively and rustic, realistic. In-Game asset. 2d. High contrast. No shadows
A medieval council chamber with a round oak table, banners of noble houses, armored guards, high windows filtering in golden light, reailstic. In-Game asset. 2d. High contrast. No shadows
"A cunning rogue cloaked in patchwork leathers and city grime, perched on a broken statue. Male, 26 years old, wiry and agile, with messy black hair, sly green eyes, a scar over his nose, and olive-toned skin. A rat sits on his shoulder. Dual daggers at his side, a grin revealing a gold tooth. The background is a shadowy alley lit by torchlight. Realistic, highly detailed, dark urban medieval style. realistic. In-Game asset. 2d. High contrast. No shadows
A noblewoman-archer dressed in royal blue and silver, standing on a hilltop during dawn. Female, 30 years old, graceful but strong, with long platinum blonde hair in a braid, storm-grey eyes, and porcelain skin. She wears a sapphire-encrusted circlet and carries an ornate elven longbow. Her cloak flutters in the wind. Realistic, highly detailed, elegant fantasy tone. relistic. In-Game asset. 2d. High contrast. No shadows
A haunted warlock in ceremonial black and crimson robes embroidered with skull patterns. Male, 56 years old, gaunt and tall, with shoulder-length white hair, sunken dark eyes glowing faint green, and sickly pale skin. He holds a staff topped with a demonic skull. Floating behind him are spectral chains and ghostly runes. The background is a cursed crypt. Realistic, highly detailed, dark arcane ambiance. realistic. In-Game asset. 2d. High contrast. No shadows
A hauntingly beautiful swamp witch draped in moss-draped robes and raven feathers. Female, 44 years old, tall and willowy, long tangled silver-blonde hair, glowing violet eyes, pale greenish skin marked with old runes. Fingers elongated and tipped with claws. She stirs a cauldron in the middle of a foggy, glowing swamp surrounded by will-o'-wisps. Realistic, highly detailed, eerie mystical style. realistic. In-Game asset. 2d. High contrast. No shadows
A regal yet enigmatic queen in a black and silver gown, wearing a porcelain mask with only her golden eyes visible. Female, 36 years old, tall and poised, dark wavy hair pinned in a jeweled crown, pale flawless skin. Her gloved hands rest on an ornate scepter with a dragon motif. She stands in a candle-lit throne room surrounded by veiled courtiers. Realistic, highly detailed, gothic royal style. realistic. In-Game asset. 2d. High contrast. No shadows
A young prince in a tattered royal cloak, wearing armor half-covered in mud and blood. Male, 31 years old, tall and proud despite exile, with golden blond hair to his shoulders, piercing blue eyes, and fair skin hardened by years of hardship. A broken crown hangs from his belt. He stares out over a ruined battlefield with determination. Realistic, highly detailed, noble tragic style. realistic. In-Game asset. 2d. High contrast. No shadows
A towering warrior-blacksmith with soot-covered muscles and iron gauntlets, standing before a blazing forge. Male, 47 years old, bald with a thick black beard braided with iron rings, dark brown eyes, and deeply tanned, scarred skin. Wearing a leather apron and iron shoulder guards, wielding a massive smith-hammer. Sparks fly around him. Realistic, highly detailed, fiery forge setting. realistic. In-Game asset. 2d. High contrast. No shadows
A brutal mercenary captain in blood-stained chainmail, wielding twin axes. Male, 40 years old, muscular and wild, shoulder-length red hair, fiery amber eyes, freckled and scarred face. A severed banner tied to his belt, his hands wrapped in bloodied leather. He stands amidst fallen enemies in a smoky battlefield. Realistic, highly detailed, brutal war setting. realistic. In-Game asset. 2d. High contrast. No shadows
A forest druidess cloaked in green vines, leaves, and bark-woven garments, standing among ancient stone circles. Female, 28 years old, slender and fierce, auburn curly hair with forest flowers woven in, moss-green eyes, and freckled sun-kissed skin. A glowing staff carved from elderwood is in her hand, and glowing butterflies swirl around her. Realistic, highly detailed, enchanted forest atmosphere. realistic. In-Game asset. 2d. High contrast. No shadows
A weathered and noble medieval knight clad in dark iron armor engraved with thorns and lion insignias. Male, 52 years old, tall and broad-shouldered, with greying brown hair cut short, deep-set hazel eyes, and a strong jawline covered in stubble. A long, tattered crimson cape flows behind him. His armor is dented from countless battles. He stands in a ruined stone courtyard at dusk, gripping a massive longsword planted in the ground. Realistic, highly detailed, cinematic lighting. realistic. In-Game asset. 2d. High contrast. No shadows
A fierce assassin in obsidian armor and a hooded cloak, crouched on a rooftop under the moonlight. Female, 33 years old, lean and deadly, short jet-black hair, piercing ice-blue eyes, pale porcelain skin. Her armor is adorned with thorn motifs. A poisoned dagger in each hand. Background shows a quiet castle town below. Realistic, highly detailed, stealthy night-time mood. reaalistic. In-Game asset. 2d. High contrast. No shadows
A solemn female cleric in soot-gray robes adorned with ash motifs and sun-bleached fabric. 39 years old, with a thin, gaunt frame, shaved head except for a braided black topknot, pale skin, and glowing amber eyes. Ash marks are smeared across her face in ritual patterns. Holding a prayer staff made of burned oak and silver. She stands in a scorched temple, sunlight breaking through cracked stone. Realistic, highly detailed, sacred atmosphere. realistic. In-Game asset. 2d. High contrast. No shadows
heart. In-Game asset. 2d. High contrast. No shadows
A towering, hypermasculine medieval warrior standing heroically on a battlefield at dusk, clad in weathered steel armor with golden engravings, his broad chest exposed under a torn fur-lined cloak, muscles defined and glistening with sweat and blood. Long, slightly wavy dark brown hair flows in the wind, a rugged chiseled jawline with a trimmed beard, piercing ice-blue eyes filled with intensity. Scars on his shoulder and a massive greatsword resting on his back. Background features a stormy sky and burning ruins, a dramatic lighting highlighting the power in his posture. Cinematic, realistic, highly detailed, epic composition, moody atmosphere --realistic style, medieval fantasy, 4K, ultra-detailed, volumetric lighting. realistic. In-Game asset. 2d. High contrast. No shadows
thin and long papyrus paper. Horizontally long