Computer Science Canada Sort of RPG |
Author: | araevin [ Sat Jun 17, 2006 4:29 pm ] |
Post subject: | Sort of RPG |
This is my game. I took out the pictures becuse i forgot how to attach this. it is not 100 % done. [code:1:bc733a78f8] drawfillbox (0, 0, maxx, maxy, black) % var picID : int := Pic.FileNew ("Map3.jpg") % var picID1 : int := Pic.FileNew ("necromancer.jpg") % var picID2 : int := Pic.FileNew ("paladn.jpeg") % var picID4, picID45, picID5, picID55, pic1, pic2, pic3, pic4, pic5, pic6 : int % picID4 := Pic.FileNew ("necro1.jpg") % picID45 := Pic.FileNew ("necro1.5.jpg") % picID5 := Pic.FileNew ("necro2.jpg") % picID55 := Pic.FileNew ("paladn.jpg") % pic1 := Pic.FileNew ("don.bmp") % pic2 := Pic.FileNew ("don1.5.bmp") % pic3 := Pic.FileNew ("don2.bmp") % pic4 := Pic.FileNew ("don3.bmp") % pic5 := Pic.FileNew ("map2.bmp") % pic6 := Pic.FileNew ("map3.bmp") var oldweap, oldarm : int := 0 var weap, arm : int := 0 var ch, oldch : string (1) := " " var row, col, face : int row := maxrow div 2 % start in middle of the screen col := maxcol div 2 face := 111 % character to display row := 20 col := 145 var bs : int := 7 var ehp : int := 7 var bclr : int := 0 var number : int var foodrow, foodcol : int var tailrow2, tailcol2 : int var tailrow, tailcol : array 1 .. 50 of int var taillength : int := 1 var lives : int := 5 var hp : int := 20 var pwidth : int := 75 var plen : int := 8 var pclr : int := brightwhite var left1 := 20 % this is the space from the left wall var up := 430 % this is the max hight for the brick box var pxpos : int := 20 var pypos : int := 145 const right := 1 const left := -1 var side : int := 30 % this is the side length of the sqare brick var choice : string var bxpos, bxpostest : int := maxx div 2 var bypos, bypostest : int := maxy div 2 - 100 var bsize := 10 var direction : int := right var angle : real := 45 var hitBrick : boolean := false var score : int := 0 var life : int := 3 var turn : int := 1 var good : int := 0 var evil : int := 0 tailrow (1) := row %initial values tailcol (1) := col var enemyx : int := 200 var enemyy : int := 135 var ch32 : string var level := 1 var hit : int var Exp := 0 var font1 : int var mp := 6 var part := 1 font1 := Font.New ("serif:52") var Dice : array 1 .. 3 of int for i : 1 .. 3 % Add up the elements of Dice Dice (i) := Rand.Int (1, 20) end for var weapbon : int := 0 var p1x, p1y, p2x, p2y : int := -10 var potRand : int %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % proc sp % Pic.Draw (picID45, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (picID5, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (picID4, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % end sp % proc mm % if level >= 1 then % Pic.Draw (pic1, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (pic2, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (pic3, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (pic4, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % end if % end mm % proc bp % Pic.Draw (picID45, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (picID5, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % Pic.Draw (picID4, maxx div 2 - 100, maxy div 2, picMerge) % delay (300) % end bp function trued : boolean if ehp <= 0 then result true else result false end if end trued proc drawFight drawfillbox (0, 0, maxx, maxy, green) drawfillbox (170, maxy, 0, 0, black) drawfillbox (460, 0, maxx, maxy, white) drawfillbox (0, 0, maxx, 100, red) % Pic.Draw (picID2, -10, 100, picCopy) % Pic.Draw (picID1, 490, 180, picMerge) end drawFight proc Food drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) var b : int := 0 var a : string := "" put "You decide to stay at the Arlor inn and eat" put "You ask the bar tender what they serve and he tells you the menu..." b := Rand.Int (1, 2) if b = 1 then put "A: Fresh Fish " put "B: Grilled Steak " put "C: Roasted mushrooms and cheese" put "What do You want ?" get a if a = "a" then put "You enjoy your meal and restore your health by 3 and magic by 3" hp := hp + 3 mp := mp + 3 elsif a = "b" then put "you enjoy your meal and restore your health by 4 and magic by 2" hp := hp + 4 mp := mp + 2 else put "you enjoy your meal and restore your health by 2 and magic by 4" hp := hp + 2 mp := mp + 4 end if else put "A: Chiken Soup " put "B: Meat Pie " put "C: Roasted Pig " get a if a = "a" then put "You enjoy your meal and restore your health by 3 and magic by 3" hp := hp + 3 mp := mp + 3 elsif a = "b" then put "you enjoy your meal and restore your health by 4 and magic by 2" hp := hp + 4 mp := mp + 2 else put "you enjoy your meal and restore your health by 2 and magic by 4" hp := hp + 2 mp := mp + 4 end if end if end Food proc GameDice drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) var sumE, deal, sumU : int := 0 var d : string := "" % PIc if weap > 0 or arm > 0 then put "This is the game of dice, its very easy to understand: " put "Each player rolls three 20 sided dice and whoever gets " put "thigher numbers winns." delay (2000) put "You roll first ..." delay (1000) for i : 1 .. 3 % Add up the elements of Dice put "You rolled : ", Dice (i) sumU := sumU + Dice (i) end for put "You rolled a total of = ", sumU put "Your opponent Rolls..." delay (1000) %PIc for i : 1 .. 3 % Add up the elements of Dice Dice (i) := Rand.Int (1, 20) end for for i : 1 .. 3 % Add up the elements of Dice put "Opponent rolled : ", Dice (i) sumE := sumE + Dice (i) end for put "Opponent Rolled a Total of = ", sumE delay (2000) if sumU > sumE then put "You Won The Round!" put "You Get Your Choice of Item." delay (1000) put "These are The items Avalable" deal := Rand.Int (1, 3) if deal = 1 then put "Will you take the broadsword (b) or ogres gauntlets (o)" get d if d = "b" then put "The broadsword is yours." weap := 3 else put "The gauntlets are yours." arm := 2 end if elsif deal = 2 then put "Will you take the Poisoned dagger (p) or Holy Splint Mail (h)" get d if d = "p" then put "The Dagger is yours." weap := 4 else put "The Holy Splint Mail is yours " arm := 5 end if else put "Will you take the Saber (s) or Mages Robe (m)" get d if d = "s" then put "The Saber is yours." weap := 2 else put "The Robe is yours." arm := arm + 1 end if end if delay (2000) elsif sumU < sumE then if weap = 0 then put "Ha Ha You lost your armor" arm := 0 elsif arm = 0 then put "Ha Ha You lost your weapon" weap := 0 else put "What will you give away your weapon(w) or your armor(a)?" get d if d = "w" then put "Ha! Ha! you lost your weapon" weap := 0 else put "Ha! Ha! you lost your armor" arm := 0 end if delay (2000) end if else put "We tied... Upsetting... Next!" delay (2000) end if else put "Bah! You cant play You got nothing to loose Get out'a 'ere" end if end GameDice proc wiz drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) put "You sit with the wizard and his apretice and start taling about " put "Different types of spells... as the night goes late the wizard says " put "That he has to go and take a nap but for making such good conversation " put "he gives you ..." var d := 0 d := Rand.Int (1, 2) if d = 1 then put "A potion of might + 10 health" hp := hp + 10 delay (1000) else put "A potion of Intelligence + 10 magic" mp := mp + 10 end if put "You thank Him for his gift and wish him good night." delay (1000) end wiz proc bards drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) put "You sit at a chair and listen to the bards soothing music" delay (1000) put "After a while you become invigorated and your sences are sharpend" put " +5 magic and +5 health." mp := mp + 5 hp := hp + 5 put "You compliment the bards for their magical songs and" put "leave a pouch of gold behind for them" delay (3000) end bards proc Hero drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) var x : string := "" put "You sit down with the heroes and listen to their adventures ... " put "after a while they ask you about what you are doing right now and" put "You tell them about how you are on a mission to destroy the necromancer" put "That threatens the land, They wish to join your good case and you agree " put "But then you remember that your teleport spell can only take one peron so" put "They decide to give you a special talisman that they have found on their" put "last adventure it gives you 10 extra magic or they will put an " put "enchantment on your weapon. " put "Which do you want the talisman(t) or the enchantment(e)" get x if x = "t" then put "You take the talisman and thank them for their generocity." else put "Which enchantment do you want ?" put "A: The Holy touch enchantment Which gives your weapon +1 damage and" put " which gives you + 2 health" put "B: The Spider Venom enchantment which gives your weapon + 1 damage" put " and gives you + 2 magic" put "C: The Abbysal Scream enchantment which give your weapon + 2 damage" get x if x = "a" then put "One of the heroes takes out magical ingridients and casts a spell over" put "Your weapon" weapbon := weapbon + 1 hp := hp + 2 good := good + 1 elsif x = "b" then put "One of the heroes takes out magical ingridients and casts a spell over" put "Your weapon" weapbon := weapbon + 1 mp := mp + 2 good := good + 1 evil := evil + 1 else put "One of the heroes takes out magical ingridients and casts a spell over" put "Your weapon" weapbon := weapbon + 2 evil := evil + 1 end if end if delay (3000) end Hero var za : int := 0 proc Bar if za = 1 then colourback (brightcyan) colour (blue) drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) put "As you died your soul was yanked out of your bodey and placed into enother" delay (100) put "You appeared at the foot steps of a mighty cloud city with golden spires and" delay (100) put "Unnaturally white walls. You see millions of winged people living within it " delay (100) put "and you wonder if this is heaven. Then a Small Wrinkled old man that has green" delay (100) put "skin and short stubby wings flies up to you and says:" delay (100) put "'Heh Heh Heh Died already little hero' He squeaks 'Well me and a coupla o my " delay (100) put "angel buddies had a bet on you and i bet that you would beat that old necro'" delay (100) put "'So i dont want to loose that bet... lets make a deal I will shove you back" delay (100) put "Into your world with a new life and all you have to do is kill the necro'" delay (100) put "He hastly adds 'or else you'll go to Abyss and serve a couple of eternities " delay (100) put "there." put "he doesn't wait for your answer, he points a finger at your heart and ..." delay (2000) else colourback (brightcyan) colour (blue) drawfillbox (0, 0, maxx, maxy, brightcyan) locate (1, 1) put "Before entering the Necromancers layer you decide to Rest at an inn" put "to which you can teleport to..." delay (1000) %PIc end if var b : string := "" delay (100) put "When you appear at the inns comfy surroundings you see Heroes talking about " put "their adventurers , Bards singing in the corner, people playing a " put "dice game and an old wizard talking to his young aprentice." put "What do you wish to do ?" put "(Remeber you only have time for 2 things you got to save the world and stuff)" put "" put "A: Sit and listen to the bards" delay (100) put "B: Eat at the tables" delay (100) put "C: Speak to the wizard and his apprentice." delay (100) put "D: Play the game of dice " delay (100) put "E: Talk with the adventurers " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "a" then bards elsif b = "b" then Food elsif b = "c" then wiz elsif b = "d" then GameDice else Hero end if drawfillbox (0, 0, maxx, maxy, brightcyan) put "You have time to do one more thing, what will it be?" if b = "a" then put "B: Eat at the tables" delay (100) put "C: Speak to the wizard and his apprentice." delay (100) put "D: Play the game of dice " delay (100) put "E: Talk with the adventurers " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "b" then Food elsif b = "c" then wiz elsif b = "d" then GameDice else Hero end if elsif b = "b" then put "A: Sit and listen to the bards" delay (100) put "C: Speak to the wizard and his apprentice." delay (100) put "D: Play the game of dice " delay (100) put "E: Talk with the adventurers " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "a" then bards elsif b = "c" then wiz elsif b = "d" then GameDice else Hero end if elsif b = "c" then put "A: Sit and listen to the bards" delay (100) put "B: Eat at the tables" delay (100) put "D: Play the game of dice " delay (100) put "E: Talk with the adventurers " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "a" then bards elsif b = "b" then Food elsif b = "d" then GameDice else Hero end if elsif b = "d" then put "A: Sit and listen to the bards" delay (100) put "B: Eat at the tables" delay (100) put "C: Speak to the wizard and his apprentice." delay (100) put "E: Talk with the adventurers " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "a" then bards elsif b = "b" then Food elsif b = "c" then wiz else Hero end if else put "A: Sit and listen to the bards" delay (100) put "B: Eat at the tables" delay (100) put "C: Speak to the wizard and his apprentice." delay (100) put "D: Play the game of dice " get b drawfillbox (0, 0, maxx, maxy, brightcyan) if b = "a" then bards elsif b = "b" then Food elsif b = "c" then wiz else GameDice end if end if delay (1000) drawfillbox (0, 0, maxx, maxy, brightcyan) put "You leave the bar refreshed and ready to beat the necromancers." delay (1000) %PIc colourback (black) colour (brightwhite) end Bar proc drawbackagain % if part = 1 then % Pic.Draw (picID, 0, 0, picCopy) % elsif part = 2 then % Pic.Draw (pic5, -35, -30, picCopy) % else % Pic.Draw (pic6, -35, -40, picCopy) % end if end drawbackagain proc playadeath if good < evil then drawfillbox (maxx, maxy, 0, 0, yellow) Font.Draw ("You died as a holy warrior", (maxx div 2) - 320, maxy div 2, font1, brightwhite) delay (200000) elsif good > evil then drawfillbox (maxx, maxy, 0, 0, red) Font.Draw ("You died as an evil warrior", (maxx div 2) - 320, maxy div 2, font1, brightred) delay (200000) else if za > 1 then drawfillbox (maxx, maxy, 0, 0, cyan) Font.Draw ("Welcome To Abyss", (maxx div 2) - 220, maxy div 2, font1, brightred) else drawfillbox (maxx, maxy, 0, 0, cyan) Font.Draw ("You didn't actually die...", (maxx div 2) - 320, maxy div 2, font1, brightred) za := za + 1 hp := 20 mp := 6 Bar end if end if if za = 0 or za > 1 then delay (200000) quit else part := 2 pxpos := 100 drawbackagain end if end playadeath proc endgood put "You have defeated the evil necromancer and rid the world of his undead army..." put "Now you will live your life as a poor goodly peasant in the middle of nowhere." put "Goodjob Idiot." end endgood proc endevil put "As you fought the necromancer and his minions you thought of how alike you are" put "When you defeated him you took his necromantic powers and got your own army of" put "Undead minions with which you took over the world. Good Job 'Hero'" end endevil proc endn put "When you defeat the evil necromancer a secret door opens into a room full of gold" put "and jewels. There are also four bisexual princeses living there ... " put "You live happily ever after. (Wink Wink Nudge Nudge Say no more Say no more)" end endn proc GoodOReviL if good > evil then endgood elsif good < evil then endevil else endn end if end GoodOReviL proc items var randi : int var ix, iy : int var wha : string := "" var item : int var cho : string randi := Rand.Int (1, 20) if randi + level >= 12 then if randi = randi then item := Rand.Int (1, 3) if item = 1 then wha := "weapon" elsif item = 2 then wha := "armor" elsif item = 3 then wha := "potion" end if end if if wha = "" then else if wha = "weapon" then randi := Rand.Int (1, 5) if randi = 1 then oldweap := weap if weap = 0 then put "you have found a longsword +1 damage!" delay (1000) drawbackagain weap := 1 else put "you have found a longsword +1 damage, will you switch this item with your previous weapon?" delay (1000) drawbackagain get wha if wha = "n" then weap := oldweap else weap := 1 end if end if elsif randi = 2 then oldweap := weap if weap = 0 then put "you have found a Greataxe + 2 damage!" delay (1000) drawbackagain weap := 2 else put "you have found a Greataxe + 2 damage, will you switch this item with your previous weapon?" delay (1000) drawbackagain get wha if wha = "n" then weap := oldweap else weap := 2 end if end if elsif randi = 3 then oldweap := weap if weap = 0 then put "you have found a longspear + 3 damage" delay (1000) drawbackagain weap := 3 else put "you have found a longspear + 3 damage, will you switch this item with your previous weapon?" delay (1000) drawbackagain get wha if wha = "n" then weap := oldweap else weap := 3 end if end if elsif randi = 4 then oldweap := weap if weap = 0 then put "you have found a runesword + 4 damage!" delay (1000) drawbackagain weap := 4 else put "you have found a runesword + 4 damage, will you switch this item with your previous weapon?" delay (1000) drawbackagain get wha if wha = "n" then weap := oldweap else weap := 4 end if end if else oldweap := weap if weap = 0 then put "you have found two schimatrs + 5 damage" delay (1000) drawbackagain weap := 5 else put "you have found two schimatrs + 5 damage, will you switch this item with your previous weapon?" delay (1000) drawbackagain get wha if wha = "n" then weap := oldweap else weap := 5 end if end if end if wha := "" elsif wha = "armor" then randi := Rand.Int (1, 5) if randi = 1 then oldarm := arm if arm = 0 then put "you have found hide armor -1 damage to yourself!" delay (1000) drawbackagain arm := 1 else put "you have found hidearmor -1 damage, will you switch this item with your armor?" delay (1000) drawbackagain get wha if wha = "n" then arm := oldarm else arm := 1 end if end if elsif randi = 2 then oldarm := arm if arm = 0 then put "you have found leather armor - 2 damage!" delay (1000) drawbackagain arm := 2 else put "you have found leather armor - 2 damage, will you switch this item with your armor?" delay (1000) drawbackagain get wha if wha = "n" then arm := oldarm else arm := 2 end if end if elsif randi = 3 then oldarm := arm if arm = 0 then put "you have found scale mail - 3 damage" delay (1000) drawbackagain arm := 3 else put "you have found scale mail - 3 damage, will you switch this item with your armor?" delay (1000) drawbackagain get wha if wha = "n" then arm := oldarm else arm := 3 end if end if elsif randi = 4 then oldarm := arm if arm = 0 then put "you have found half plate armor - 4 damage!" delay (1000) drawbackagain arm := 4 else put "you have found half plate armor - 4 damage, will you switch this item with your armor?" delay (1000) drawbackagain get wha if wha = "n" then arm := oldarm else arm := 4 end if end if else oldarm := arm if arm = 0 then put "you have found full plate armor - 5 damage" delay (1000) drawbackagain arm := 5 else put "you have found full plate armor - 5 damage, will you switch this item with your armor?" delay (1000) drawbackagain get wha if wha = "n" then arm := oldarm else arm := 5 end if end if end if wha := "" elsif wha = "potion" then randi := Rand.Int (1, 2) if randi = 1 then put "you got a health potion" delay (1000) drawbackagain hp := hp + 5 else put "you got a magic potion" delay (1000) drawbackagain mp := mp + 5 end if end if end if else wha := "" end if end items proc potions potRand := Rand.Int (1, 30) if potRand > 15 then p1x := pxpos + 50 p1y := pypos drawfilloval (p1x, p1y, 5, 5, red) elsif potRand < 15 then p2x := pxpos + 50 p2y := pypos drawfilloval (p2x, p2y, 5, 5, red) else end if end potions proc beatlvl if part = 3 then locate (1, 1) put "You Beat this mission!" delay (2000) drawfillbox (0, 0, maxx, maxy, green) color (brightred) GoodOReviL delay (200000) quit else end if end beatlvl proc lvlUp if level = 1 and Exp >= 100 then Exp := 0 level := level + 1 drawfillbox (0, 0, maxx, maxy, green) locate (maxrow div 2, maxcol div 2) put "You leveled up! You are now Level ", level delay (1000) drawFight mp := mp + 4 hp := 20 drawfillbox (0, 0, maxx, maxy, black) elsif level = 2 and Exp >= 120 then Exp := 0 level := level + 1 drawfillbox (0, 0, maxx, maxy, green) locate (maxrow div 2, maxcol div 2) put "You leveled up! You are now Level ", level delay (1000) drawFight mp := mp + 4 hp := 20 drawfillbox (0, 0, maxx, maxy, black) elsif level >= 3 and Exp >= 200 then Exp := 0 level := level + 1 drawfillbox (0, 0, maxx, maxy, green) locate (maxrow div 2, maxcol div 2 - 10) put "You leveled up! You are now Level ", level delay (1000) drawFight mp := mp + 4 hp := 20 drawfillbox (0, 0, maxx, maxy, black) end if end lvlUp proc enemydeath var agrajag : int if ehp = 0 or ehp < 0 then var getexp : int := 0 drawFight locate (maxrow, 1) if part = 1 then getexp := Rand.Int (10, 50) elsif part = 2 then getexp := Rand.Int (25, 65) end if items Exp := Exp + getexp put "You have defeated a necromnacer! You Get ", getexp, " Exp." delay (1000) score := score + 1 beatlvl lvlUp enemyx := enemyx + 100 % if part = 1 then % Pic.Draw (picID, 0, 0, picCopy) % elsif part = 2 then % Pic.Draw (pic5, -35, -30, picCopy) % else % Pic.Draw (pic6, -35, -40, picCopy) % end if if part = 1 then ehp := Rand.Int (5, 10) elsif part = 2 then ehp := Rand.Int (10, 18) end if agrajag := Rand.Int (1, 20) + level if agrajag + level >= 5 then potions end if turn := 1 drawfillbox (0, 0, maxx, maxy, black) end if end enemydeath proc bossdeath drawfillbox (0, 0, maxx, maxy, green) Font.Draw ("You Have Won!", (maxx div 2) - 220, maxy div 2, font1, 46) delay (2000) drawfillbox (0, 0, maxx, maxy, green) GoodOReviL delay (20000) quit end bossdeath proc holySmite mp := mp - 1 good := good + 1 drawFight locate (maxrow, 1) put "You cast holy smite!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 5 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Holy Smite!!!", (maxx div 2) - 220, maxy div 2, font1, 43) delay (1000) ehp := ehp div 2 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end holySmite proc mpUp drawFight good := good - 1 evil := evil - 1 locate (maxrow, 1) put "You cast Mage Strength!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 1 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Mage Strength!!!", (maxx div 2) - 220, maxy div 2, font1, 43) delay (1000) mp := mp + 5 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end mpUp proc lloth mp := mp - 3 drawFight evil := evil + 1 locate (maxrow, 1) put "You cast Lloths Wrath!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 5 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Lloths Wrath!!!", (maxx div 2) - 220, maxy div 2, font1, 43) delay (1000) ehp := ehp div 2 - 3 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end lloth proc godsWrath mp := mp - 2 drawFight good := good + 1 locate (maxrow, 1) put "You cast gods wrath!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 7 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Gods Wrath!!!", (maxx div 2) - 220, maxy div 2, font1, 34) delay (1000) ehp := ehp div ehp + 1 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end godsWrath proc windBlade mp := mp - 1 drawFight evil := evil - 1 good := good - 1 locate (maxrow, 1) put "You cast Wind Blade!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 1 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Wind Blade!!!", (maxx div 2) - 220, maxy div 2, font1, 47) put ehp ehp := ehp - 10 delay (1000) put ehp delay (1000) else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end windBlade proc flameBlade mp := mp - 1 drawFight good := good + 1 locate (maxrow, 1) put "You cast Flame Blade!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 5 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Flame Blade!!!", (maxx div 2) - 220, maxy div 2, font1, 44) delay (1000) ehp := ehp - 1 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end flameBlade proc shadowBlade mp := mp - 1 drawFight evil := evil + 1 locate (maxrow, 1) put "You cast Shadow Blade!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 5 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Shadow Blade!!!", (maxx div 2) - 220, maxy div 2, font1, 40) delay (1000) ehp := ehp - 1 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end shadowBlade proc purify mp := mp - 3 drawFight good := good + 1 locate (maxrow, 1) put "You cast purify!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 12 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Purify!!!", (maxx div 2) - 220, maxy div 2, font1, 68) delay (1000) ehp := 0 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end purify proc Drain mp := mp - 3 drawFight evil := evil + 1 locate (maxrow, 1) put "You cast Drain!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 12 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Drain!!!", (maxx div 2) - 220, maxy div 2, font1, 68) delay (1000) ehp := ehp - 5 hp := hp + 5 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end Drain proc lightning mp := mp - 3 drawFight good := good + 1 locate (maxrow, 1) put "You cast lightning!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 12 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Lightning!!!", (maxx div 2) - 220, maxy div 2, font1, 68) delay (1000) ehp := ehp - 7 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end lightning proc speed mp := mp - 4 drawFight evil := evil + 1 good := good + 1 locate (maxrow, 1) put "You cast speed!" delay (1000) hit := Rand.Int (1, 20) if (hit + level) >= 12 then locate (maxrow, 1) put "You Sucsessfully cast the spell!" Font.Draw ("!!!Speed!!!", (maxx div 2) - 220, maxy div 2, font1, cyan) delay (1000) ehp := (-10 + Rand.Int (7, 12)) hp := hp + level turn := 1 else locate (maxrow, 1) put "Omg you missed, You sore loser!" delay (1000) end if hit := 0 end speed proc magic if level = 1 and mp > 0 then drawFight locate (maxrow, 1) put "Holy smite (h), Shadow (s), Wind (w) or Flame Blade (f) " get choice if choice = "h" then holySmite elsif choice = "s" then shadowBlade elsif choice = "w" then windBlade elsif choice = "f" then flameBlade else holySmite end if elsif level = 2 and mp > 0 then if good > evil then drawFight locate (maxrow, 1) put "Spells Avalable : Holy Smite (H) 1 MP , Gods Wrath (G) 2 MP , purify (P) ." get choice if choice = "h" or choice = "H" then holySmite elsif choice = "g" then godsWrath elsif choice = "p" then purify end if elsif good < evil then drawFight locate (maxrow, 1) put "Spells Avalable : shadow blade (S) 1 MP, Lloth Wrath (L) 3 MP, Drain (D) 3 MP." get choice if choice = "s" or choice = "S" then shadowBlade elsif choice = "l" then lloth elsif choice = "d" then Drain end if else drawFight locate (maxrow, 1) put "Spells Avalable : Wind Blade (w) 1 MP , Speed (s) 4 MP , MpUp (m) 0 MP." get choice if choice = "w" or choice = "W" then windBlade elsif choice = "s" then speed elsif choice = "m" then mpUp end if end if elsif level > 2 and mp > 0 then if good > evil then drawFight locate (maxrow, 1) put "Spells Avalable : Holy Smite (H) 1 MP , Lightning (L) 2 MP , purify (P)." get choice if choice = "h" or choice = "H" then holySmite elsif choice = "l" then lightning elsif choice = "p" then purify end if elsif good < evil then drawFight locate (maxrow, 1) put "Spells Avalable : shadow blade (S) 1 MP, Lloth Wrath (L) 3 MP, Drain (D) 3 MP." get choice if choice = "s" or choice = "S" then shadowBlade elsif choice = "l" then lloth elsif choice = "d" then Drain end if else drawFight locate (maxrow, 1) put "Spells Avalable : Wind Blade (w) 1 MP , Speed (s) 4 MP , MpUp (m) 0 MP." get choice if choice = "w" or choice = "W" then windBlade elsif choice = "s" then speed elsif choice = "m" then mpUp end if end if else if good > evil then drawFight locate (maxrow, 1) put "Spells Avalable : Holy Smite (H) 1 MP , Lightning (L) 2 MP , purify (P)." get choice if choice = "h" or choice = "H" then holySmite elsif choice = "l" then lightning elsif choice = "p" then purify end if elsif good < evil then drawFight locate (maxrow, 1) put "Spells Avalable : shadow blade (S) 1 MP, Lloth Wrath (L) 3 MP, Drain (D) 3 MP." get choice if choice = "s" or choice = "S" then shadowBlade elsif choice = "l" then lloth elsif choice = "d" then Drain end if else drawFight locate (maxrow, 1) put "Spells Avalable : Wind Blade (w) 1 MP , Speed (s) 4 MP , MpUp (m) 0 MP." get choice if choice = "w" or choice = "W" then windBlade elsif choice = "s" then speed elsif choice = "m" then mpUp end if end if end if end magic proc enemyfight if part = 1 then drawFight Font.Draw ("Enemy Turn", (maxx div 2) - 155, maxy div 2, font1, brightgreen) delay (1000) drawFight turn := 1 drawfillbox (0, 0, maxx, 100, red) locate (maxrow, 1) put "Enemy Attacks!" %sp delay (1000) hit := (Rand.Int (1, 20)) - level if hit > 9 + (level div 2) then Font.Draw ("!!!HIT!!!", (maxx div 2) - 125, maxy div 2, font1, brightred) delay (1000) drawFight locate (maxrow, 1) hp := hp - (Rand.Int (5, 6) - arm) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) if hp <= 0 then playadeath if za = 1 then ehp := 0 end if end if else Font.Draw ("!!!MISS!!!", (maxx div 2) - 145, maxy div 2, font1, brightblue) delay (1000) drawFight locate (maxrow, 1) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) end if elsif part = 2 then drawFight Font.Draw ("Enemy Turn", (maxx div 2) - 155, maxy div 2, font1, brightgreen) delay (1000) drawFight turn := 1 drawfillbox (0, 0, maxx, 100, red) locate (maxrow, 1) put "Enemy Attacks!" %sp delay (1000) hit := (Rand.Int (1, 20)) - level if hit > 7 + (level div 2) then Font.Draw ("!!!HIT!!!", (maxx div 2) - 125, maxy div 2, font1, brightred) delay (1000) drawFight locate (maxrow, 1) hp := hp - (Rand.Int (5, 8) - arm) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) if hp <= 0 then playadeath if za = 1 then ehp := 0 end if end if else Font.Draw ("!!!MISS!!!", (maxx div 2) - 145, maxy div 2, font1, brightblue) delay (1000) drawFight locate (maxrow, 1) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) end if elsif part = 3 then drawFight Font.Draw ("Enemy Turn", (maxx div 2) - 155, maxy div 2, font1, brightgreen) delay (1000) drawFight turn := 1 drawfillbox (0, 0, maxx, 100, red) locate (maxrow, 1) put "Enemy Attacks!" %bp delay (1000) hit := (Rand.Int (5, 20)) - level if hit > 9 + (level div 2) then Font.Draw ("!!!HIT!!!", (maxx div 2) - 125, maxy div 2, font1, brightred) delay (1000) drawFight locate (maxrow, 1) hp := hp - (Rand.Int (5, 10) - arm) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) if hp <= 0 then playadeath if za = 1 then ehp := 0 end if end if else Font.Draw ("!!!MISS!!!", (maxx div 2) - 145, maxy div 2, font1, brightblue) delay (1000) drawFight locate (maxrow, 1) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) end if end if if hp <= 0 then playadeath end if end enemyfight proc fight loop if hasch then getch (ch) else exit end if end loop loop drawFight if turn = 1 then Font.Draw ("Player Turn", (maxx div 2) - 155, maxy div 2, font1, brightpurple) delay (1000) drawFight turn := 2 locate (maxrow, 1) put "Will you attack (a), heal (h) or cast a spell (s)?" get ch32 drawfillbox (0, 0, maxx, 100, red) if ch32 = "a" then %mm hit := (Rand.Int (1, 20)) + level if (hit + (level div 2)) > 9 then drawFight Font.Draw ("!!!HIT!!!", (maxx div 2) - 125, maxy div 2, font1, brightred) delay (1000) drawFight locate (maxrow, 1) ehp := ehp - level - 2 - weap - weapbon put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) if ehp <= 0 and part = 1 then enemydeath delay (1000) turn := 1 exit elsif ehp <= 0 and part <= 2 then enemydeath delay (1000) turn := 1 exit elsif ehp <= 0 and part = 3 then bossdeath delay (1000) turn := 1 exit end if else drawFight Font.Draw ("!!!MISS!!!", (maxx div 2) - 145, maxy div 2, font1, brightblue) delay (1000) drawFight locate (maxrow, 1) put " Your HP : ", hp, " Enemy Hp : ", ehp delay (1400) end if elsif ch32 = "h" then Font.Draw ("!!!HEAL!!!", (maxx div 2) - 145, maxy div 2, font1, yellow) var H : int := 0 if level = 1 then H := Rand.Int (1, 4) elsif level = 2 then H := Rand.Int (2, 8) elsif level = 3 then H := Rand.Int (4, 16) else H := Rand.Int (8, 20) end if locate (maxrow, 1) hp := hp + H + level put "You Heal for ", H, " HP!" delay (1000) H := 0 elsif ch32 = "s" then if mp <= 0 then locate (maxrow, 1) put "You dont have enough manna to cast the spell!" delay (1000) else magic %enemydeath var agrajag : int if trued = true then var getexp : int := 0 drawFight locate (maxrow, 1) if part = 1 then getexp := Rand.Int (10, 50) elsif part = 2 then getexp := Rand.Int (25, 65) end if items Exp := Exp + getexp put "You have defeated a necromnacer! You Get ", getexp, " Exp." delay (1000) score := score + 1 beatlvl lvlUp enemyx := enemyx + 100 % if part = 1 then % Pic.Draw (picID, 0, 0, picCopy) % elsif part = 2 then % Pic.Draw (pic5, -35, -30, picCopy) % else % Pic.Draw (pic6, -35, -40, picCopy) % end if if part = 1 then ehp := Rand.Int (5, 10) elsif part = 2 then ehp := Rand.Int (10, 18) end if agrajag := Rand.Int (1, 20) + level if agrajag >= 8 then potions end if turn := 1 drawfillbox (0, 0, maxx, maxy, black) exit else end if end if else locate (maxrow, 1) put "Your stupidity lost you a turn!" delay (1000) end if elsif turn = 2 then enemyfight end if end loop end fight proc enemy1 %Pic.Draw (picID1, 490, 200, picMerge) end enemy1 proc fightscreen drawFight colourback (red) if level = 1 then enemy1 fight else enemy1 fight end if end fightscreen proc drawEnemy if part = 1 then drawfillbox (enemyx, enemyy, enemyx + 10, enemyy + 20, red) drawfillbox (enemyx, enemyy + 19, enemyx + 10, enemyy + 15, brightred) drawfillbox (enemyx, enemyy, enemyx + 10, enemyy + 8, brown) elsif part = 2 then drawfillbox (enemyx, enemyy, enemyx + 10, enemyy + 20, blue) drawfillbox (enemyx, enemyy + 19, enemyx + 10, enemyy + 15, brightblue) drawfillbox (enemyx, enemyy, enemyx + 10, enemyy + 8, purple) elsif part = 3 then drawfillbox (enemyx, enemyy, enemyx + 40, enemyy + 50, green) drawfillbox (enemyx, enemyy + 19, enemyx + 40, enemyy + 45, brightgreen) drawfillbox (enemyx, enemyy, enemyx + 40, enemyy + 38, brown) drawfilloval (enemyx + 5, enemyy + 10, bs, bs, black) drawfillbox (enemyx + 36, enemyy, enemyx + 20, enemyy + 40, blue) drawfilloval (enemyx + 13, enemyy + 10, bs, bs - 3, black) drawfilloval (enemyx + 40, enemyy + 20, bs + 7, bs + 13, blue) drawfillbox (enemyx + 55, enemyy, enemyx + 30, enemyy + 15, blue) drawfillbox (enemyx + 40, enemyy + 5, enemyx + 25, enemyy + 35, brightblue) drawfilloval (enemyx + 20, enemyy + 27, bs + 2, bs + 6, brown) drawfilloval (enemyx + 10, enemyy + 30, bs, bs - 2, purple) drawfilloval (enemyx + 10, enemyy + 30, bs - 3, bs - 6, brightpurple) ehp := 30 end if end drawEnemy proc drawPlayer if good = evil then drawfilloval (pxpos, pypos, bs, bs, pclr) drawline (pxpos, pypos, pxpos + 15, pypos + 7, brightcyan) drawfilloval (pxpos + 3, pypos + 2, bs - 3, bs - 5, brightgreen) drawfilloval (pxpos - 2, pypos - 2, bs - 3, bs - 3, yellow) drawfilloval (pxpos - 2, pypos - 2, bs - 5, bs - 5, cyan) elsif good > evil then drawfilloval (pxpos, pypos, bs, bs, pclr) drawline (pxpos, pypos, pxpos + 15, pypos + 7, brightblue) drawfilloval (pxpos + 3, pypos + 2, bs - 3, bs - 5, brightgreen) drawfilloval (pxpos - 2, pypos - 2, bs - 3, bs - 3, green) drawfilloval (pxpos - 2, pypos - 2, bs - 5, bs - 5, blue) else drawfilloval (pxpos, pypos, bs, bs, pclr) drawline (pxpos, pypos, pxpos + 15, pypos + 7, brightred) drawfilloval (pxpos + 3, pypos + 2, bs - 3, bs - 5, red) drawfilloval (pxpos - 2, pypos - 2, bs - 3, bs - 3, brightred) drawfilloval (pxpos - 2, pypos - 2, bs - 5, bs - 5, yellow) end if end drawPlayer proc enemytest if pxpos = enemyx - 10 then drawfillbox (3, 3, maxx - 3, maxy - 3, brightred) Font.Draw ("!!!FIGHT!!!", (maxx div 2) - 145, maxy div 2, font1, brightblue) delay (2000) fightscreen end if end enemytest proc enemy drawEnemy end enemy proc part2 font1 := Font.New ("serif:37") if part = 2 then drawfillbox (0, 0, maxx, maxy, 100) Font.Draw ("You have entered the dungeons.", (maxx div 2) - 310, maxy div 2, font1, brightblue) font1 := Font.New ("serif:52") delay (1500) drawfillbox (0, 0, maxx, maxy, black) %Pic.Draw (pic5, -35, -30, picCopy) enemyx := 200 enemyy := 135 enemy elsif part = 3 then drawfillbox (0, 0, maxx, maxy, 99) Font.Draw ("!!Boss Fight!!", (maxx div 2) - 155, maxy div 2, font1, blue) delay (1500) drawfillbox (0, 0, maxx, maxy, black) %Pic.Draw (pic6, -35, -40, picCopy) enemyx := 400 enemyy := 135 enemy font1 := Font.New ("serif:52") end if end part2 proc pmove (ch : string (1)) |