# spell ! This Location contains the meat of what each spell does to the PC, NPCs, and the environment. Mana costs are handled elsewhere. ! This location should not be called directly. Should only be called through the "castSpell" location. ! $ARGS[0] = the name of the spell being cast ! $ARGS[1] = Spell Success value ! 2 = Critical Success -> You can make something extra specail happen ! 1 = Success -> Normal spell effects ! 0 = Failure -> Spell doesn''t work, probably just fizzles out ! -1 = Critical Failure -> Spell backfires. Something bad (not terrible) should happen ! $ARGS[n >= 2] = Any extra parameters needed by the spell SuccessValue = $ARGS[1] if $ARGS[0] = 'teleport': ! Do the stuff of a Teleport ! ARGS[1] = Success/Failure level ! ARGS[2] = the Target Location $NewLocation = $ARGS[2] :RandLocLoop $randomLoc = $tpLocations[rand(0,arrsize($tpLocations) - 1)] if $randomLoc = $NewLocation or $randomLoc = $EntryPoint: jump 'RandLocLoop' end if SuccessValue > 0: *nl "The blur you see just outside the ring seems to shift." wait 1000 if $treeCircArg[$NewLocation] = "": gt $treeCircLoc[$NewLocation] else gt $treeCircLoc[$NewLocation], $treeCircArg[$NewLocation] end elseif SuccessValue < 0: *nl "The blur you see just outside the ring seems to shift. Something did not go right!" wait 1000 if $treeCircArg[$randomLoc] = "": gt $treeCircLoc[$randomLoc] else gt $treeCircLoc[$randomLoc], $treeCircArg[$randomLoc] end else 'You feel drained, but the energy fizzles out and nothing happens' end killvar '$randomLoc' killvar '$NewLocation' result = "" end if $ARGS[0] = 'regenerate': if SuccessValue > 0: ! How much health is gained per minute regenVal = 5 * SuccessValue ! Immediate health gain pcs_health += regenVal ! If Regenerate is already running, we only extend. regenArrIdx = arrpos('$spellTimeName','regenerate') if regenArrIdx > -1: ! if it''s found, then update only spellComplete[regenArrIdx] = totminut + 120 $spellCompExec[regenArrIdx] = 'pcs_health += (5 * <>)' $spellTickExec[regenArrIdx] = 'pcs_health += <>' else ! Add Timer: ! spellName = 'regenerate' ! duration = 120 ! CompCode = 'pcs_health += (5 * <>)' ! TickCode = 'pcs_health += <>' gs 'spellTimer', 'add', 'regenerate', 120, 'pcs_health += (5 * <>)', 'pcs_health += <>' end 'Your body surges with life. You feel better already.' killvar 'regenVal' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'painblock': if SuccessValue > 0: pain['killer'] += 1 'Your pain recedes into a dull throb.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'reset': cla !Create mist 'Accumulated mana <> units.' act 'Absorb accumulated mana': cla *clr pcs_mana = pcs_mana + manaReset manaReset = 0 xgt'fight','sta' end act 'Physical attacks':gt'boxing' if pcs_magik > 0: act 'Magic attacks':gt'magik' end end if $ARGS[0] = 'unmat': cla !Create mist 'You can become incorporeal at 30 moves, in exchange for 3000 Forces units Rikudo. This part of the power will be lost to you forever when you cast.' 'Do not allow to pass through the materiality of the body is not getting any impact damage, while slightly reduced longevity spells.' if rikudo >= 3000: act 'Become a disembodied': cla *clr unmaterial = 31 rikudo = rikudo + 3000 manaReset = 0 xgt'fight','sta' end elseif rikudo < 3000: 'You have too little power Rikudo for this spell.' end act 'Physical attacks':gt'boxing' if pcs_magik > 0: act 'Magic attacks':gt'magik' end end if $ARGS[0] = 'fog': ! tuman = the amount of fog around you making you harder to hit ! tumanV = the amount of fog around your opponent making him harder to hit if tumanV > 0: 'It is not possible to call your fog when an existing opponent is already fogged.' else if SuccessValue > 0: tuman += (10 * SuccessValue) 'A Fog materializes around, obscuring you from your enemies.' elseif SuccessValue < 0: tumanV += 10 'The spell backfires! A Fog materializes around your enemy, obscuring him from your view.' else 'The spell fizzles. Nothing seems to happen.' end end end if $ARGS[0] = 'clone': ! klon = the number of clones that the enemy must destroy before hitting you if SuccessValue > 0: klon += SuccessValue '<> clone<1,"s","")>> of you springs from you confusing the enemy.' elseif SuccessValue < 0 and klon > 0: klon -= 1 'The spell backfires! One of your clones disappears.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'stun': ! stunner = 1 stuns the enemy for 3-6 rounds if SuccessValue > 0: stunner = 1 'Your enemy is stunned.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atak','player' end if $ARGS[0] = 'weapon': if SuccessValue > 0: magweapbonus = weapbonus * 4 * SuccessValue 'Your Weapon now feels more powerful.' elseif SuccessValue < 0: magweapbonus = weapbonus * -1 'The spell backfires! Your weapon seems weaker.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atak','player' end if $ARGS[0] = 'wind': ! tuman = the amount of fog around you making you harder to hit ! tumanV = the amount of fog around your opponent making him harder to hit if SuccessValue = 2: tumanV = 0 'A wind blows through the area eliminating your enemys fog from the battlefield.' elseif SuccessValue = 1: tumanV = 0 tuman = 0 'A wind blows through the area eliminating all fog on the battlefield.' elseif SuccessValue = -1: tuman = 0 'A wind blows through the area eliminating your fog from the battlefield.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'multiclone': ! klon = the number of clones that the enemy must destroy before hitting you if SuccessValue > 0: klon += SuccessValue * 3 '<> clone<1,"s","")>> of you springs from you confusing the enemy.' elseif SuccessValue < 0 and klon > 0: if klon < 3: klon = 0 else klon -= 3 end 'The spell backfires! Some of your clones disappear.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'energo': ! defence = absorbs damage before health begins to be removed if SuccessValue > 0: defence += (100 * SuccessValue) 'An energy shield materializes around you, protecting you from your enemies.' elseif SuccessValue < 0: defenceV += 100 'The spell backfires! An energy shield materializes around your enemy, protecting him from you.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'haste': if SuccessValue > 0: initBonus += (120 * SuccessValue) 'Your mind and body seem to race though a sluggish world.' elseif SuccessValue < 0: initBonusV += 120 'The spell backfires! Your enemy seems to move faster.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'heal': if SuccessValue > 0: pcs_health += (400 * SuccessValue) 'Your body surges with life. You feel much stronger.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'hand': if SuccessValue > 0: strenK = pcs_stren*20*SuccessValue/100 magweapbonus = RAND(pcs_stren*10 - strenK,pcs_stren*10 + strenK) 'Your hands now feel more powerful.' elseif SuccessValue < 0: strenK = pcs_stren*20/100 magweapbonus = 0 - RAND(pcs_stren*10 - strenK,pcs_stren*10 + strenK) 'The spell backfires! Your hands seem weaker.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atak','player' end if $ARGS[0] = 'scaldingtouch': if SuccessValue > 0: damTip = 250 * SuccessValue 'Flames spring from your hands.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'burninghands': if SuccessValue > 0: damTip = 2500 * SuccessValue 'A torrent of flames jets from your hands.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'firebarrier': if SuccessValue > 0: defence += (750 * SuccessValue) 'A flaming barrier has sprung up between you and your opponent. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 750 'The spell backfires! A flaming barrier has sprung up between you and your opponent. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'firestorm': if SuccessValue > 0: damTip = 4250 + (2000 * SuccessValue) bonusSh = 100 'Uncountable glowing embers steak down upon your foes.' elseif SuccessValue < 0: damTip = 2000 pcs_health -= 200 bonusSh = 100 'The spell backfires! Uncountable glowing embers steak down upon the battlefield burning everyone.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'flameshield': if SuccessValue > 0: defence += (2500 * SuccessValue) 'A Shield made of Flames interposes itself between you and your enemy. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 2500 'The spell backfires! A Shield made of Flames interposes itself between you and your enemy. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'shock': if SuccessValue > 0: damTip = (150 * SuccessValue) eleSh = 1 'You build a static electric charge in your hand and zap your opponent.' elseif SuccessValue < 0: pcs_health -= 50 'The spell backfires! You manage to zap yourself with a static charge.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'lightning': if SuccessValue > 0: damTip = (1500 * SuccessValue) eleSh = 1 'You shoot a lightning bolt from your hand zapping your opponent.' elseif SuccessValue < 0: pcs_health -= 300 'The spell backfires! You manage to zap yourself with lightning.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'electricbarrier': if SuccessValue > 0: defence += (1500 * SuccessValue) 'A wall of dancing lightning springs up around yourself. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 1500 'The spell backfires! A wall of dancing lightning springs up around your enemy. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = '1000birds': if SuccessValue > 0: damTip = 2750 + (1000 * SuccessValue) bonusSh = 30 eleSh = 1 'You shoot hundreds of small lightning bolts toward your enemy.' elseif SuccessValue < 0: damTip = 2000 pcs_health -= 200 bonusSh = 30 eleSh = 1 'The spell backfires! Hundreds of small lightning bolts curl toward the battlefield shocking everyone.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'dancingsphere': if SuccessValue > 0: defence += (5000 * SuccessValue) 'A large field of lightning dances around you blocking attacks. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 5000 'The spell backfires! A large field of lightning dances around you blocking attacks. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'quicksand': if SuccessValue > 0: damTip = 100 * SuccessValue eleSh = 5 'You have trapped your opponent in quicksand.' elseif SuccessValue < 0: damTip = 100 pcs_health -= 50 eleSh = 5 'The spell backfires! You are both trapped in quicksand.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'earthshield': if SuccessValue > 0: defence += 1500 + (1000 * SuccessValue) defenceM += 2500 defenceActPar = 1000 defenceActParM = 1000 defenceAct = 10 defenceActM = 10 'Tendrils of Earth rise to defend you. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 2500 'The spell backfires! Tendrils of Earth rise to defend your enemy. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'abyss': if SuccessValue > 0: damTip = 1500 * SuccessValue eleSh = 5 'The Earth opens up beneath your opponents feet, slamming shut damaging him and depriving him of the ability to move.' elseif SuccessValue < 0: damTip = 1500 pcs_health -= 200 eleSh = 5 'The spell backfires! The Earth opens up beneath your opponents feet, slamming shut damaging him and depriving him of the ability to move. You are also caught.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'earthguardian': if SuccessValue > 0: defence += 5200 + (2000 * SuccessValue) defenceM += 6250 defenceW += 6250 defenceActPar = 1000 defenceActParM = 1000 defenceActParW = 1000 defenceAct = 15 defenceActM = 15 defenceActW = 15 defAtk = 15 'The Earth itself comes alive defending you from attacks. It draws from the power of the land to regenerate itself every round. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 2500 'The spell backfires! Tendrils of Earth rise to defend your enemy. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'sando': if SuccessValue > 0: damTip = 3000 + (2000 * SuccessValue) bonusSh = 50 eleSh = 5 'Two huge plates of earth colapse together crushing the enemy and depriving him of the ability to move.' elseif SuccessValue < 0: pcs_health -= 200 'The spell backfires! Two huge plates of earth colapse together with crushing force, but the enemy is missed and you are instead caught.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'windgust': if SuccessValue > 0: damTip = 100 * SuccessValue bonusSh = 50 'You have created a gust of wind.' if klonV > 0:klonV = 0 & 'Enemy clones are vaporized.' if tumanV > 0:tumanV = 0 & 'Enemy Fog is torn to shreds by the wind.' elseif SuccessValue < 0: pcs_health -= 50 'The spell backfires! You have created a gust of wind, but the enemy is missed and you are instead caught.' if klon > 0:klon = 0 & 'Your clones are vaporized.' if tuman > 0:tuman = 0 & 'Your Fog is torn to shreds by the wind.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'pressure': if SuccessValue > 0: damTip = 1000 * SuccessValue bonusSh = 100 'You dramatically raised the air pressure.' if klonV > 0:klonV = 0 & 'Enemy clones are vaporized.' if tumanV > 0:tumanV = 0 & 'Enemy Fog is torn to shreds by the wind.' elseif SuccessValue < 0: pcs_health -= 200 'The spell backfires! You dramatically raised the air pressure, but the enemy is missed and you are instead caught.' if klon > 0:klon = 0 & 'Your clones are vaporized.' if tuman > 0:tuman = 0 & 'Your Fog is torn to shreds by the wind.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'vacuum': if SuccessValue > 0: defence += (1500 * SuccessValue) 'A turbulent sphere of vacuum surrounds you blocking incoming attacks. You now have <> protection units.' elseif SuccessValue < 0: defenceV += 1500 'The spell backfires! A turbulent sphere of vacuum surrounds your enemy blocking your attacks. Your enemy now has <> protection units.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'vacuumshells': if SuccessValue > 0: damTip = 2500 * SuccessValue bonusSh = 100 'Turbulent spheres of vacuum bombard your enemy. The air is full of whistling sounds as the spheres fly by at high speeds over the battlefield.' if klonV > 0:klonV = 0 & 'Enemy clones are vaporized.' if tumanV > 0:tumanV = 0 & 'Enemy Fog is torn to shreds by the wind.' elseif SuccessValue < 0: pcs_health -= 200 'The spell backfires! Turbulent spheres of vacuum bombard your enemy. The air is full of whistling sounds as the spheres fly by at high speeds over the battlefield, but the enemy is missed and you are instead caught.' if klon > 0:klon = 0 & 'Your clones are vaporized.' if tuman > 0:tuman = 0 & 'Your Fog is torn to shreds by the wind.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'devouringvacuum': if SuccessValue > 0: defenceV = 0 defenceMV = 0 defenceWV = 0 defenceActParV = 0 defenceActParMV = 0 defenceActV = 0 defenceActMV = 0 defAtkMV = 0 'A devouring vacuum sucks away your enemys defenses.' elseif SuccessValue < 0: defence = 0 defenceM = 0 defenceW = 0 defenceActPar = 0 defenceActParM = 0 defenceAct = 0 defenceActM = 0 defAtkM = 0 'The spell backfires! A devouring vacuum sucks away your defenses.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'leechmana': if SuccessValue > 0: damTip = 100 * SuccessValue damTipM = 1000 'You leech mana from your enemy.' elseif SuccessValue < 0: pcs_health -= 50 'The spell backfires! Ouch!' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'flood': if SuccessValue > 0: damTip = 1000 * SuccessValue damTipM = 500 'A surge of water rises towards your enemy.' elseif SuccessValue < 0: pcs_health -= 100 'The spell backfires! A surge of water rises towards your enemy, but missed and hits you.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'blister': if SuccessValue > 0: defence += 1500 defenceM += 1500 defenceW += 1500 defenceActPar = 500 defenceActParM = 500 defenceAct = 10 defenceActM = 10 'A protective sphere of water surrounds you.' elseif SuccessValue < 0: defenceV += 1500 'The spell backfires! A protective sphere of water surrounds your enemy.' else 'The spell fizzles. Nothing seems to happen.' end end if $ARGS[0] = 'sharkrockets': if SuccessValue > 0: damTip = 1500 * SuccessValue damTipM = 2500 bonusSh = 50 'Blobs of Water shaped like sharks fly towards your enemy stiking them.' if klonV > 0:klonV = 0 & 'Enemy clones are eliminated.' elseif SuccessValue < 0: pcs_health -= 100 'The spell backfires! Blobs of Water shaped like sharks fly towards your enemy, but missed and hits you.' if klon > 0:klon = 0 & 'Your clones are eliminated.' else 'The spell fizzles. Nothing seems to happen.' end xgt'atakA','atak' end if $ARGS[0] = 'greatflood': if SuccessValue > 0: defence += 5000 defenceM += 5000 defenceW += 5000 defenceActPar = 500 defenceActParM = 500 defenceAct = 10 defenceActM = 10 defAtkM = 10 'You have filled the whole neighborhood with water protecting you and devouring enemy mana.' if klonV > 0:klonV = 0 & 'Clones enemy disappeared.' elseif SuccessValue < 0: defenceV += 1500 'The spell backfires! A huge flood of water surrounds your enemy protecting him.' if klon > 0:klon = 0 & 'Clones enemy disappeared.' else 'The spell fizzles. Nothing seems to happen.' end end killvar 'SuccessValue' --- spell ---------------------------------