User prompt
Migrate to the latest version of LK
User prompt
Make the talk button allow to be click multiple time
User prompt
optimise the game with 5 thing
User prompt
optimise all the code
User prompt
Please fix the bug: 'ReferenceError: flirtyDialogueLines is not defined' in or related to this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 253
User prompt
add 10 new sentence
User prompt
Add 50 more dialogue array
User prompt
Add 50 more dialogue array
User prompt
Add 50 new dialogue array
User prompt
Add 30 new dialogue array
User prompt
add 20 new dialogue array
User prompt
Add 20 new dialogue array
User prompt
Add 10 new dialogue array
User prompt
Add 10 new dialogue
User prompt
add casualdialogue 2
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 75
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 71
User prompt
add 3 new casualdialogueline array with only 4 dialogue each
User prompt
add 10 new dialogue
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 85
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 76
User prompt
add two new casual dialogue array with 3 dialogue each
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 85
User prompt
Fix Bug: 'ReferenceError: casualDialogueLines is not defined' in this line: 'var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines;' Line Number: 76
User prompt
add two new casual dialogue array with 3 dialogue each
/**** * Classes ****/ var FlirtyDialogue = Container.expand(function (text) { var self = Container.call(this); var bubbleGraphics = self.attachAsset('speechBubble', { anchorX: 0.5, anchorY: 0.5 }); var textElement = new Text2(text, { size: 94.5, fill: "#ff69b4" }); textElement.maxWidth = bubbleGraphics.width * 0.2; textElement.maxHeight = bubbleGraphics.height * 0.2; textElement.anchor.set(0.5, 0.5); self.addChild(bubbleGraphics); self.addChild(textElement); }); var LeftEye = Container.expand(function () { var self = Container.call(this); var eyeGraphics = self.attachAsset('eye', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(eyeGraphics); }); var Mouth = Container.expand(function () { var self = Container.call(this); var mouthGraphics = self.attachAsset('mouth', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(mouthGraphics); self.talking = false; self.talkScale = 1; self.update = function () { if (self.talking) { self.talkScale += 0.02; if (self.talkScale > 1.2) { self.talking = false; } } else { self.talkScale -= 0.02; if (self.talkScale < 1) { self.talkScale = 1; } } mouthGraphics.scale.set(self.talkScale); }; self.startTalking = function () { self.talking = true; }; self.stopTalking = function () { self.talking = false; }; }); var Nose = Container.expand(function () { var self = Container.call(this); var noseGraphics = self.attachAsset('nose', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(noseGraphics); }); var RightEye = Container.expand(function () { var self = Container.call(this); var eyeGraphics = self.attachAsset('eye', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(eyeGraphics); }); var RoomBackground = Container.expand(function () { var self = Container.call(this); var backgroundGraphics = self.attachAsset('roomBackground', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(backgroundGraphics); backgroundGraphics.width = 2048 * 1.3 * 1.2; backgroundGraphics.height = 2732 * 1.2; self.x = 2048 / 2; self.y = 2732 / 2 - 300; }); var SpeechBubble = Container.expand(function () { var self = Container.call(this); var bubbleGraphics = self.attachAsset('speechBubble', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(bubbleGraphics); self.visible = false; self.show = function (text, x, y) { self.x = x + 200; self.y = y + 100; self.visible = true; self.addChild(text); var dialogueText = text; LK.setTimeout(function () { self.visible = false; self.removeChild(dialogueText); }, 2000); }; }); var TalkButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('talkButton', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(buttonGraphics); self.x = buttonGraphics.width / 2 + 250; self.y = 2732 - buttonGraphics.height / 2 - 250; self.cooldown = false; var casualDialogueLines1 = ['Hello', 'Nice to see you', 'How are you today?', 'You look wonderful!']; var casualDialogueLines2 = ['Missed you!', 'What brings you here today?', 'Did you sleep well?', 'Dream of me?']; var casualDialogueLines3 = ['Ready for a new day?', 'You’re my sunshine!', 'Can’t wait to see you!', 'You mean the world to me!']; var casualDialogueLines4 = ['Can I tell you a secret?', 'You make me smile!', 'I love spending time with you.', 'You make every day better.']; var casualDialogueLines5 = ['I love our conversations.', 'You always know how to make me laugh.', 'I appreciate you.', 'You are so kind.']; var flirtyDialogueLines1 = ['You make me feel special.', 'I love your company.', 'I love you', 'Thinking of you makes my day!']; var flirtyDialogueLines2 = ['You brighten up my world.', 'You have the key to my heart.', 'You make my heart skip a beat.', 'You are my sunshine.']; var flirtyDialogueLines3 = ['You are my moonlight.', 'You are my starlight.', 'You are my everything.', 'You make my world complete.']; var flirtyDialogueLines4 = ['You are my dream come true.', 'You are my paradise.', 'You are my sweetest dream.', 'You are my forever.']; var flirtyDialogueLines5 = ['You are my one and only.', 'You are my heart’s desire.', 'You are my soulmate.', 'You are my love story.']; var casualDialogueLines6 = ['You make my day brighter.', 'Your smile is contagious.', 'You are my safe place.', 'You inspire me.']; var casualDialogueLines7 = ['You are my comfort zone.', 'You light up my life.', 'You make everything better.', 'You are my happy place.']; var casualDialogueLines8 = ['You are my strength.', 'You are my treasure.', 'You are my lucky charm.', 'You are my dream come true.']; var casualDialogueLines9 = ['You are my sunshine after the rain.', 'You are my rainbow after the storm.', 'You are my calm in the chaos.', 'You are my peace in the turmoil.']; var casualDialogueLines10 = ['You are my anchor in life’s ocean.', 'You are my guiding star.', 'You are my full moon in the dark night.', 'You are my blossom in the spring.']; var flirtyDialogueLines6 = ['You are my cool breeze in the summer.', 'You are my cozy fire in the winter.', 'You are my shelter in the storm.', 'You are my oasis in the desert.']; var flirtyDialogueLines7 = ['You are my rainbow in the cloud.', 'You are my melody in the morning.', 'You are my lullaby at night.', 'You are my sweetest dream in sleep.']; var flirtyDialogueLines8 = ['You are my courage in fear.', 'You are my wisdom in confusion.', 'You are my power in weakness.', 'You are my truth in uncertainty.']; var flirtyDialogueLines9 = ['You are my hope in despair.', 'You are my joy in sorrow.', 'You are my wealth in poverty.', 'You are my guide in darkness.']; var flirtyDialogueLines10 = ['You are my healer in sickness.', 'You are my patience in frustration.', 'You are my stability in change.', 'You are my eternity in this temporary world.']; var casualDialogueLines11 = ['Your laughter is my favorite sound.', 'Your happiness is my priority.', 'Your dreams are my dreams.', 'Your hopes light up my world.']; var casualDialogueLines12 = ['Your voice is my favorite melody.', 'Your eyes hold my universe.', 'Your touch is my comfort.', 'Your presence is my peace.']; var casualDialogueLines13 = ['Your love is my treasure.', 'Your heart is my home.', 'Your spirit lifts me up.', 'Your kindness warms my soul.']; var casualDialogueLines14 = ['Your courage inspires me.', 'Your wisdom enlightens me.', 'Your strength supports me.', 'Your generosity enriches me.']; var casualDialogueLines15 = ['Your creativity dazzles me.', 'Your passion ignites me.', 'Your humor delights me.', 'Your gentleness touches me.']; var flirtyDialogueLines11 = ['Your gaze sets my heart aflame.', 'Your smile lights up my darkest days.', 'Your whispers are my sweetest serenade.', 'Your laughter is my favorite symphony.']; var flirtyDialogueLines12 = ['Your touch sends shivers down my spine.', 'Your kisses are my sweetest wine.', 'Your embrace is my safest haven.', 'Your love is my greatest adventure.']; var flirtyDialogueLines13 = ['Your beauty captivates me.', 'Your charm enchants me.', 'Your grace mesmerizes me.', 'Your love transforms me.']; var flirtyDialogueLines14 = ['Your spirit is my guiding light.', 'Your soul is my eternal night.', 'Your heart is my fiercest fight.', 'Your love is my highest flight.']; var flirtyDialogueLines15 = ['Your dreams are my aspirations.', 'Your hopes are my motivations.', 'Your fears are my considerations.', 'Your love is my destination.']; var casualDialogueLines16 = ['Your curiosity sparks my own.', 'Your enthusiasm is contagious.', 'Your resilience is admirable.', 'Your authenticity is refreshing.']; var casualDialogueLines17 = ['Your perspective broadens mine.', 'Your experiences enrich my life.', 'Your challenges strengthen our bond.', 'Your victories are celebrated together.']; var casualDialogueLines18 = ['Your growth inspires mine.', 'Your journey is intertwined with mine.', 'Your achievements are a source of pride.', 'Your potential is limitless.']; var casualDialogueLines19 = ['Your creativity fuels our adventures.', 'Your passion drives our connection.', 'Your humor brings joy to our days.', 'Your gentleness nurtures our bond.']; var casualDialogueLines20 = ['Your kindness is a beacon of hope.', 'Your generosity knows no bounds.', 'Your empathy bridges our souls.', 'Your love is the foundation of our journey.']; var flirtyDialogueLines16 = ['Your whispers in the night promise forever.', 'Your laughter in the daylight sings of joy.', 'Your footsteps beside mine mark our path.', 'Your hand in mine is my unspoken vow.']; var flirtyDialogueLines17 = ['Your eyes are the windows to our future.', 'Your smile is the key to my heart.', 'Your voice is the melody of our love song.', 'Your presence is the essence of my happiness.']; var flirtyDialogueLines18 = ['Your touch ignites the spark of passion.', 'Your kiss seals the promise of tomorrow.', 'Your embrace shelters the storms of life.', 'Your love is the anchor in my world.']; var flirtyDialogueLines19 = ['Your dreams intertwine with mine.', 'Your hopes reflect our shared desires.', 'Your fears dissolve in our unity.', 'Your love is the beacon guiding us home.']; var flirtyDialogueLines20 = ['Your spirit dances with mine in harmony.', 'Your heart beats in rhythm with mine.', 'Your soul merges with mine in eternity.', 'Your love is the story written in the stars.']; var casualDialogueLines21 = ['Your creativity sparks new ideas in me.', 'Your laughter is my favorite tune.', 'Your stories fill my world with color.', 'Your perspective opens new worlds to me.']; var casualDialogueLines22 = ['Your resilience is my inspiration.', 'Your determination drives me forward.', 'Your courage gives me strength.', 'Your wisdom is my guiding light.']; var casualDialogueLines23 = ['Your patience teaches me to wait.', 'Your kindness is a gift I treasure.', 'Your generosity knows no limits.', 'Your spirit uplifts me.']; var casualDialogueLines24 = ['Your trust is my foundation.', 'Your loyalty is unwavering.', 'Your friendship is my comfort.', 'Your love is my guiding star.']; var casualDialogueLines25 = ['Your dreams inspire my own.', 'Your goals align with mine.', 'Your achievements fill me with pride.', 'Your journey is one I want to share.']; var casualDialogueLines26 = ['Your humor is my joy.', 'Your smile is my peace.', 'Your touch is my solace.', 'Your presence is my home.']; var casualDialogueLines27 = ['Your voice is my favorite sound.', 'Your words are my motivation.', 'Your thoughts are my interest.', 'Your love is my life’s melody.']; var casualDialogueLines28 = ['Your challenges are mine to face with you.', 'Your successes are my celebrations.', 'Your happiness is my aim.', 'Your heart is my chosen home.']; var casualDialogueLines29 = ['Your care is my comfort.', 'Your warmth is my shelter.', 'Your passion is my spark.', 'Your love is my eternal flame.']; var casualDialogueLines30 = ['Your gaze is my favorite view.', 'Your whispers are my comfort.', 'Your laughter is my favorite song.', 'Your love is my endless story.']; var flirtyDialogueLines21 = ['Your eyes hold the stars I wish upon.', 'Your hands hold the warmth I crave.', 'Your kiss is the magic I dream of.', 'Your love is the adventure I seek.']; var flirtyDialogueLines22 = ['Your embrace is my sanctuary.', 'Your presence is my favorite gift.', 'Your love is my most cherished treasure.', 'Your heart is my forever home.']; var flirtyDialogueLines23 = ['Your smile is the dawn of my day.', 'Your laughter is the melody of my life.', 'Your touch is the comfort of my nights.', 'Your love is the essence of my being.']; var flirtyDialogueLines24 = ['Your whispers are my guiding whispers.', 'Your sighs are my symphony.', 'Your dreams are my destiny.', 'Your love is my universe.']; var flirtyDialogueLines25 = ['Your gaze ignites my deepest desires.', 'Your touch unravels my defenses.', 'Your kiss transports me to paradise.', 'Your love is my ultimate surrender.']; var flirtyDialogueLines26 = ['Your presence electrifies my soul.', 'Your laughter resonates with my heart.', 'Your whispers echo in my mind.', 'Your love envelops my existence.']; var flirtyDialogueLines27 = ['Your eyes are the mirrors of my soul.', 'Your hands are the keepers of my peace.', 'Your words are the melody of my heart.', 'Your love is the harmony of my life.']; var flirtyDialogueLines28 = ['Your smile is the light in my darkness.', 'Your touch is the warmth in my cold.', 'Your kiss is the peace in my chaos.', 'Your love is the anchor in my storm.']; var flirtyDialogueLines29 = ['Your dreams intertwine with mine in a dance of destiny.', 'Your hopes light up the path of our journey.', 'Your fears are calmed in the embrace of our love.', 'Your love is the legend of our time.']; var flirtyDialogueLines30 = ['Your spirit is the wind beneath my wings.', 'Your heart is the beat of my rhythm.', 'Your soul is the mate of my essence.', 'Your love is the epic of our lives.']; self.on('down', function () { if (!self.cooldown && self.parent) { self.cooldown = true; var girlfriend = self.parent.children.find(function (child) { return child instanceof VirtualGirlfriend; }); var dialogueLines = Math.random() < 0.5 ? casualDialogueLines : flirtyDialogueLines; if (girlfriend) { girlfriend.speak(dialogueLines[Math.floor(Math.random() * dialogueLines.length)]); } LK.setTimeout(function () { self.cooldown = false; }, 2100); } }); }); var VirtualGirlfriend = Container.expand(function () { var self = Container.call(this); var girlfriendGraphics = self.attachAsset('girlfriend', { anchorX: 0.5, anchorY: 0.5 }); self.x = 2048 / 2 - 50; self.y = 2732 - girlfriendGraphics.height + 1050; self.state = "breathing"; self.dialogue = ""; self.breathDuration = 180; self.breathCounter = 0; self.isBreathingIn = true; self.updateBreathing = function () { if (self.isBreathingIn) { self.breathCounter++; if (self.breathCounter >= self.breathDuration) { self.isBreathingIn = false; } } else { self.breathCounter--; if (self.breathCounter <= 0) { self.isBreathingIn = true; } } var scaleFactor = 1 + self.breathCounter / self.breathDuration * (0.05 / 3); this.scale.x = scaleFactor; this.scale.y = scaleFactor; }; self.update = function () { if (self.state === 'breathing' || self.state === 'talking') { self.updateBreathing(); } }; self.speak = function (dialogueTxt) { if (self.state !== 'talking') { self.state = 'talking'; self.dialogue = dialogueTxt; var speechBubble = new SpeechBubble(); var flirtyDialogue = new FlirtyDialogue(dialogueTxt); speechBubble.show(flirtyDialogue, self.x, self.y - 1200); self.parent.addChild(speechBubble); var mouth = self.parent.children.find(function (child) { return child instanceof Mouth; }); if (mouth) { mouth.startTalking(); } LK.setTimeout(function () { self.state = 'breathing'; if (mouth) { mouth.stopTalking(); } }, 2000); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ game.mouth = game.addChild(new Mouth()); var roomBackground = game.addChild(new RoomBackground()); roomBackground.x = 2048 / 2; roomBackground.y = 2732 / 2; var girlfriend = game.addChild(new VirtualGirlfriend()); game.mouth = game.addChild(new Mouth()); var leftEye = game.addChild(new LeftEye()); var rightEye = game.addChild(new RightEye()); var nose = game.addChild(new Nose()); LK.on('tick', function () { var breathScale = girlfriend.scale.x; leftEye.x = girlfriend.x - 110 * breathScale; leftEye.y = girlfriend.y - 200 * breathScale; rightEye.x = girlfriend.x + 300 * breathScale; rightEye.y = girlfriend.y - 210 * breathScale; nose.x = girlfriend.x + 95 * breathScale; nose.y = girlfriend.y - 40 * breathScale; var breathScale = girlfriend.scale.x; game.mouth.x = girlfriend.x + 95 * breathScale; game.mouth.y = girlfriend.y + 180 * breathScale; game.mouth.update(); girlfriend.update(); }); var dialogueTxt = new Text2('', { size: 150, fill: "#ffffff", x: 2048 / 2, y: 150 }); dialogueTxt.anchor.set(0.5, 0); LK.gui.top.addChild(dialogueTxt); var talkButton = game.addChild(new TalkButton()); dialogueTxt.anchor.set(.5, 0); LK.gui.top.addChild(dialogueTxt); LK.on('tick', function () { var breathScale = girlfriend.scale.x; girlfriend.update(); game.mouth.x = girlfriend.x + 95 * breathScale; game.mouth.y = girlfriend.y + 180 * breathScale; game.mouth.update(); });
===================================================================
--- original.js
+++ change.js
@@ -152,8 +152,28 @@
var flirtyDialogueLines17 = ['Your eyes are the windows to our future.', 'Your smile is the key to my heart.', 'Your voice is the melody of our love song.', 'Your presence is the essence of my happiness.'];
var flirtyDialogueLines18 = ['Your touch ignites the spark of passion.', 'Your kiss seals the promise of tomorrow.', 'Your embrace shelters the storms of life.', 'Your love is the anchor in my world.'];
var flirtyDialogueLines19 = ['Your dreams intertwine with mine.', 'Your hopes reflect our shared desires.', 'Your fears dissolve in our unity.', 'Your love is the beacon guiding us home.'];
var flirtyDialogueLines20 = ['Your spirit dances with mine in harmony.', 'Your heart beats in rhythm with mine.', 'Your soul merges with mine in eternity.', 'Your love is the story written in the stars.'];
+ var casualDialogueLines21 = ['Your creativity sparks new ideas in me.', 'Your laughter is my favorite tune.', 'Your stories fill my world with color.', 'Your perspective opens new worlds to me.'];
+ var casualDialogueLines22 = ['Your resilience is my inspiration.', 'Your determination drives me forward.', 'Your courage gives me strength.', 'Your wisdom is my guiding light.'];
+ var casualDialogueLines23 = ['Your patience teaches me to wait.', 'Your kindness is a gift I treasure.', 'Your generosity knows no limits.', 'Your spirit uplifts me.'];
+ var casualDialogueLines24 = ['Your trust is my foundation.', 'Your loyalty is unwavering.', 'Your friendship is my comfort.', 'Your love is my guiding star.'];
+ var casualDialogueLines25 = ['Your dreams inspire my own.', 'Your goals align with mine.', 'Your achievements fill me with pride.', 'Your journey is one I want to share.'];
+ var casualDialogueLines26 = ['Your humor is my joy.', 'Your smile is my peace.', 'Your touch is my solace.', 'Your presence is my home.'];
+ var casualDialogueLines27 = ['Your voice is my favorite sound.', 'Your words are my motivation.', 'Your thoughts are my interest.', 'Your love is my life’s melody.'];
+ var casualDialogueLines28 = ['Your challenges are mine to face with you.', 'Your successes are my celebrations.', 'Your happiness is my aim.', 'Your heart is my chosen home.'];
+ var casualDialogueLines29 = ['Your care is my comfort.', 'Your warmth is my shelter.', 'Your passion is my spark.', 'Your love is my eternal flame.'];
+ var casualDialogueLines30 = ['Your gaze is my favorite view.', 'Your whispers are my comfort.', 'Your laughter is my favorite song.', 'Your love is my endless story.'];
+ var flirtyDialogueLines21 = ['Your eyes hold the stars I wish upon.', 'Your hands hold the warmth I crave.', 'Your kiss is the magic I dream of.', 'Your love is the adventure I seek.'];
+ var flirtyDialogueLines22 = ['Your embrace is my sanctuary.', 'Your presence is my favorite gift.', 'Your love is my most cherished treasure.', 'Your heart is my forever home.'];
+ var flirtyDialogueLines23 = ['Your smile is the dawn of my day.', 'Your laughter is the melody of my life.', 'Your touch is the comfort of my nights.', 'Your love is the essence of my being.'];
+ var flirtyDialogueLines24 = ['Your whispers are my guiding whispers.', 'Your sighs are my symphony.', 'Your dreams are my destiny.', 'Your love is my universe.'];
+ var flirtyDialogueLines25 = ['Your gaze ignites my deepest desires.', 'Your touch unravels my defenses.', 'Your kiss transports me to paradise.', 'Your love is my ultimate surrender.'];
+ var flirtyDialogueLines26 = ['Your presence electrifies my soul.', 'Your laughter resonates with my heart.', 'Your whispers echo in my mind.', 'Your love envelops my existence.'];
+ var flirtyDialogueLines27 = ['Your eyes are the mirrors of my soul.', 'Your hands are the keepers of my peace.', 'Your words are the melody of my heart.', 'Your love is the harmony of my life.'];
+ var flirtyDialogueLines28 = ['Your smile is the light in my darkness.', 'Your touch is the warmth in my cold.', 'Your kiss is the peace in my chaos.', 'Your love is the anchor in my storm.'];
+ var flirtyDialogueLines29 = ['Your dreams intertwine with mine in a dance of destiny.', 'Your hopes light up the path of our journey.', 'Your fears are calmed in the embrace of our love.', 'Your love is the legend of our time.'];
+ var flirtyDialogueLines30 = ['Your spirit is the wind beneath my wings.', 'Your heart is the beat of my rhythm.', 'Your soul is the mate of my essence.', 'Your love is the epic of our lives.'];
self.on('down', function () {
if (!self.cooldown && self.parent) {
self.cooldown = true;
var girlfriend = self.parent.children.find(function (child) {
A beautiful woman in a anime style with no eye, no eyebrow and no mouth. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An eye in a anime style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A beautiful and slim nose in a anime style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A beautiful women mouth in a manga style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A restaurant background in a anime style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A talk button with a buble and a word 'talk'. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A ta dialogue text buble in anime style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.