#Library "SpellLib" #include "zcommon.acs" #define NULLSTR 0 #define SKILL_EXTREME 5 #define SKILL_HORRIBLE 6 #define SKILL_IMPOSSIBLE 7 #define SKILL_OMEGA 8 /* Script Reference Used Tags and Scripts Thing Tags: 1-999 - Assume used in standard levels 1000 - Friendly Monsters 1001 - The Main Player [set "Player1TID" to this or whatever ID you plan to use if you decide to change it] // 1002-1014 - Temporary ThingIDs 1123 - Main Sauron Eye's TID [Boss Lifemeters] 1124 - Sauravatar's TID [Boss Lifemeters] 1222 - General Demonic Boss TIDs 1537 - TID for Seed Spawn system 1501 Main Player's Tension Aura 1502 Main Player's Tension Aura Light 2001 - Spawned Spell Projectiles start with this TID 4443 - Final TID for Healing Projectiles 4444 - Spawned Spell Projectiles ultimately end up with this TID */ /* HudMessage ID Tags: 1 - HP Gained/Lost [for damage counts] 2 - YOU DIED text 3 - Tunnel Vision Display [death] 4 - Tunnel Vision Display [badly injured and/or dead] ... 106-108 - Bonus Text ... 111 - Reserved? [TCOTD:A uses it for Note displays. :V] ... 196 - Debug Display for Lifebars 197 - Level Display for Lifebars 198 - Name of Creature for Lifebars 199 - HP/MaxHP display for Lifebars 201 - Actor Lifebar [Frame] 202-302 - Lifebar Notches [100 total] ... 901 - Main List for Armor Display Menu 902 - Top Line for Armor Display Menu 903 - Armor Icon 904 - Background Tint for Menus/Armor-Display ... // MENU SYSTEM 1000-2000 - General Reserved for Menu System --NAMED Scripts and their functions--: ["CENTRALSCRIPTOFEVERYTHING"] - ******MANDATORY****** Check Player Stuff Consistantly And Startup Stats. ******MANDATORY****** ["DMV"] - ***DEBUG*** Prints out or changes the number for the "MiscellaneousVars[#]" vars. ["GiveStats"] - ***DEBUG*** Cheat to set stats ("pukename GiveStats [type] [value]") ["EXPCheat"] - ***DEBUG*** Adds EXP equal to the Amount Inputted ("Pukename EXPCheat [number of experience to add] [EXP type] [EXP Increment Type]" in console) ***DEBUG*** ["TestHudSize"] - ***DEBUG*** Used for testing SetHudSize customization in-game. ["TestHudAlign"] - ***DEBUG*** Used for testing coordinate/alignments on specific "HudMessage" usages in-game. ["BuffTimer"] - ***DEBUG*** Gives a specific buff/debuff for x amount of seconds. ["PrintArmorValues"] - ***DEBUG*** Debugging for Printing Armor Amounts on Screen ***DEBUG*** ["SetManaAmount"] - ***DEBUG*** Sets Mana to the Current Amount (in console) ***DEBUG*** ["DamagePrintout"] - ***DEBUG*** Prints out damage on screen for a projectile attached to this script ***DEBUG*** ["SetLevelCap"] - ***DEBUG*** Set Levelcap Manually ***DEBUG*** ["SetTensionLevel"] - Sets Tension level to the specfied amount ["DV1M04-Music1"] - ***EVENT*** Changes Music for Entering the Fishmouth Temple in MAP04 [DVI-DS] or MAP12 [DVII-DS] ***EVENT*** ["DVI-M02EyeDead"] - ***EVENT*** Killed MAP02 Eye [DVI-DS] / MAP12 First Eye [DVII-DS] ***EVENT*** ["DV1-M04Eye1Dead"] - ***EVENT*** Killed MAP04 Eye #1 [DVI-DS] / MAP12 Second Eye [DVII-DS] ***EVENT*** ["DV1-M04Eye2Dead"] - ***EVENT*** Killed MAP04 Eye #2 [DVI-DS] / MAP12 Third Eye [DVII-DS] ***EVENT*** ["DVI-M04MonsterTags"] - ***EVENT*** Makes Monsters in MAP04 [DVI-DS] or MAP12 [DVII-DS] have a TID of 666 ***EVENT*** ["DVI-MainEyeDeath1"] - ***EVENT*** Killed MAP04 Main Eye [DVI-DS] / MAP12 Fourth Eye [DVII-DS] ***EVENT*** ["DVI-MainEyeDeath2"] - ***EVENT*** Defines the Buildup to Sauravatar's appearance [DVI-DS & DVII-DS] ***EVENT*** ["DVI-AwakenSauravatar"] - ***EVENT*** Awakens the Stone Cyberdemon that becomes Sauravatar [DVI-DS & DVII-DS] ***EVENT*** {"UnsetFishmouthMusic"} - ***LINETRIGGER-EVENT*** Changes Music back when exiting the Fishmouth Temple in MAP04 [DVI-DS] or MAP12 [DVII-DS] ***LINETRIGGER-EVENT*** {"SetFishmouthMusic"} - ***LINETRIGGER-EVENT*** Changes Music for Entering the Fishmouth Temple in MAP04 [DVI-DS] or MAP12 [DVII-DS] ***LINETRIGGER-EVENT*** ["SauravatarDeath"] - ***EVENT*** Sauravatar's Death [DVI-DS specific version] ***EVENT*** ["Initializer"] - Exp Table Setup (& Initial Startup Process [added for DVI/DVII-DS]) ["CreateTranslationTables"] - Color Translation Tables **new for DV-DS and beyond** ["HUDDisplay"] - HUD Display ["DamageDisplays"] - Controls DamageIndicators for Non-Players ["DoomMonsterDeathEmulation"] - Emulates the various special scripts in Doom 1/2 mode [E1M8, MAP07, etc] ["LifebarDisplayClientSide"] - Controls Lifebar Displays [CLIENTSIDE only] ["LifebarOptionChecker"] - Event Linked to call "LifebarDisplayClientSide" Event ["TunnelVisionControl"] - Red Tunnel Vision/Heartbeat Effect when badly injured ["DeathTunnelVision"] - (related to the tunnel vision effect in death >.>) ["CalculateSpellBaseAngles"] - Works for auto-determining spreads for Glyph-type spells and Raging Spirits [for now] ["MagicEffects"] - Spell Effects ["AeonPointKey"] - Overall Aeon Point Handling [combines three once seperated scripts] ["ShowArmorStats"] - Shows Stats for Armor items ["ChangeArmorPage"] - Test Script for Toggling pages for armor display lists ["SpellSelection"] - Spell Selection ["SpellQuickAssign"] - Spell Readying ["SpellCasting"] - Spell Casting ["SetSauravatarHealth"] - Configures the full max health of the Sauravatar and sets it to its proper Health to start the fight [DVI-DS & DVII-DS] ["WeaponAngleLoop"] - For the Sceptre's Spin Attack & HellCore Weapons (used as a replacement for uservars in weapons) ["WeaponAngleLoopSecondary"] - For the Sceptre's Spin Attack & HellCore Weapons [secondary level] (used as a replacement for uservars in weapons) ["HellcoreFireMode"] - Determines the mode selected for a Hellcore weapon using multiple types of attacks ["CheckPlayerIfDead"] - Used with Sauron Items and Flora's unique armor to prevent an endless repeat of their 'equipped' sounds if a player dies [due to changes made to support death-exit options] ["StartTensionCountDown"] - When an attack or a healing ability is activated while Tension is active, starts the countdown for it to fade. ["UseWhistle"] - Activate's the player's whistle ability, which will awaken as many monsters as possible in a certain area ["CheckCharacterClass"] - Returns the Character ID // Petra Specific Scripts ["CheckAChristinaCheck"] - Script that checks when certain keys are pressed while Alexandra Christina is selected. (Dodge, Bouncing Beams, Heel Kick, Reloading) // Scripts imported from others [and possibly modified] //****************************************************************** //*Ryan Cordell, SolarSnowfall, HotWax, and Kate's FootSteps System* //****************************************************************** ["FootSteps_PlayerEntersLevel"] - Activates SoundTables, GetVelocity & DoTheMaths on Level Start ["FootSteps_PlayerRespawning"] - Activates SoundTables, GetVelocity & DoTheMaths on Player Respawn ["FootSteps_GetVelocity"] - Gets Player's Movement for footstep assessment ["FootSteps_DoTheMaths"] - Does most of the heavy lifting for calculations on the footsteps script. ["FootSteps_SoundTables"] - Used for determining what flat-groups make specific sound-sets play. ["FootSteps_PlayerDeath"] - UnSets the Main Scripts //**************************************************************************************************************************************** //*KeksDose's Dash/Air-Dash System [used also in "The Trailblazer" by PillowBlaster @ http://forum.zdoom.org/viewtopic.php?f=19&t=47494 ]* //**************************************************************************************************************************************** ["KD-SideDodge"] - The Main Script that keeps things in check. ["KD-ResurrectSideDodge"] - Holds the previous script in reserve for temporary deaths [maybe? o.o] ["KD-ReactivateSideDodge"] - Reenables the Dash if a player resurrects. */ // TODO: Reduce # of Global Vars >________>; [stupid 64 global var limit] // Global Vars NOT YET USED AT ALL [31/64] //------------------------------------- /* global int 0:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [TCOTD:A's MAP01 uses it for the Siren Timer (sirentimer[] array)] global int 24:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [TUTNT'S TNT03A1 uses it (g_lightval)] --- [TUTNT'S TNT03A2 uses it (g_lightval)] global int 25:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V global int 32:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V global int 56:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [KDIZD'S intermap.acs uses it (g_ms[] array)] global int 57:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [KDIZD'S intermap.acs uses it (g_ps[] array)] global int 58:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [KDIZD'S intermap.acs uses it (secretmap)] global int 59:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [KDIZD'S intermap.acs uses it (globalinit)] global int 60:?; // RESERVED FOR MOD GLOBAL VAR USAGE. :V --- [KDIZD'S intermap.acs uses it (locations)] */ // global int 11:?; // global int 13:?; // global int 14:?; // global int 15:?; // global int 17:?; // global int 20:?; // global int 35:?; // global int 36:?; // global int 39:?; // global int 40:?; // global int 42:?; // global int 43:?; // global int 44:?; // global int 47:?; // global int 48:?; // global int 49:?; // global int 52:?; // global int 53:?; // global int 63:?; // Global Vars NOT used by SBARINFO/other lumps //----------------------------------------------------------------------------- global int 1:Player1TID; // global int 2:CurrentMana; global int 3:MaxMana; global int 4:PlayerLevel; global int 5:SelectedSpell; global int 6:ReadiedSpells[]; global int 7:DVDSSpecialArrayValue[]; // [0] = 0 = "Conscious", 1> = "Unconscious" [negates regeneration, focus, tension, prevents dashing] // [1] = Sets MP/Mana to 0 then unsets itself // [2] = Sets Stamina to 0 then unsets itself // [3] = Unloved Specific - Makes Hellcore Weapons drop 4x more often, etc :o // [4] = TCOTD:A Specific // [5] = Circus2 Specific // [6] = Make HUD invisible [for TITLEMAPs or KDIZD's INTER usage] // [7] = Make HUD visible again // [8] = Remove all weapons [TITLEMAPs] // [9] = Full Freeze [Prevents Dashing] // [10] = KDIZD Specific // [11] = TUTNT Specific global int 8:MaxHealthTrue; global int 9:Experience; global int 10:ExpTable[]; // Note To Self: NECESSARY TO BE "GLOBAL INT" TO RUN WITH HUB-BASED LEVELS LIKE IN HEXEN OR STRIFE, MISFIT YOU DINGUS-FACE. :V global int 12:ModType; // 0 = "Normal" Doom 1/2/Heretic/Hexen/Strife // 1 = Deus Vult // 2 = Deus Vult 2 // Powerup Timers [moved to global to allow timers to transition between levels] global int 16:PowerupTimer[]; // [0] - Light // [1] - Invisibility // [2] - Flight // [3] - Stealth // [4] - Invulnerability // [5] - Time Freeze // [6] - Fear/Terror Aura // [7] - Divine Avatar // [8] - Spreader Aura Lv. 1 // [9] - Spreader Aura Lv. 2 // [10] - Oomph [aka Bikill] (2x damage, up to +8% crit rate) // [11] - Buff (2x defense, up to +10% survival rate, 2x balance) // [12] - Accelerate (1.33x Speed, up to +10% evade rate, 1.25x jumping) // [13] - Blunt (0.5x damage, down to -8% crit rate) [not implemented yet] // [14] - Sap (0.5x defense, down to -10% survival rate, 0.75x balance) [not implemented yet] // [15] - Decelerate (0.66x Speed, down to -10% evade rate, 0.875x jumping) [not implemented yet] // [16] - Poison (HP/Health is damaged every so many tics, down to as low as 1 [cannot kill the player]) [not implemented yet] // [17] - Corrosion (AP/Armor is damaged every so many tics, down to as low as 0) [not implemented yet] // [18] - Fatigue (HP/Mana/Stamina Regeneration and Hellcore Cooldown are drastically reduced in speed) [not implemented yet] // [19] - Blind (exactly as on the tin :V) [not implemented yet] // [20] - Sleep (can't move, see or perform actions, 1.25x more damage from attacks, however HP/MP/Stamina regeneration rates are 5x) [not implemented yet] // [21] - Silence/Mute (spells are locked out) [not implemented yet] // [22] - RadSuit (mostly a proper timer for the radsuit) // [23] - Berserk (mostly a proper timer for the berserk powerup) // [129] - ?????? global int 18:MiscFixedVars[]; // ***ARRAY*** For various permenant fixed-point vars in scripts // [1] HUD X Position #1 [Debugger, for easily setting coordinates with HUD testing] // [2] HUD Y Position #1 [Debugger, for easily setting coordinates with HUD testing // [3] HUD X Position #2 [Debugger, for easily setting coordinates with HUD testing // [4] HUD Y Position #2 [Debugger, for easily setting coordinates with HUD testing // [5] HUD X Position #3 [Debugger, for easily setting coordinates with HUD testing // [6] HUD Y Position #3 [Debugger, for easily setting coordinates with HUD testing // [7] HUD X Position #4 [Debugger, for easily setting coordinates with HUD testing // [8] HUD Y Position #4 [Debugger, for easily setting coordinates with HUD testing // [9] HUD X Position #5 [Debugger, for easily setting coordinates with HUD testing // [10] HUD Y Position #5 [Debugger, for easily setting coordinates with HUD testing // [11] HUD X Position #6 [Debugger, for easily setting coordinates with HUD testing // [12] HUD Y Position #6 [Debugger, for easily setting coordinates with HUD testing // [13] HUD X Position #7 [Debugger, for easily setting coordinates with HUD testing // [14] HUD Y Position #7 [Debugger, for easily setting coordinates with HUD testing // [15] HUD X Position #8 [Debugger, for easily setting coordinates with HUD testing // [16] HUD Y Position #8 [Debugger, for easily setting coordinates with HUD testing // [17] HUD X Position #9 [Debugger, for easily setting coordinates with HUD testing // [18] HUD Y Position #9 [Debugger, for easily setting coordinates with HUD testing // [19] HUD X Position #10 [Debugger, for easily setting coordinates with HUD testing // [20] HUD Y Position #10 [Debugger, for easily setting coordinates with HUD testing // [21-100] are unused for now :V // [101] Invisibility Pulse Level // Hellcore Energy and Heating global int 19:HellcoreOverheatLevel; // Every 1% is times 25 tics [1 tics of time equals 4 units] global int 21:MiscellaneousVars[]; // ***ARRAY*** For various permenant vars in scripts [AKA THIS IS THE BIG VAR ARRAY OF THIS ACS SCRIPT] // [0] is ? // [1] is for Artificial Map Inflation (EXP) [Percentile] [to increase/decrease the difficulty of levels by a % of maps] // [2] is for Artificial Map Inflation (Stats) [Percentile] [to increase/decrease the difficulty of levels by a % of maps] // [3] is for Artificial Map Inflation (Spawn/Stealth) [Percentile] [to increase/decrease the difficulty of levels by a % of maps] // [4] is for checking if the player is Fully Frozen [cutscenes, etc] // [5] is for Artificial Map Inflation (OVERALL) [Percentile] [to increase/decrease the difficulty of levels by a % of maps] // [6] is the Fygg Drop Identification number (out of [7]) // [7] is the highest number for the Fygg chance drop // [8] is Stamina Ratio display [for HUDs, 5 units in [xxx.xx] format]] // [9] is for the category of spells you're using [for revised Spell Selecting] // [10] is for the subspell within the current category of spells you're using [for revised Spell Selecting] // [11] is for weapon slot being used [for HUD] // [12] is for the death time counter, to fade the screen to blackish-red when the player dies. // [13] is the count of times to try to reset the fade if a resurrect is used. // [14] is for if Divine Avatar was acquired via a spell cast [instead of a Divination Sphere], so MP costs are changed accordingly // [15] Invisibility "Level" [for defensive calculations] // [16 to 19] are unused for now :V // [20] is the timer for the spinning attack [for weapon checks] // [21] is current Stamina points // [22] is maximum Stamina points // [23] is a character's 'Evasion' chance [out of 100.0%] // [24] is for the menu position for using Aeon Points [0 = No Selection, 1 = Agility, 2 = Defense, 3 = Deftness, 4 = Sorcery, 5 = Strength, 6 = Therapeusis] // [25] is for the number of unused Aeon Points [extra points to allocate to stats] // [26] is the Fygg limit [skill dependant] // [27] is for the number of Fyggs found [limit is skill dependant] // [28] is for the Seed of Skill limit amount [to be used in more than one script] // [29] is for the Seed limit amount [to be used in more than one script] // [30] is for the total number of seeds of types 31-36 carried by your character [to enforce a limit of seeds found in the game to prevent total game breakage] // [31] is for the number of Seeds of Agility carried by your character [Speed/Jumping Strength] // [32] is for the number of Seeds of Defense carried by your character [Overall Defense] // [33] is for the number of Seeds of Deftness carried by your character [EXP Gains] // [34] is for the number of Seeds of Sorcery carried by your character [Magic Damage] // [35] is for the number of Seeds of Strength carried by your character [Overall Damage] // [36] is for the number of Seeds of Therapeusis carried by your character [Magic Defense] // [37] is for the number of Seeds of Skill carried by your character [will raise a random type [31-36] by one seed level, even if you have reached your seed limit] // [38] is for the number of Seeds of Life carried by your character [HP Increases] // [39] is for the number of Seeds of Magic carried by your character [MP Increases] // [40] is total number of perks towards "Higher Learning" // [41] is "StaminaPercentFull" // [42] is the # of Aeon Pts Spent on PERKS // [43] is the # of Aeon Pts Spent on STATS // [44] is for holding a temp "cost" of refunded Aeon Points on cooldown [you get back a % immediately, the rest gradually return after a set time] // [45] is the cooldown delay for how long it takes to respec after doing it once // [46] is stamina penalty base time // [47] is for 'stepping' [converted from a global var] // [48] is for Rapid Cast Delay [via ZScript] // [49] is # of kills w/ Hell Warrior Shield weapon // [50] is the Spell-Use Cooldown Timer [possible for future version so spells aren't always tied to how fast you can mash the 'cast spell' buttons :P] // [51] is for Combo "Rank" [D to S] // [52] is for Artificial Map Inflation (EXP) [to increase/decrease the difficulty of levels by a number of maps] // [53] is for Artificial Map Inflation (Stats) [to increase/decrease the difficulty of levels by a number of maps] // [54] is for Artificial Map Inflation (Spawn/Stealth) [to increase/decrease the difficulty of levels by a number of maps] // [55] is the Weapon Page number // [56] is the total number of items so far // [57] is how many Aeon Points are given from items found so far // [58] is how many Aeon Points should be given TOTAL from items found so far // [59] is how many Aeon Points are given from secrets found so far // [60] is how many Aeon Points should be given TOTAL from secrets found so far // [61] is how many Aeon Points are given from kills so far // [62] is how many Aeon Points should be given TOTAL from kills made so far // [63] is the total number of kills so far // [64] is the total number of secrets found so far // [65] is the main storage value for a character's JumpZ height. // [66] is storage for the level-based multiplier for JumpZ height. // [67] is storage for the AGLSeed-based multiplier for JumpZ height. // [68] is storage for bonuses/penalities from armor or other items for JumpZ height. // [69] is storage for Sceptre for JumpZ height. // [70] is storage for the Spell# under the "Offense" spell category // [71] is storage for the Spell# under the "Restorative" spell category // [72] is storage for the Spell# under the "Status" spell category // [73] is storage for the Spell# under the "Conjure" spell category // [74] is storage for a temporary var for helping in-game determination of X-coordinates // [75] is storage for a temporary var for helping in-game determination of Y-coordinates // [76] is storage for a temporary var for helping in-game determination of misc elements 1 // [77] is storage for a temporary var for helping in-game determination of misc elements 2 // [78] is storage for a temporary var for helping in-game determination of misc elements 3 // [79] is storage for a temporary var for helping in-game determination of misc elements 4 // [80] is the number of backpacks grabbed. // [81] is the Player's XPos [for locking player during menu freezes] // [82] is the Player's YPos [for locking player during menu freezes] // [83] is the Player's ZPos [for locking player during menu freezes] // [84] is undefined // [85] is DashDelay // [86] is storage for Aeon Points Multiplier [Menu CVar] // [87] is storage for Seed Multiplier [Menu CVar] // [88] is storage for SceptreXP Multiplier [Menu CVar] // [89] is storage for Shield Uncurse Rate [Menu CVar] // [90] is storage for Base EXP Multiplier [Menu CVar] // [91] is max dash timer // [92] is Heal Item Just Used Timer // [93] is Mana Item Just Used Timer // [94] is Stamina Item Just Used Timer // [95] is Hellcore Item Just Used Timer // [96] is the Current Level of the Imp's Soul // [97] is the Current Level of the Dark Imp's Soul // [98] is the Current Level of the Cacodemon's Soul // [99] is the Current Level of the Cacolantern's Soul // [100] is the Current Level of the Abaddon's Soul // [101] is the Current Level of the Hell Knight's Soul // [102] is the Current Level of the Baron of Hell's Soul // [103] is the Current Level of the Belphegor's Soul // [104] is the Current Level of the Bruiser Demon's Soul // [105] is the Current Level of the Archon of Hell's Soul // [106] is the Current Level of the Pyro Demon's Soul // [107] is the Current Level of the Death Incarnate's Soul // [108] is the Current Level of the Archvile's Soul // [109] is the Current Level of the Diabloist's Soul // [110] is the Current Level of the Flying Balrog's Soul // [111] is the Current Level of the Hades Elemental's Soul [?] // [112] is the Current Level of the Hades Overlord's Soul [?] // [113] is the Previous Level of the Imp's Soul // [114] is the Previous Level of the Dark Imp's Soul // [115] is the Previous Level of the Cacodemon's Soul // [116] is the Previous Level of the Cacolantern's Soul // [117] is the Previous Level of the Abaddon's Soul // [118] is the Previous Level of the Hell Knight's Soul // [119] is the Previous Level of the Baron of Hell's Soul // [120] is the Previous Level of the Belphegor's Soul // [121] is the Previous Level of the Bruiser Demon's Soul // [122] is the Previous Level of the Archon of Hell's Soul // [123] is the Previous Level of the Pyro Demon's Soul // [124] is the Previous Level of the Death Incarnate's Soul // [125] is the Previous Level of the Archvile's Soul // [126] is the Previous Level of the Diabloist's Soul // [127] is the Previous Level of the Flying Balrog's Soul // [128] is the Previous Level of the Hades Elemental's Soul [?] // [129] is the Previous Level of the Hades Overlord's Soul [?] // [130] is storage for Hellcore Heat Rate [Menu CVar] // [131] is storage for Hellcore Cool Rate [Menu CVar] // [132] is the Current Mode for the Bruiser Demon's Soul [0 = Spread Wave, 1 = Larger Fireball, 2 = Ground Wave] // [133] is the Current Mode for the Archon of Hell's Soul [0 = Three-Shot Spread, 1 = Seven-Shot Spread, 2 = Comet Blast] // [134] is the Current Mode for the Pyro Demon's Soul [0 = FireShot Wave, 1 = PyroBall, 2 = Firebomb, 3 = Teleport Explosions] // [135] is the Current Mode for the Diabloist's Soul [0 = Gravity Glare, 1 = Immolation Glare, 2 = Fireblast Volley, 3 = Ground Snakes] // [136] is Buff Timer Overlay Position [for Portraits] // [137] is Buff Timer Overlay Transperancy Timer [for Portraits] // [138] is Buff Timer Overlay Type [for Portraits] // [139] is Buff Type to show [for portraits] // [140] is storage for Starting Sceptre Level [Menu CVar] // [141] is unused // [142] is EXP Combo Color Flash Timer // [143] is for how far along the degeneration timer is. // [144] is the base degeneration interval for the character // [145] is the Night Vision Eyeglow Pulse timer [portraits] // [146] is Level Stat Multiplier [Menu CVar] // [147] is the Fear/Terror Aura frame timer [portraits] // [148] is other Stats starting factor [Menu CVar] // [149] checks if health is 0 after an initial start [for certain situations done by wads like resurgance >___>;] // [150] saves armor bits #1 [any character] // [151] save weapon bits #1 [any character] // [152] stored Bullets [for Deg/Illu for Forced Pistol Restarts] // [153] stored Shells [for Deg/Illu for Forced Pistol Restarts] // [154] stored Rockets [for Deg/Illu for Forced Pistol Restarts] // [155] stored Cells [for Deg/Illu for Forced Pistol Restarts] // [156] stored Arrows [for Flora for Forced Pistol Restarts] // [157] EXP Combo Timer // [158] EXP Combo Kills // [159] Combo Multiplier // [160] Combo EXP Total // [161] Exp Combo Timer Multiplier // [162] Combo Timer Delay // [163] Secondary Spinning Timer // [164] 5x Stamina Limit // [165] True Stamina Gain/Cost // [166] Dash Timer // [167] Total Monsters Killed by the Player // [168] Whistle Cooldown Timer // [169] is for Artificial Map Inflation (OVERALL) [to increase/decrease the difficulty of levels by a number of maps] // [170] Toggle HUD reference image on or off. // [171] Indicates the player just leveled up [for the new hud] and is the time for the "Level Up!!" and "Stat Up" indicator[s] // [172] Used for the "glow/fade" of the "Level Up" and "Stat Up" indicators // [173] Shows "HealthDifference" in the new HUD for Player's "Damage/Healing" bursts. // [174] Shows "HealthDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [175] Shows "NewHealthValue" in the new HUD for the Player's "Damage/Healing" bursts. // [176] Shows "ArmorDifference" in the new HUD for Player's "Damage/Healing" bursts. // [177] Shows "ArmorDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [178] Shows "NewArmorValue" in the new HUD for the Player's "Damage/Healing" bursts. // [179] Shows "You Died" animation after dying... :V // [180] is for level up dialogue timer // [181] Tension Level // [182] Tension Level Compare // [183] Tension Timer // [184] Tension Timer Counts Down // [185] Tension Warmup Meter [you must hold down for this long for tension to go up a level] // [186] Tension Cooldown Timer [when Tension levels change, or run out, this decides how long to wait before you can do so again] // [187] Crit Display Timer // [188] Tension Max Cooldown Timer [for bar displays] // [189] Tension Sound Charge Loop Timer // [190] Active-Tension Pulse Timer // [191] Saves Minigun heat divisor // [192] Railgun Charge Level [%] // [193] Tension Speed Central Multiplier [CVAR] // [194] Mercy Invincibility "Flag" // [195] Mercy Invincibility Timer // [196] Mercy Invincibility 'Modulus/Remainder' // [197] Aeon Point Start Level (based on the menu option) // [198] Sceptre EXP Fragments [out of 100] - For twirling with the staff without hitting enemies to slowly increment exp. // [199] Very-First-Run // [200] Player's Jump Height // [201] Player's Balance [or Mass] - for various abilities that make it harder to toss a character around by increasing their mass // [202] # of Uncurse Points for when holding the Ruinous Shield - For Determining how many points is needed to turn the Ruinous Shield into the Divine Shield. // [203] Sceptre EXP Fragments [out of 16] - For whiffing with the staff without hitting enemies to slowly increment exp. // [204] # of Aeon Points gained during a level up [for displays] // [205] # of Agility Points gained during a level up [for displays] // [206] # of Defense Points gained during a level up [for displays] // [207] # of Deftness Points gained during a level up [for displays] // [208] # of Sorcery Points gained during a level up [for displays] // [209] # of Strength Points gained during a level up [for displays] // [210] # of Therapeusis Points gained during a level up [for displays] // [211] Current Value of Mana Regen Timer // [212] 'Focus' is in use? // [213] # of Backpacks [for death-exit checks] // [214] # of Medicinal Herbs [for death-exit checks] // [215] # of Strong Medicinal Herbs [for death-exit checks] // [216] # of Special Medicinal Herbs [for death-exit checks] // [217] # of Yggdrasil Dews [for death-exit checks] // [218] # of Paxa Punches [for death-exit checks] // [219] # of Lesser Vimstones [for death-exit checks] // [220] # of Greater Vimstones [for death-exit checks] // [221] # of Mercury Bandanas [for death-exit checks] // [222] # of TOTAL Max HP gained during multiple level ups [for displays] // [223] # of TOTAL Max MP gained during multiple level ups [for displays] // [224] # of TOTAL Aeon Points gained during multiple level ups [for displays] // [225] # of TOTAL Agility Points gained during multiple level ups [for displays] // [226] # of TOTAL Defense Points gained during multiple level ups [for displays] // [227] # of TOTAL Deftness Points gained during multiple level ups [for displays] // [228] # of TOTAL Sorcery Points gained during multiple level ups [for displays] // [229] # of TOTAL Strength Points gained during multiple level ups [for displays] // [230] # of TOTAL Therapeusis Points gained during multiple level ups [for displays] // [231] Focus Timer // [232] [*HUD usage*] Full Survival Amount # [before being rounded down to a whole number] // [233] [*HUD usage*] Full Armor Absorbsion # [before being rounded down to a whole number] // [234] heal value to store for heal messages // [235] [*HUD usage*] Critical Hit Rate % // [236] Shows "ManaDifference" in the new HUD for Player's "Damage/Healing" bursts. // [237] Shows "ManaDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [238] Shows "NewManaValue" in the new HUD for the Player's "Damage/Healing" bursts. // [241] Shows "LastHealthValue" in the new HUD for the Player's "Damage/Healing" bursts. // [242] Shows "LastArmorValue" in the new HUD for the Player's "Damage/Healing" bursts. // [243] Shows "LastManaValue" in the new HUD for the Player's "Damage/Healing" bursts. // [244] [*HUD usage*] Checks for if the player can use the Sceptre's Spin Attack // [245 - 247] are undefined // [248] Blind Duration Timer [time elasped, NOT remaining, for making characters give off reaction sounds when Blinded] // [249] Sleep Duration Timer [time elasped, NOT remaining, for making characters give off reaction sounds when Sleep'd] // [250] Tension Duration Timer // [251] Tension OverPsyche Timer [Current] // [252] stored GoldWandAmmo [for Flora for Forced Pistol Restarts] // [253] stored CrossbowAmmo [for Flora for Forced Pistol Restarts] // [254] stored BlasterAmmo [for Flora for Forced Pistol Restarts] // [255] stored SkullRodAmmo [for Flora for Forced Pistol Restarts] // [256] stored PhoenixRodAmmo [for Flora for Forced Pistol Restarts] // [257] stored MaceAmmo [for Flora for Forced Pistol Restarts] // [258] # of Miracle Potions [for death-exit checks] // [259] **Playing DeathKings? // [260] is truehealvalue // [261] Tension OverPsyche Timer [Max] // [262] [*HUD usage*] Tension Duration Timer [Max] // [263] saves armor bits #2 [any character] // [264] save weapon bits #2 [any character] // [265] saves armor bits #3 [any character] // [266] save weapon bits #3 [any character] // [267] is the Current Mode for the Hades Elemental's Soul // [268] is the Current Mode for the Hades Overlord's Soul // [269] Global Value to hold the maximum Uncurse Pts needed. // [270] Seal/Silence Duration Timer [time elasped, NOT remaining, for making characters give off reaction sounds when Silenced] // [271] Saves player's XVel when using the menus // [272] Saves player's YVel when using the menus // [273] Saves player's ZVel when using the menus // [274] Checks for if the player can use the Sceptre's Overhead Smash Attack [for future versions] // [275] is storage for the tic add for MP Regen Bonus/Penalty from a spell cast // [276] is lowest accumulation for MP Regen Penalty Time from a spell cast // [277 to 279] are undefined so far :P // [280] is storage for Base Perk Cost Multiplier [Menu CVar] // [281] Minor Healing [Min] Value // [282] Minor Healing [Max] Value // [283] Healing [Min] Value // [284] Healing [Max] Value // [285] Major Healing [Min] Value // [286] Major Healing [Max] Value // [287] # of Magic Waters [for death-exit checks] // [288] # of Sage Elixirs [for death-exit checks] // [289] # of Elfin Elixirs [for death-exit checks] // [290] # of Monster Munchies' [for death-exit checks] // [291 to 297] are undefined so far :P // [298] Initial Max HP [for Strife mode to help calculate extra Sigil damage] // [299] Checks Ascendant Entity Kill Count // [300] is undefined // [301] Total Sceptre EXP Required for Level 1 // [302] Total Sceptre EXP Required for Level 2 // [303] Total Sceptre EXP Required for Level 3 // [304] Total Sceptre EXP Required for Level 4 // [305] Total Sceptre EXP Required for Level 5 // [306] Total Sceptre EXP Required for Level 6 // [307] Total Sceptre EXP Required for Level 7 // [308] Total Sceptre EXP Required for Level 8 // [309] Total Sceptre EXP Required for Level 9 // [310] Total Sceptre EXP Required for Level 10 // [311] Total Sceptre EXP Required for Level 11 // [312] Total Sceptre EXP Required for Level 12 // [313] Total Sceptre EXP Required for Level 13 // [314] Total Sceptre EXP Required for Level 14 // [315] Total Sceptre EXP Required for Level 15 // [316] Total Sceptre EXP Required for Level 16 // [317] [STRIFE-Compatibility] Times "Stamina Upgraded" // [318] [STRIFE-Compatibility] Times "Accuracy Upgraded" // [319 to 320] are undefined so far :P // [321] Minor Healing [Min] Stamina Value // [322] Minor Healing [Max] Stamina Value // [323] Minor Healing [Cap] Stamina Value // [324] Healing [Min] Stamina Value // [325] Healing [Max] Stamina Value // [326] Healing [Cap] Stamina Value // [327] Major Healing [Min] Stamina Value // [328] Major Healing [Max] Stamina Value // [329] Major Healing [Cap] Stamina Value // [330 to 396] are undefined so far :P // [397] Value for SceptreShieldLevel [for speed/movement calculations when using Sceptre's Shield] // [398] Value for BowLevel [for speed/movement calculations when drawing/priming Diaris Longbow] // [399 to 400] are undefined so far :P // [401] # of RockBomb Shards [for death-exit checks] // [402 to 410] are undefined so far :P // [411] [*HUD usage*] Check for Slot 1 Weapons // [412] [*HUD usage*] Check for Slot 2 Weapons // [413] [*HUD usage*] Check for Slot 3 Weapons // [414] [*HUD usage*] Check for Slot 4 Weapons // [415] [*HUD usage*] Check for Slot 5 Weapons // [416] [*HUD usage*] Check for Slot 6 Weapons // [417] [*HUD usage*] Check for Slot 7 Weapons // [418] [*HUD usage*] Check for Slot 8 Weapons // [419] [*HUD usage*] Check for Slot 9 Weapons // [420] [*HUD usage*] Check for Slot 0 Weapons // [421 to 444] are undefined so far :P // [445] ticresetinterval // [446] ticresetinterval2 // [447] ticresetinterval3 // [448] is Curse Transperancy Timer [for Portraits] // [449] is Curse Outline Timer [for Portraits] // [450] is Curse Overlay Timer [for Portraits] // [451] is Poison Overlay Timer [for Portraits] // [452] is Poison Alpha Timer [for Portraits] // [453] is Tension Fire Timer [for Portraits] // [454] is Tension Glow Portrait Timer [for Portraits] // [455] is Berserk Vein Timer [for Portraits] // [456] is Divine Avatar Glow Timer [for Portraits] // [457] is Spread Aura Pulse Timer [for Portraits] // [458] is Blindness Timer [for Portraits] // [459 to 554] are undefined so far :P // [555] Gets spell cost into a global array [if needed to give it back for a failed summon/etc :V] // [556 to 630] are undefined so far :P // [631] is for the number of Seeds of Agility carried by your character [Speed/Jumping Strength] [for resetting stats] // [632] is for the number of Seeds of Defense carried by your character [Overall Defense] [for resetting stats] // [633] is for the number of Seeds of Deftness carried by your character [EXP Gains] [for resetting stats] // [634] is for the number of Seeds of Sorcery carried by your character [Magic Damage] [for resetting stats] // [635] is for the number of Seeds of Strength carried by your character [Overall Damage] [for resetting stats] // [636] is for the number of Seeds of Therapeusis carried by your character [Magic Defense] [for resetting stats] // [637] is dashcooldown // [638] is dashstamina // [639] is candash // [640 to 999] are undefined so far :P // [1000] is Number of Maps Visited // [1001 to 1998] are undefined so far :P // [1501] Misc Var #1 // [1502] Misc Var #2 // [1503] Misc Var #3 // [1504] Misc Var #4 // [1505] Misc Var #5 // [1506] Misc Var #6 // [1507] Misc Var #7 // [1508] Misc Var #8 // [1509] Misc Var #9 // [1510] Misc Var #10 // [1511 - 1999] are undefined // [2000] HUD mod toggle >.> // [2001] HUD X Size // [2002] HUD Y Size // [2003] HP "Critical" Glow Timer // [2004] MP "Focus" Glow Timer // [2005] HLCR "Overheat" Glow Timer // [2006] STAM "Focus Drain" Glow Timer // [2007] STAM "Tension Drain" Glow Timer // [2008] Tension Cooldown Glow Timer // [2009] Tension Level Glow Timer // [2010] "Can't Use Spell" Glow Timer // [2011] QuickSpell Slot 1's "Can't Use Spell" Glow Timer // [2012] QuickSpell Slot 2's "Can't Use Spell" Glow Timer // [2013] QuickSpell Slot 3's "Can't Use Spell" Glow Timer // [2014] QuickSpell Slot 4's "Can't Use Spell" Glow Timer // [2015] QuickSpell Slot 5's "Can't Use Spell" Glow Timer // [2016] QuickSpell Slot 6's "Can't Use Spell" Glow Timer // [2017] QuickSpell Slot 7's "Can't Use Spell" Glow Timer // [2018] QuickSpell Slot 8's "Can't Use Spell" Glow Timer // [2019] QuickSpell Slot 9's "Can't Use Spell" Glow Timer // [2020] QuickSpell Slot (1)0's "Can't Use Spell" Glow Timer // [2021] Kill Meter's Glow Timer // [2022] Used to indicate if a specific type of "OVERKILL" has occured [for the new hud] // [2023] Used for the "OVERKILL" display timer // [2024] Shows total EXP for current kill // [2025] Shows EXP gained only from the combo for current kill // [2026] EXP Gain Display Timer [new HUD] // [2027] Current BOSS Meter TID in use // [2031] MaxHP Gains Timer // [2032] MaxMP Gains Timer // [2033] AeonPts Gains Timer // [2034] Strength Gains Timer // [2035] Defense Gains Timer // [2036] Sorcery Gains Timer // [2037] Therapeusis Gains Timer // [2038] Agility Gains Timer // [2039] Deftness Gains Timer // [2040] Buff/Debuff Message #1 Timer // [2041] Buff/Debuff Message #2 Timer // [2042] Buff/Debuff Message #3 Timer // [2043] Buff/Debuff Message #4 Timer // [2044] Buff/Debuff Message #5 Timer // [2045] Buff/Debuff Message #1 TYPE // [2046] Buff/Debuff Message #2 TYPE // [2047] Buff/Debuff Message #3 TYPE // [2048] Buff/Debuff Message #4 TYPE // [2049] Buff/Debuff Message #5 TYPE // [2050] is Kick Tester // [2051] Tension OverPsyche Glow Timer // [2052] HP Regen Bonus/Penalty Glow // [2053] MP Regen Bonus/Penalty Glow // [2054] Stamina Regen Bonus/Penalty Glow // [2055] Hellcore Cooldown Bonus/Penalty Glow // [2056] HP "Poisoned" Glow Timer // [2057 to 2091] Buff/Debuff Icon/Timer Alpha Timers // [2092 to 2501] are undefined so far :P // [2502] Unfreeze Player // [2601 - 2614] Armor Item Drop Checkers #1-#14 // [2989 - 3059] Spell Cost Tables // [2989] Selected Spell's Cost // ***[5001-5500] Are likely reserved for Petra-specific vars*** // [5001] Arcana Points [Petra] // ***[5501-6000] Are likely reserved for Ailish-specific vars*** // [5501] Spirit Strike Points [Ailish] // ***[7001-8000] Ammo and Inventory Limits*** // [7001] Medicinal Herbs // [7002] Strong Medicinal Herbs // [7003] Special Medicinal Herbs // [7004] Magic Waters // [7005] Sage Elixirs // [7006] Elfin Elixirs // [7007] Yggdrasil Dews // [7008] Miracle Potions // [7009] Rockbomb Shards // [7010] Paxa Punches // [7011] Mercury Bandanas // [7012] Monster Munchies // [7013] Lesser Vimstones // [7014] Greater Vimstones // [7050-7100] are unused // [7101] Quartz Flasks [Heretic] // [7102] Mystic Urns [Heretic] // [7103] Chaos Devices [Heretic] // [7104] Morph Ovums [Heretic] // [7105] Shadowspheres [Heretic] // [7106] Rings of Invulnerability [Heretic] // [7106-7200] are unused // [7201] Quartz Flasks [Hexen] // [7202] Mystic Ambit Incants [Hexen] // [7203] Mystic Urns [Hexen] // [7204] Kraters of Might [Hexen] // [7205] Chaos Devices [Hexen] // [7206] Banishment Devices [Hexen] // [7207] Dark Servants [Hexen] // [7208] Porkulators [Hexen] // [7209] Icons of the Defender [Hexen] // [7210-7300] are unused // [7301] Medicial Patches [Strife] // [7302] Medicial Kits [Strife] // [7303] Surgery Kits [Strife] // [7304] Scanners [Strife] // [7305] Targetters [Strife] // [7306] Environmental Suits [Strife] // [7307] Shadow Armors [Strife] // [7308] Teleporter Beacons [Strife] // [7309] Degnin Ores [Strife] // [7310-7500] are unused // [7401 & 7501] Diaris Arrows [& max] // [7402 & 7502] Poison Needles [& max] // [7403 & 7503] Bullets [& max] // [7404 & 7504] Shells [& max] // [7405 & 7505] Rockets [& max] // [7406 & 7506] Cells [& max] // [7407-7410 & 7507-7510] are unused // [7411 & 7511] Wand Crystals [& max] // [7412 & 7512] Crossbow Bolts [& max] // [7413 & 7513] Claw Orbs [& max] // [7414 & 7514] Phoenix Orbs [& max] // [7415 & 7515] Hell Runes [& max] // [7416 & 7516] Mace Spheres [& max] // [7417-7420 & 7517-7520] are unused // [7421 & 7521] Electric Bolts [& max] // [7422 & 7522] Poison Bolts [& max] // [7423 & 7523] Rifle Bullets [& max] // [7424 & 7524] Mini Missiles [& max] // [7425 & 7525] Energy Pods [& max] // [7426 & 7526] HE Grenades [& max] // [7427 & 7527] Phosphorus Grenades [& max] // [7428-7430 & 7528-7530] are unused // [7431 & 7531] Blue Mana [& max] // [7432 & 7532] Green Mana [& max] // [7441 & 7541] KDIZD Rifle Rounds [& max] // [7442 & 7542] Popcorn [Circus 2] [& max] // [7443 & 7543] Gore Balloons [Circus 2] [& max] // [7444 & 7544] Clown Grenades [Circus 2] [& max] // [7445 & 7545] Clown Souls [Circus 2] [& max] // [7446 & 7546] Crazy Balls [Circus 2] [& max] // [7607-8000] are unused // ***[8001-9000] are related to codex and kill count*** // [10001] "LifeUp" Perk Level // [10002] "LifeUp EX" Perk Level // [10003] "MagiUp" Perk Level // [10004] "MagiUp EX" Perk Level // [10005] "StamUp" Perk Level // [10006] "StamUp EX" Perk Level // [10007] "DodgeMore" Perk Level // [10008] "DodgeMore EX" Perk Level // [10009] "JumpMore" Perk Level // [10010] "JumpMore EX" Perk Level // [10011] "PsycheFast" Perk Level // [10012] "PsycheFast EX" Perk Level // [10013] "RegenHPFast" Perk Level // [10014] "RegenHPFast EX" Perk Level // [10015] "RegenMPFast" Perk Level // [10016] "RegenMPFast EX" Perk Level // [10017] "RegenStamFast" Perk Level // [10018] "RegenStamFast EX" Perk Level // [10019] "Bullet Accuracy" Perk Level // [10020] "Bullet Accuracy EX" Perk Level // [10021] "Pellet Accuracy" Perk Level // [10022] "Pellet Accuracy EX" Perk Level // [10023] "Plasma Accuracy" Perk Level // [10024] "Plasma Accuracy EX" Perk Level // [10025] "Demolitions Expert" Perk Level // [10026] "Demolitions Expert EX" Perk Level // [10027] "Karasawa Attunement" Perk Level // [10028] "Karasawa Attunement EX" Perk Level // [10029] "BFG Attunement" Perk Level // [10030] "BFG Attunement EX" Perk Level // [10031] "Archery Mastery" Perk Level // [10032] "Archery Mastery EX" Perk Level // [10033] "Soul Mastery" Perk Level // [10034] "Soul Mastery EX" Perk Level // [10035] "Martial Arts Mastery" Perk Level // [10036] "Martial Arts Mastery EX" Perk Level // [10037] "Mortal Hit Survivability Psyche Up" Perk Level // [10038] "Mortal Hit Survivability Psyche Up EX" Perk Level // [10039] "Mortal Hit Survivability Mana Recovery" Perk Level // [10040] "Mortal Hit Survivability Mana Recovery EX" Perk Level // [10041] "Mortal Hit Survivability Blast Wave" Perk Level // [10042] "Mortal Hit Survivability Blast Wave EX" Perk Level // [10043] "Mortal Hit Survivability 'Death Rage'" Perk Level // [10044] "Mortal Hit Survivability 'Death Rage' EX" Perk Level // [10045] "On The Move" Perk Level // [10046] "On The Move EX" Perk Level // [10047] "Bottomless Magazines" Perk Level // [10048] "Bottomless Magazines EX" Perk Level // [10049] "Medical/Medicinal Prowess" Perk Level // [10050] "Powerup Powerhouse" Perk Level // [10051] "Berserker Fit" Perk Level // [10052] "Berserker Fit EX" Perk Level // [10053] "Wand/Staff Mastery" Perk Level // [10054] "Wand/Staff Mastery EX" Perk Level // [10055] "Cleared of Mind" Perk Level // [10056] "Cleared of Mind EX" Perk Level // [10057] "Villain Killer" Perk Level // [10058] "Villain Killer EX" Perk Level // [10059] "Pack Mule" Perk Level // [10060] "Pack Mule EX" Perk Level // [11001] "Higher Learning" Grand Mastery Perk Level // [25001] Player's Current Health // [25002] Player Death Fade Out On/Off // [25003] APROP_Waterlevel // [25004] RLMode // [25005] PRMode // [25006] UnmakerAmmoType // [25007] UnmakerUpgrades // [25008] EtherStock // [25009] MinigunHeat // [25010] RailgunCharge // [25011] FlameCount // [25012] DualFlameCount // [25013] FistPlayerBlockItem // [25014] InvulnerabilitySpell // [25015] Armor // [25016] ArmorBonusDSGreen // [25017] ArmorBonusDSBlue // [25018] ArmorBonusDSStone1 // [25019] ArmorBonusDSStone2 // [25020] ArmorBonusDSDiamond1 // [25021] ArmorBonusDSDiamond2 // [25022] DSNoArmorClass // [25023] DSGreenArmorClass // [25024] DSBlueArmorClass // [25025] DSStoneArmorClass1 // [25026] DSStoneArmorClass2 // [25027] DSDiamondArmorClass1 // [25028] DSDiamondArmorClass2 // [25029] RecallAlly // [25030] RecallAllAllies // [25031] Magnetize // [25032] Immune to Toxin Damage [DV2-M04/M05] // [25033] TryingToRepecAeonPtsPerks // [25034] TryingToRepecAeonPts // [25035] TryingToQuickUseVimstone // [25036] Give Foresight // [25037] "Armor" // [25038] GetSigilPieces // [25039] FloraLearnedPistols // [25040] IsInvulnerable // [25041] PrimingSceptre // [25042] DrawingDiarisBow // [25043] HWShieldBlockHold // [25044] PoisonNeedleAmmo // [25045] GodMode // [25046] GodMode2 // [25047] SigilModeType // [25101] Has "SauronHelmet" // [25102] Has "SauronGauntletsItem" // [25103] Has "TheOneRing" // [25104] Has "SafeTeaShoes" // [25105] Has "PearlyCorset" // [25106] Has "WaterFlyingDress" // [25107] Has "EvenstarNecklace" // [25108] Has "CloakofEvasion" // [25109] Has "AnubisCufflinks" // [25110] Has "KissaBra" // [25111] Has "DivineShield" // [25112] Has "RuinousShield" // [25113] Has "BalrogRing" // [25114] Has "DoveRibbon" // [25115] Has "FalconKnifeEarrings" // [25201] "inv_fail" // [25202] "debuffed" // [25203] "marines/armorbroken" // [25204] "marines/armordamaged" // [25205] "DraQue/gainperk" // [25206] Lesser Healing Snd // [25207] Healing Snd // [25208] Greater Healing Snd // [25209] Summon Snd // [25210] Divine Avatar Snd // [25211] FloraEnterHighTension1 // [25212] FloraEnterHighTension2 // [25213] FloraEnterHighTension3 // [25214] tensionrevert // [25301] TookCriticalHit [player] // [25302] Missed [player] // [25303] TookNoDamage [player] // [25304] TookNoDamageInvuln [player] // [25305] AbsorbedDamage [player] global int 22:MenuSystemVars[]; // Goto "MENUKEY" for array list. global int 23:SpecialGameFlags[]; // ***ARRAY*** // [0 to 999] = DVII related story/game flags // [0] = Checks for DV2M01 armor item [Safe Tea Shoes] // [1] = Checks for DV2M02 armor item [Pearly Corset] // [2] = Checks for DV2M03 armor item [Water Flying Dress] // [3] = Checks for DV2M04 armor item [Evenstar Necklace] // [4] = Checks for DV2M05 armor item [Cloak of Evasion] // [5] = Checks for DV2M05S armor item [Falcon Knife Earrings] // [6] = Checks for DV2M06 armor item [Anubis Cufflinks] // [7] = Checks for DV2M07 armor item [Kissa's Brassire] // [8] = Checks for DV2M08 armor item [Ruinous Shield/Divine Shield] // [9] = Checks for DV2M09 armor item [Balrog Ring] // [10] = Checks for DV2M10 armor item [Dove's Ribbon] // [1000 to 1999] = DVI related story/game flags // [10000] = Checks for Sauravatar's activation [DVI] // [10001] = Final Health Value for the Sauravatar [DVI] // [10002] = Base Health Value for the Sauravatar [DVI] // [10003] = Sauravatar's "Moderate" Health Level (will use his Gold BFG attack when below this value) [DVI] // [10004] = Sauravatar's "Low" Health Level (will use his White BFG attack when below this value) [DVI] global int 26:MonstersAlive[]; // ***ARRAY*** Array to Replace "MonstersAliveMAPXX" vars. global int 27:MonstersKilled[]; // ***ARRAY*** Array to Replace "MonstersKilledMAPXX" vars. global int 28:SecretsFound[]; // ***ARRAY*** Array to Replace "SecretsFoundMAPXX" vars. global int 29:ItemsFound[]; global int 30:CurrentMaxArmor; // All Games - USED BY HUD global int 31:CurrentArmorClass; // All Games global int 33:CharacterClass; // All Games // 0 = Deggaris [Doom] // 1 = Illucia [Doom] // 2 = Flora [All] // 3 = Corvus [Heretic] // 4 = Baratus [Hexen] // 5 = Parias [Hexen] // 6 = Daedolon [Hexen] // 7 = StrifeGuy (Aka. the Mercenary) [Strife] // 8 = Ailish [All] // 9 = Petra [All] global int 34:ClassCheck; // All Games // New Vars for DVII-DS and the remade DVI-DS. :P global int 37:LevelCap; // Applies to all games, however Flora's the only character legally able to extend her level cap from 100 to 200. global int 38:SpellIDLimit; // Defines the total number of spells allowed for quick var references global int 41:TrueGameSkill; global int 45:PerkPtsPerPerk[]; // Uses the same values as the perks in MiscellaneousVars[] global int 46:ClassicDoomType; // 0 = Doom 2 // 1 = Doom 1 // 2 = Heretic // 3 = Hexen // 4 = Strife // 5 = Doom64 global int 50:GameScriptEvents[]; // ***ARRAY*** Array for Controlling in-game scripts and story events // [1401] = MAP04, Damage inflicted by Helltoxins in Minas Morgul // [1402] = MAP04, Damage timer for Helltoxins in Minas Morgul // [1403] = MAP04, Checks for the player having Iron Feet powerup or Flora's Safe Passage spells in effect to determine exposure to Hell-Toxins. // [1801] = MAP08, Spawns all AmbientSound Actors in places meant to be high off the ground. global int 51:SpiritStrikePoints; // Ailish specific points for Spirit Strike usage global int 54:SceptreLevelEXP; // For Determining the level of sceptre capabilities and allows it to grow stronger as it's used (Base level plus 16 more levels). -- USED BY HUD global int 55:SceptreActualLevel; // USED BY HUD global int 61:RuinousShieldPercentF; // USED BY HUD global int 62:RuinousShieldPercent; // USED BY HUD // 0 = Normal, 1 = Other int FirstRun, KillBonusApplied, ItemBonusApplied, SecretBonusApplied, CompletionBonusApplied; str PlayerWeapon; str FriendIDHeretic[15] = { "FHereticImp", "FHereticImpLeader", // 2 "FMummy", "FMummyLeader", "FMummyGhost", "FMummyLeaderGhost", // 4 "FKnight", "FKnightGhost", // 2 // Weak 0-7 [8] "FWizard", // 1 "FClink", // 1 "FBeast", // 1 "FSnake", // 1 // Normal 8-12 [4] "FIronLich", // 1 // Strong 13 [1] "FMaulotaur" // 1 // Cyber-class 14 [1] }; str FriendIDHexen[14] = { "FFireDemon", // 1 "FEttin", // 1 "FIceGuy", // 1 // Weak 0-2 [3] "FCentaur", // 1 "FWraith", // 1 "FBishop", // 1 "FStalker", // 1 "FEttinCommander", // 1 // Normal 3-7 [5] "FVampire", // 1 "FSlaughtaur", // 1 "FGreenChaosSerpent", "FBrownChaosSerpent", // 2 "FStalkerLeader", // 1 // Strong 8-12 [5] "FHeresiarch" // 1 // Cyber-class 13 [1] }; /* str FriendIDStrife[0] = { }; */ str FriendIDDoom[55] = { "FZombieman", "FPlasmaGuy", "FRocketLauncherGuy", "FRepeaterZombie", "FKarasawaGuy", // 5 "FShotgunGuy", "FSuperShotgunGuy", // 2 "FDoomImp", "FDarkImp", "FSTDarkImp", "FVoidDarkImp", // 4 "FDemon", "FBloodDemon", // 2 "FWolfensteinSS", "FChaingunDemon", // 2 "FLostSoul", "FHadesSphere", "FHSOverlord", // 3 // Weak 0-17 [18] "FHellCleric", // 1 "FSpectre", "FBloodSpectre", // 2 "FChaingunGuy", "FBFGGuy", "FChaingunSpectre", // 3 "FCacodemon", "FCacolantern", "FAbaddon", "FHadesElemental", // 4 "FHellKnight", "FBaronOfHell", // 2 // Moderate 18-29 [12] "FFlyingBalrog", // 1 "FBaronOfHell", "FBelphegor", "FBruiserDemon", "FCyBruiser", "FArchonOfHell", "FPyroDemon", // 6 "FHadesElemental", "FHadesOverlord", // 2 "FRevenant", "FDeathIncarnate", // 2 "FFatso", "FHectebus", "FDaedabus", // 3 "FArachnotron", "FRailArachnotron", "FArachnotronMK2", "FFusionArachnotron", // 3 "FHierophant", // 3 // Strong 30-48 [18] "FArchvile", "FDiabloist", // Vile 49-50 [2] "FCyberdemon", "FAnnihilator", // Cyberdemon 51-52 [2] "FSpiderMastermind", "FDemolisher" // Spider Mastermind 53-54 [2] }; //***************************************** //***Deggaris and Illucia's Spell Tables*** //***************************************** int SpellsLearned[101] = { 1, // +1 (Level 0) 3, 5, 6, 7, 8, // +2, +2, +2, +1, +1 (Levels 1-5) 9, 11, 12, 14, 15, // +1, +1, +2, +1, +2 (Levels 6-10) 18, 20, 22, 23, 24, // +1, +3, +2, +2, +1 (Levels 11-15) 26, 27, 29, 30, 33, // +1, +2, +1, +2, +1 (Levels 16-20) 37, 38, 39, 40, 44, // +3, +4, +1, +1, +1 (Levels 21-25) 46, 47, 48, 49, 51, // +4, +2, +1, +1, +1 (Levels 26-30) 54, 54, 54, 54, 54, // +2, +0, +0, +0, +0 (Levels 31-35) 54, 54, 54, 54, 54, // +0, +0, +0, +0, +0 (Levels 36-40) 54, 54, 54, 54, 54, // +0, +0, +0, +0, +0 (Levels 41-45) 54, 54, 54, 54, 54, // +0, +0, +0, +0, +0 (Levels 46-50) 54, 54, 54, 54, 54, // +0, +0, +0, +0, +0 (Levels 51-55) 55, 55, 55, 55, 55, // +1, +0, +0, +0, +0 (Levels 56-60) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 61-65) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 66-70) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 71-75) 55, 55, 55, 55, 55, // +1, +0, +0, +0, +0 (Levels 76-80) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 81-85) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 86-90) 55, 55, 55, 55, 55, // +0, +0, +0, +0, +0 (Levels 91-95) 55, 55, 55, 55, 55 // +0, +0, +0, +0, +0 (Levels 96-100) }; int SpellCastTypes[58] = { 0, 1, 2, 0, 3, 4,10, 0, 5, 0, 6, 0, 0, 0, 1, 7, 19, 0, 3, 0, 14, 2, 4, 0, 6, 7,10, 0,11, 1, 2, 0,12, 7, 13, 20, 3, 4, 0, 6, 11, 0, 0,10, 0, 9, 21, 0, 6, 0, 13,14,15,16, 6, 18,19,20}; int SpellCastStrength[58] = { 0, 2, 10, 1, 10, 10, 0, 2, 15, 3, 0, 4, 5, 6, 5, 0, 15, 18, 30, 7, 10, 30, 30, 9, 1, 1, 1, 10, 0, 10, 60, 11, 0, 2, 5, 15, 60, 60, 12, 2, 1, 13, 14, 2, 15, 15, 15, 16, 3, 17, 15, 30, 0, 30, 4, 30, 30, 30 }; str SpellCategory[4] = { "\cdOffense Magic\c-", //[0] (23) 0, 3, 6, 7, 9, 11, 12, 13, 15, 19, 20, 23, 25, 26, 27, 31, 33, 38, 41, 42, 43, 44, 49 "\cnRestorative Magic\c-", //[1] (5) 1, 14, 28, 29, 40 "\cfStatus Magic\c-", //[2] (20) 2, 4, 5, 8, 16, 17, 18, 21, 22, 30, 32, 34, 35, 36, 37, 45, 46, 50, 51, 53 "\ceConjure Magic\c-" //[3] (7) 10, 24, 39, 47, 48, 52, 54 }; str SpellTable[59] = { //[id] (deg?), (ill?), (flo?) "\cdMinor Magic Missile\c-", //[0] O, O, O [Offense] [Level 0] "\cnMinor Healing\c-", //[1] O, O, O [Restorative] [Level 0] "\cfMinor Night-Vision\c-", //[2] O, O, O [Status] [Level 1] "\cdChill Touch\c-", //[3] O, O, O [Offense] "\cfMinor Invisibility\c-", //[4] O, O, O [Status] "\cfMinor Flight\c-", //[5] O, O, O [Status] "\cdMinor Poison Cloud\c-", //[6] O, X, O [Offense] "\cdMinor Fireball\c-", //[7] O, O, O [Offense] "\cfEnhanced Strength\c-", //[8] O, O, O [Status] "\cdMinor Ice Blast\c-", //[9] O, O, O [Offense] "\ceSummon Weak Monster\c-", //[10] O, O, O [Conjure] "\cdMagic Missile\c-", //[11] O, O, O [Offense] "\cdFireball\c-", //[12] O, O, O [Offense] "\cdExplosive Glyph\c-", //[13] O, O, O [Offense] "\cnHealing\c-", //[14] O, O, O [Restorative] "\cdFireball Nova\c-", //[15] X, O, O [Offense] "\cfAttack Booster\c-", //[16] O, O, O [Status] "\cfMinor Raging Spirits\c-", //[17] O, O, O [Conjure] "\cfInvisibility\c-", //[18] O, O, O [Status] "\cdAcid Rain\c-", //[19] O, O, O [Offense] "\cdMinor Terrorization Aura\c-", //[20] O, X, O [Offense] "\cfNight-Vision\c-", //[21] O, O, O [Status] "\cfFlight\c-", //[22] O, O, O [Status] "\cdMajor Magic Missile\c-", //[23] X, O, O [Offense] "\ceSummon Monster\c-", //[24] O, O, O [Conjure] "\cdIcy Nova\c-", //[25] O, O, O [Offense] "\cdPoison Cloud\c-", //[26] O, X, O [Offense] "\cdMinor Lightning\c-", //[27] O, O, O [Offense] "\cnStone Skin\c-", //[28] O, O, X [Restorative] "\cnMajor Healing\c-", //[29] X, O, O [Restorative] "\cfMajor Night-Vision\c-", //[30] X, O, O [Status] "\cdIce Blast\c-", //[31] O, O, O [Offense] "\cfFarsight\c-", //[32] O, O, O [Status] "\cdLightning Nova\c-", //[33] X, O, O [Offense] "\cfMinor Time Freezer\c-", //[34] X, O, O [Status] "\cfDefense Booster\c-", //[35] O, O, O [Status] "\cfMajor Invisibility\c-", //[36] X, O, O [Status] "\cfMajor Flight\c-", //[37] X, O, O [Status] "\cdLightning\c-", //[38] O, O, O [Offense] "\ceSummon Strong Monster\c-", //[39] O, O, O [Conjure] "\cnDiamond Skin\c-", //[40] O, O, X [Restorative] "\cdMajor Fireball\c-", //[41] X, O, O [Offense] "\cdMajor Ice Blast\c-", //[42] X, O, O [Offense] "\cdMajor Poison Cloud\c-", //[43] O, X, O [Offense] "\cdMajor Lightning\c-", //[44] X, O, O [Offense] "\cfInvulnerability\c-", //[45] O, O, O [Status] "\cfSpeed Booster\c-", //[46] O, O, O [Status] "\ceRaging Spirits\c-", //[47] O, O, O [Conjure] "\ceSummon Arch-Vile\c-", //[48] X, O, O [Conjure] "\cdUltra Magic Missile\c-", //[49] X, X, O [Offense] "\cfTime Freezer\c-", //[50] X, O, O [Status] "\cfTerrorization Aura\c-", //[51] O, X, O [Status] "\ceCreate Lotso' Ammo\c-", //[52] O, O, X [Conjure] "\cfDivine Avatar\c-", //[53] O, O, O [Status] "\ceSummon Cyberdemon\c-", //[54] X, O, O [Conjure] "\cfSpreader Aura Lv. 2\c-", //[55] X, X, O [Status] "\cfOomph\c-", //[56] X, X, O [Status] "\cfBuff\c-", //[57] X, X, O [Status] "\cfDesperado Damsel\c-" //[58] X, X, X [Status] }; // 15, 20, 23, 29, 30, 33, 34, 36, 37, 41, 42, 44, 45, 46, 48, 49, 50, 54, 55, 56, 57, 58 = Deggaris Cannot use these Spell IDs in final version // 6, 26, 43, 49, 51, 55, 56, 57, 58 = Illucia Cannot use these Spell IDs in final version // 28, 40, 52, 58 = Flora Cannot use these Spell IDs in final version str SpellDesc[59] = { "Shoots an aetherbolt that does minimal damage", // Minor Magic Missile "Heals 2-4 health points up to ", // Minor Healing "See as if it were daylight for 10 seconds", // Minor Night Vision "Send a cold chill into whatever you touch", // Chill Touch "Become harder to see [and +1/3 Evasion] for 10 seconds", // Minor Invisibility "Leave the forces of gravity behind for 10 seconds", // Minor Flight "Creates a stationary cloud of poison", // Minor Poison Cloud "Shoots a fireball that does low damage", // Minor Fireball "Multiplies Melee damage by 10x for 15 seconds", // Enchanced Strength "Fires a few ice shards", // Minor Ice Blast "Summons a weak allied monster. 25% chance to spawn two.", // Summon Weak Monster "A more powerful magic missile", // Magic Missile "A medium-damage fireball", // Fireball "Creates a magical proximity mine.", // Explosive Glyph "Heals 4-9 health points up to ", // Healing "Creates a ring of fireballs", // Fireball Nova "Raises Attack and Critical Rate for 15 seconds", // Attack Booster "Summons two Holy spirits to tear apart your foes.", // Minor Raging Spirit "Become harder to see [and +1/3 Evasion] for 30 seconds", // Invisibility "Summons rain from the ceiling down upon your enemies", // Acid Rain "Makes enemies flee from you in terror for 10 seconds.", // Minor Terrorization Aura "Darkness will be no problem for 30 seconds", "Bend gravity to your will for 30 seconds", "A very powerful magic missile shot", // Major Magic Missile "Summons a moderately powerful ally. 25% chance to spawn two.", "Emits a ring of ice shards.", "A stationary poison cloud. This one has a larger radius", "Give your enemies a nasty shock with this spell", "Fortify yourself with 500 armor, 66% protection", "Heals 8-18 health points up to ", "Makes everything bright for a full minute", "Shoots several ice shards", "Allow you to see the entire map.", "A ring of lightning", "Freeze Time for 5 seconds, rendering all but you frozen.", "Increases Defense and Survivability for 15 Seconds", // Defense Booster "Become harder to see [and +1/3 Evasion] for a full minute", "Defy gravity for a full minute", "Shoots three lightning blasts", "Summons a powerful allied monster. 25% chance to spawn two.", "Fortify yourself with 1250 armor, 90% protection", // Diamond Skin "Shoot a highly damaging fireball", // Major Fireball "Fires lots of ice shards", // Major Ice Blast "Fill an entire small room with poison", // Major Poison Cloud "This shoots a shocking 5 lightning blasts", // Major Lightning "You cannot be damaged for 15 seconds", // Invulnerability "Boosts Movement Speed and Evasion for 15 seconds", // Speed Booster "Summon five Holy spirits to tear apart your foes.", // Raging Spirits "Summon an Archvile to turn slain foes to your side.", // Summon Archvile "The most powerful Magic Missile spell.", // Ultra Magic Missile "Freeze Time for 15 seconds, rendering all but you frozen.", // Time Freezer "Makes enemies flee from you in terror for 30 seconds.", // Terror Aura "Creates a lot of ammo for your weapons.", // Create Lotso Ammo "Grants you access to your fullest potential in combat!", // Divine Avatar "Summon a Cyberdemon to destroy your enemies.", // Summon Cyberdemon "Allows You to Create 6 Extra Copies of Most Attacks/Spells.", // Spreader Aura Lv. 2 "Doubles your damage output for a short time.", // Oomph "Cut Damage in Half and slightly increase survive rate.", // Buff "Temporary damage boost for A. Christina (non-enemy fire modes) and hitscan weaponry." // Desperado Damsel }; int SpellCosts[59] = { 1, // Minor Magic Missile 5, // Minor Healing 5, // Minor Night Vision 5, // Chill Touch 15, // Minor Invisibility 10, // Minor Flight 15, // Minor Poison Cloud 10, // Minor Fireball 50, // Enhanced Strength 15, // Minor Ice Blast 50, // Summon Weak Monster 20, // Magic Missile 20, // Fireball 30, // Explosive Glyph 15, // Healing 40, // Fireball Nova 125, // Attack Booster 75, // Minor Raging Spirits 75, // Invisibility 25, // Acid Rain 85, // Minor Terrorization Aura 40, // Night-Vision 75, // Flight 50, // Major Magic Missile 125, // Summon Monster 100, // Ice Nova 75, // Poison Cloud 75, // Minor Lightning 100, // Stone Skin 55, // Major Healing 100, // Major Night-Vision 50, // Ice Blast 150, // Farsight 150, // Lightning Nova 120, // Minor Time Freeze 125, // Defense Booster 150, // Major Invisibility 150, // Major Flight 125, // Lightning 220, // Summon Strong Monster 200, // Diamond Skin 50, // Major Fireball 75, // Major Ice Blast 130, // Major Poison Cloud 175, // Major Lightning 200, // Invulnerability 125, // Speed Booster 150, // Raging Spirits 250, // Summon Archvile 160, // Ultra Magic Missile 325, // Time Freezer 225, // Terror Aura 300, // Create Lotso Ammo 0, // Divine Avatar [value doesn't matter since it auto-calculates based on max MP] 500, // Summon Cyberdemon 1025, // Spreader Aura Lv. 2 80, // Oomph 30, // Buff 80 // Desperato Damsel }; //*********************************** //***Flora's Spell Table [DVII-DS]*** //*********************************** /* //*********************************************************** // GuideList of Numbers for Flora's Spells [Doomspell-Style]* //*********************************************************** // TODO later :P 1. Minor Magic Missile (2) 2. Minor Farsight (4) 3. Summon Imp (6) 4. Minor Flight (7) 5. Minor Polymorphosis (9) 6. Magic Missile (10) 7. Summon Pinky (11) 8. Attack Booster (13) 9. Farsight (14) 10. Enhanced Strength (15) 11. Summon Cacodemon (16) 12. Major Magic Missile (17) 13. Minor Raging Spirits (18) 14. Flight (19) 15. Spiritual Exoskin (20) 16. Minor Revenger (22) 17. Summon Hell Noble (23) 18. Major Farsight (24) 19. Minor Charm (24) 20. Minor Time Freezer (26) 21. Defense Booster (28) 22. Summon Archvile (29) 23. Ultra Magic Missile (30) 24. Polymorphosis (30) 25. Major Flight (32) 26. Summon Cyberdemon (36) 27. Speed Booster (37) 28. Invulnerability (39) 29. Greater Spiritual Exoskin (40) 30. Charm (42) 31. Revenger (43) 32. Aura of Anubis (45) 33. Create Ammo (48) 34. Spreader Aura Lv. 2 (56) 35. Major Polymorphosis (62) 36. Dyspersion (64) 37. Major Charm (66) 38. Divine Avatar (69) 39. Light Haze Smite (77) 40. Major Revenger (84) 41. Perfected Spiritual Exoskin (92) 42. Shielding of the Larries (132) //************************************************************* // GuideList of Numbers for Flora's Spells [DragonQuest-Style]* //************************************************************* // TODO later :P 1. MidHeal (1) 2. Appraise (3) 3. KaBuff (11) 4. Dazzle (12) 5. Oomph (13) 6. Snooze (14) 7. Safe Passage (15) 8. Sizzle (16) 9. Tick-Tock (17) 10. Bounce (18) 11. Frizzle (20) 12. Crackle (21) 13. Kasap (22) 14. Thwack (23) 15. KaDazzle (25) 16. Zap (25) 17. Insulatle (26) 18. KaSizzle (27) 19. HighHeal (31) 20. KaFrizzle (33) 21. Tickety-Tockety (34) 22. Kazap (35) 23. KaClang (36) 24. KaBoom (37) 25. AbsMagic (41) 26. Crackle (45) 27. StopSpell (48) 28. MegaHeal (52) 29. DeMagic (63) 30. Kaboomle (66) 31. ? 32. ? 33. ? // 43 Doomspell-Style Spells int FloraSpellsLearnedDoomspell[201] = { // Add Here Later 0, // Level 0 0, 1, 1, 2, 2, // Levels 1-5 3, 4, 4, 5, 6, // Levels 6-10 7, 7, 8, 9, 10, // Levels 11-15 11, 12, 13, 14, 15, // Levels 16-20 15, 16, 17, 19, 19, // Levels 21-25 20, 20, 21, 22, 24, // Levels 26-30 24, 25, 25, 25, 25, // Levels 31-35 26, 27, 27, 28, 29, // Levels 36-40 29, 30, 31, 31, 32, // Levels 41-45 32, 32, 33, 33, 33, // Levels 46-50 33, 33, 33, 33, 33, // Levels 51-55 34, 34, 34, 34, 34, // Levels 56-60 34, 35, 35, 36, 36, // Levels 61-65 37, 37, 37, 38, 38, // Levels 66-70 38, 38, 38, 38, 38, // Levels 71-75 38, 39, 39, 39, 39, // Levels 76-80 39, 39, 39, 40, 40, // Levels 81-85 40, 40, 40, 40, 40, // Levels 86-90 40, 41, 41, 41, 41, // Levels 91-95 41, 41, 41, 41, 41, // Levels 96-100 }; // 33 DragonQuest-Style Spells int FloraSpellsLearnedDQ5Style[201] = { // Add Here Later 0, // Level 0 1, 1, 2, 2, 2, // Levels 1-5 2, 2, 2, 2, 2, // Levels 6-10 3, 4, 5, 6, 7, // Levels 11-15 8, 9, 10, 10, 11, // Levels 16-20 12, 13, 14, 14, 16, // Levels 21-25 17, 18, 18, 18, 18, // Levels 26-30 19, 19, 20, 21, 22, // Levels 31-35 23, 24, 24, 24, 24, // Levels 36-40 25, 25, 25, 25, 26, // Levels 41-45 26, 26, 27, 27, 27, // Levels 46-50 27, 28, 28, 28, 28, // Levels 51-55 28, 28, 28, 28, 28, // Levels 56-60 28, 28, 29, 29, 29, // Levels 61-65 30, 30, 30, 30, 30, // Levels 66-70 30, 30, 30, 30, 30, // Levels 71-75 30, 30, 30, 30, 30, // Levels 76-80 30, 30, 30, 30, 30, // Levels 81-85 30, 30, 30, 30, 30, // Levels 86-90 30, 30, 30, 30, 30, // Levels 91-95 30, 30, 30, 30, 30, // Levels 96-100 }; // Doomspell-Style Types int FloraSpellCastTypesDS[43] = { // Add Here Later }; // DragonQuest-Style Types int FloraSpellCastTypesDQ[33] = { // Add Here Later }; // Doomspell-Style Types int FloraSpellCastStrengthDS[43] = { // Add Here Later }; // DragonQuest-Style Types int FloraSpellCastStrengthDQ[33] = { // Add Here Later }; // Doomspell-Style Names str FloraSpellNameTableDS[43] = { // Add Here Later }; // DragonQuest-Style Names str FloraSpellNameTableDQ[33] = { // Add Here Later }; // Doomspell-Style Descriptions str FloraSpellDescDS[43] = { // Add Here Later }; // DragonQuest-Style Descriptions str FloraSpellDescDQ[33] = { // Add Here Later }; // Doomspell-Style Spell Costs [Exact Values, not %ages] int FloraSpellCostsDS[43] = { // Add Here Later }; // Doomspell-Style Spell Costs [Usually in %ages, not exact values] int FloraSpellCostsDQ[33] = { 0, // No Spell 5, 3, 6, 4, 6, // 1-5 3, 2, 6, 4, 4, // 6-10 }; */ //***TO BE ADDED IN THE FUTURE*** //********************* //********************* //******FUNCTIONS****** //********************* //********************* // SetActorPositionForced function bool SetActorPositionForced(int tid, int x, int y, int z, bool fog) { Warp(tid, x, y, z, 0, WARPF_MOVEPTR|WARPF_ABSOLUTEPOSITION|WARPF_NOCHECKPOSITION); if (fog) SpawnForced("TeleportFog", x, y, z); return true; } function int CalcXHUDPos2 (int base, int direction, int width, int defaultwidth) { int result = base; if (direction == -1) result -= (width - defaultwidth); if (direction == 1) result += (width - defaultwidth); return result; } function int CalcYHUDPos2 (int base, int direction, int height, int defaultheight) { int result = base; if (direction == -1) result -= (height - defaultheight); if (direction == 1) result += (height - defaultheight); return result; } function int CalcXHUDPos (int base, int multiplier, int divisor) { int result; if (multiplier == 0) { multiplier = 1440; } if (divisor == 0) { divisor = 1440; } result = (base * multiplier / divisor) * 1.0; return result; //PrintBold(s:"Value: ",f:result,s:" [",d:base,s:"]"); } function int CalcYHUDPos (int base, int multiplier, int divisor) { int result; if (multiplier == 0) multiplier = 1080; if (divisor == 0) divisor = 1080; result = (base * multiplier / divisor) * 1.0; return result; //PrintBold(s:"Value: ",f:result,s:" [",d:base,s:"]"); } function int SetInventory (str item, int count) { int n = count - CheckInventory (item); if (n > 0) GiveInventory (item, n); else if (n < 0) TakeInventory (item, -n); return n; } function int SetActorInventory (int tid, str item, int count) { int n = count - CheckActorInventory (tid, item); if (n > 0) GiveActorInventory (tid, item, n); else if (n < 0) TakeActorInventory (tid, item, -n); return n; } // This function will place text or a sprite (depending on parameters passed) at the onscreen position of an actor with the specified tid, as long as it's in range (fixed mapunits). function void hudmessageonactor(int tid, int range, str sprite, str text) { int dist, ang, vang, pitch, x, y; int HUDX = 640; int HUDY = 400; int offset = 0; if (sprite != NULLSTR) { setfont(sprite); text = "A"; offset = 0.1; } sethudsize(HUDX, HUDY, 1); x = getactorx(tid) - getactorx(0); y = getactory(tid) - getactory(0); vang = vectorangle(x,y); ang = (vang - GetActorAngle(0) + 1.0) % 1.0; if (((vang+0.125)%0.5) > 0.25) dist = fixeddiv(y, sin(vang)); else dist = fixeddiv(x, cos(vang)); if ((ang < 0.2 || ang > 0.8) && dist < range) { pitch = vectorangle(dist, getactorz(tid) - (getactorz(0) + 41.0)); pitch = (pitch + GetActorPitch(0) + 1.0) % 1.0; x = HUDX/2 - ((HUDX/2) * sin(ang) / cos(ang)); y = HUDY/2 - ((HUDX/2) * sin(pitch) / cos(pitch)); hudmessage(s:text; 0, 1, CR_UNTRANSLATED, (x<<16)+offset, (y<<16)+offset, 0); } else hudmessage(s:" "; 0, 1, CR_UNTRANSLATED, 0, 0, 0); } //******************* //******************* //******SCRIPTS****** //******************* //******************* // GRAND Initialization Script script "INITIALIZER" OPEN { if (MiscellaneousVars[199] == 0) // Only on the very first tic of a new game, and never on loading of new maps past the first map. { MiscellaneousVars[1000] -= 1; TrueGameSkill = GetCVar("dvds_gendifficultycurve") + GameSkill(); if (TrueGameSkill < 0) TrueGameSkill = 0; if (TrueGameSkill > 8) TrueGameSkill = 8; if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1200) { ModType = 2; } // DVII-DS "MAP00" (Set To Deus Vult II) else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1100) { ModType = 1; } // DVI-DS "MAP00" // Set To Deus Vult I else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1039) { ModType = 0; ClassicDoomType = 6; } // "MAPP0" // Set To PSXDoom Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) >= 1036 && GetLevelInfo(LEVELINFO_LEVELNUM) <= 1038) { ModType = 0; ClassicDoomType = 5; } // "MAPD6"/"MAPD7"/"MAPD8" // Set To Doom64 Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1030) { ModType = 0; ClassicDoomType = 4; } // "MAPAA" // Set To Strife Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1021) { ModType = 0; ClassicDoomType = 3; MiscellaneousVars[259] = 1; } // "MAP0A" // Set To Hexen Mode [Deathkings Map] else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1020) { ModType = 0; ClassicDoomType = 3; } // "MAP0A" // Set To Hexen Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1010) { ModType = 0; ClassicDoomType = 2; } // "E1MA" // Set To Heretic Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1000) { ModType = 0; ClassicDoomType = 1; } // "E1M0" // Set To Classic Doom 1 Mode else if (GetLevelInfo(LEVELINFO_LEVELNUM) == 1050) { ModType = 0; ClassicDoomType = 0; } // "MAP00" // Set To Classic Doom 2 Mode else { ModType = 0; ClassicDoomType = 0; } // Set to Normal Doom 1/2 mode // PrintBold(d:ModType); LevelCap = 200; // KEEP AT THE MAXIMUM AMOUNT FOR LEVELS OVERALL [even if not all characters normally can reach said level] SpellIDLimit = 55; MaxHealthTrue = 100; // Sets to default Max of 100 to start MiscellaneousVars[21] = 10000; // Current Stamina Points MiscellaneousVars[22] = 10000; // Maximum Stamina Points MiscellaneousVars[7] = 25600; // Set this for the maximum range of the randomizer for Fygg drops. MiscellaneousVars[6] = random(1,MiscellaneousVars[7]); MiscellaneousVars[199] = 1; // Very-First-Run } MiscellaneousVars[1] += 1; MiscellaneousVars[113] = 0; // Resets Imp Claw Checker to 0 MiscellaneousVars[114] = 0; // Resets Dark Imp Claw Checker to 0 MiscellaneousVars[115] = 0; // Resets Cacodemon Eye Checker to 0 MiscellaneousVars[116] = 0; // Resets Cacolantern Eye Checker to 0 MiscellaneousVars[117] = 0; // Resets Abaddon Eye Checker to 0 MiscellaneousVars[118] = 0; // Resets Knight Fist Checker to 0 MiscellaneousVars[119] = 0; // Resets Baron Fist Checker to 0 MiscellaneousVars[120] = 0; // Resets Belphegor Fist Checker to 0 MiscellaneousVars[121] = 0; // Resets Bruiser Fist Checker to 0 MiscellaneousVars[122] = 0; // Resets Archon Fist Checker to 0 MiscellaneousVars[123] = 0; // Resets Pyro Fist Checker to 0 MiscellaneousVars[124] = 0; // Resets Incarnate Skull Checker to 0 MiscellaneousVars[125] = 0; // Resets Archvile Hand Checker to 0 MiscellaneousVars[126] = 0; // Resets Diabloist Checker to 0 MiscellaneousVars[127] = 0; // Resets Flying Balrog Checker to 0 MiscellaneousVars[128] = 0; // Resets Elemental's Soul Checker to 0 MiscellaneousVars[129] = 0; // Resets Overlord's Soul Checker to 0 // PrintBold(d:CurrentArmorClass); } function void PrintBuffMessage (int buffid) { /* if (MiscellaneousVars[2045] == 0) buffmsg1 = "\c[red]ATTACK INCREASED!!"; if (MiscellaneousVars[2045] == 1) buffmsg1 = "\c[olive]DEFENSE INCREASED!!"; if (MiscellaneousVars[2045] == 2) buffmsg1 = "\c[lightblue]SPEED INCREASED!!"; if (MiscellaneousVars[2045] == 10) buffmsg1 = "\c[red]ATTACK DECREASED!!"; if (MiscellaneousVars[2045] == 11) buffmsg1 = "\c[olive]DEFENSE DECREASED!!"; if (MiscellaneousVars[2045] == 12) buffmsg1 = "\c[lightblue]SPEED DECREASED!!"; if (MiscellaneousVars[2045] == 13) buffmsg1 = "\c[darkgreen]POISONED!!"; if (MiscellaneousVars[2045] == 14) buffmsg1 = "\c[purple]BLINDED!!"; if (MiscellaneousVars[2045] == 15) buffmsg1 = "\c[cream]ASLEEP!!"; if (MiscellaneousVars[2045] == 16) buffmsg1 = "\c[green]SPELLS SEALED!!"; if (MiscellaneousVars[2045] == 17) buffmsg1 = "\c[brick]YOU'RE EXHAUSTED!!"; */ if (buffid == 10) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 0; } // Oomph if (buffid == 11) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 1; } // Buff if (buffid == 12) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 2; } // Acceleratle if (buffid == 13) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 10; } // Blunt if (buffid == 14) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 11; } // Sap if (buffid == 15) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 12; } // Deceleratle if (buffid == 16) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 13; } // Poison if (buffid == 17) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 18; } // Corrosion if (buffid == 18) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 17; } // Fatigue if (buffid == 19) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 14; } // Blind if (buffid == 20) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 15; } // Sleep if (buffid == 21) { MiscellaneousVars[2040] = 70; MiscellaneousVars[2045] = 16; } // Silence } script "LevelCounter" ENTER { MiscellaneousVars[1000] += 1; } //***************** //***HUD Display*** //***************** script "HUDDISPLAY" ENTER { int debughud = GetCVar("dvdsdebug_huddisplays"); int debughud2 = GetCVar("dvdsdebug_huddisplays2"); str weapon = PlayerWeapon; if (debughud2 > 0) PrintBold(s:"debug1: ",s:weapon); int MaxHealthLimit = MaxHealthTrue * 2; int xpos; int ypos = 32.0; int msgdelay; int msgalpha; int MultiUpper, MultiLower; int ScreenXOffset; int ScreenYOffset; int tempvar1, tempvar2, tempvar3, tempvar4, tempvar5; int buttons = GetPlayerInput(0, INPUT_BUTTONS); int HUDGFXLevel = GetCVar("dvds_gfxeffectlevel"); int HUDMsgDelayBase = GetCVar("dvdshud_refreshdelay"); if (HUDMsgDelayBase < 1) HUDMsgDelayBase = 1; if (HUDMsgDelayBase > 420) HUDMsgDelayBase = 420; if (HUDGFXLevel == 0) HUDMsgDelayBase *= 1; else if (HUDGFXLevel == 1) HUDMsgDelayBase *= 3; else if (HUDGFXLevel == 2) HUDMsgDelayBase *= 9; int HUDMsgDelayFixed = HUDMsgDelayBase * 1.0; HUDMsgDelayFixed /= 35; HUDMsgDelayFixed += 0.008; int ExHUDMsgDelayFixed = 1 * 1.0; ExHUDMsgDelayFixed = GetCVar("dvdshud_display_extratics"); if (ExHUDMsgDelayFixed < 0) ExHUDMsgDelayFixed = 0; ExHUDMsgDelayFixed *= 0.02858; HUDMsgDelayFixed += ExHUDMsgDelayFixed; int overallhudalpha = GetCVar("dvdshud_generaltransperancy"); int EXPGainChecker = 1; if (ModType == 0 && GetCVar("dvds_expgains") == 0) EXPGainChecker = 0; // If in Classic mode and the EXP Gain option is turned off, don't show EXP stuff on HUD. str Keyname; int MaxEXPCombotimer; int MaxTensionChargeTimer; int TensionTimerMax = 3600; int CurrentValue, MaxValue; int WholeValue, ModuloValue; int HealthRatio; int MeterNotchOffset, ForEnd; int CostOfSpell; int VisibleNotchAmount, MaxNotchAmount; int HUDMsgIDAdd; int HUDMsgID; int NotchPos; int PowerUpCheckThing; if (GetCVar("screenblocks") < 12 && MenuSystemVars[0] == 0 && MiscellaneousVars[199] > 0 && MiscellaneousVars[2000] > 0 && MiscellaneousVars[25002] < 1 && GetCVar("dvdshud_showacshudelements") == 1) { if (ClassCheck > 1) //** NEW STYLE HUD HERE ** { /* // START NEW STYLE HUD MessageIDs used: [lower IDs mean closer (on top of higher numbers), higher IDs mean farther] 2001 - EXP Combo Meter Frame [Combos] 2002 - EXP Combo Meter Notches [Combos] 2003 - EXP Combo Meter Glass [Combos] 2004 - # of Kills [Combos] 2005 - "Kills" Label [Combos] 2006 - "OVERKILL" text [Combos] 2007 - EXP [from last kill] [Combos] 2008 - EXP Total + Combo Bonus [combo] 2009 - [Unused] 2010 - HP Gained during "LEVEL UP" [HP Info] 2011 - MP Gained during "LEVEL UP" [MP Info] 2012 - HP Label [HP Info] 2013 - MP Label [MP Info] 2014 - AP/HLCR Label [AP/HLCR Info] 2015 - Stamina Label [STAMINA Info] 2016 - LVL Label [LVL Info] 2017 - SV% Label [SV% Info] 2018 - AB% Label [AB% Info] 2019 - EV% Label [EV% Info] 2020 - EXP Label [EXP Info] 2021 - [unused] 2022 - [unused] 2023 - HP Amounts [HP Info] 2024 - HP Meter Border [HP Info] 2025 - HP Meter Frame [HP Info] 2026 - HP Meter Bonus/Penalty Glow [HP Info] 2027 - HP Meter "Overlife" Notches [HP Info] 2028 - HP Meter Notches [HP Info] 2029 - HP Meter Poison Frame 2030 - HP Meter Glass [HP Info] 2031 - [unused] 2032 - [unused] 2033 - MP Amounts [MP Info] 2034 - MP Meter "Focus" Border [MP Info] 2035 - MP Meter Border [MP Info] 2036 - MP Meter Bonus/Penalty Glow [MP Info] 2037 - MP Meter "Overmagic" Notches [MP Info] 2038 - MP Meter Notches [MP Info] 2039 - MP Meter Glass [MP Info] 2040 - [unused] 2041 - [unused] 2042 - [unused] 2043 - AP/HLCR Amounts [AP/HLCR Info] 2044 - AP "Armor Type" Meter Frame / HLCR "OverHeat" Meter Frame [AP/HLCR Info] 2045 - AP/HLCR Meter Frame [AP/HLCR Info] 2046 - HCLR Meter Bonus/Penalty Glow [HLCR Info] 2047 - AP Meter Notches / Hellcore "Overheat" Meter Notches [AP/HLCR Info] 2048 - Hellcore Meter Notches [AP/HLCR Info] 2049 - AP/HLCR Meter Glass [AP/HLCR Info] 2050 - [unused] 2051 - [unused] 2052 - [unused] 2053 - Stamina Amounts [STAMINA Info] 2054 - Stamina "Focus Charge" Meter Frame [STAMINA Info] 2055 - Stamina "Tension Charge" Meter Frame [STAMINA Info] 2056 - Stamina Meter Frame [STAMINA Info] 2057 - Stamina Meter Bonus/Penalty Glow [STAMINA Info] 2058 - Stamina Meter "OverStamina" Notches [STAMINA Info] 2059 - Stamina Meter Notches [STAMINA Info] 2060 - Stamina Meter Glass [STAMINA Info] 2061 - [unused] 2062 - [unused] 2063 - LVL Amounts [LVL Info] 2064 - LVL Meter Frame [LVL Info] 2065 - LVL Meter Notches [LVL Info] 2066 - LVL Meter Glass [LVL Info] 2067 - [unused] 2068 - [unused] 2069 - [unused] 2070 - [unused] 2071 - [unused] 2072 - [unused] 2073 - SV% Amounts [SV% Info] 2074 - SV% Meter Frame [SV% Info] 2075 - SV% Meter Notches [SV% Info] 2076 - SV% Meter Glass [SV% Info] 2077 - [unused] 2078 - [unused] 2079 - [unused] 2080 - [unused] 2081 - [unused] 2082 - [unused] 2083 - AB% Amounts [AB% Info] 2084 - AB% Meter Frame [AB% Info] 2085 - AB% Meter Notches [AB% Info] 2086 - AB% Meter Glass [AB% Info] 2087 - [unused] 2088 - [unused] 2089 - [unused] 2090 - [unused] 2091 - [unused] 2092 - [unused] 2093 - EV% Amounts [EV% Info] 2094 - EV% Meter Frame [EV% Info] 2095 - EV% Meter Notches [EV% Info] 2096 - EV% Meter Glass [EV% Info] 2097 - EXP Meter Border [EXP Info] 2098 - EXP Meter Ruler [EXP Info] 2099 - EXP Meter Notches [EXP Info] 2100 - EXP Meter Glass [EXP Info] 2101 - [unused] 2102 - [unused] 2103 - Tension-Charge Meter "Psyche" Border [Tension Charge/Timer] 2104 - Tension-Charge Meter Border [Tension Charge/Timer] 2105 - Tension-Charge Meter Notches [Tension Charge/Timer] 2106 - Tension-Timer Notches [Tension Charge/Timer] 2107 - Tension-Timer Glass [Tension Charge/Timer] 2108 - [unused] 2109 - [unused] 2110 - [unused] 2111 - [unused] 2112 - [unused] 2113 - Tension-Cooldown Meter "Max Cooldown" Border [Tension Cooldown] 2114 - Tension-Cooldown Meter Border [Tension Cooldown] 2115 - Tension-Cooldown Meter Notches [Tension Cooldown] 2116 - Tension Star Icon [Tension Star] 2117 - Tension Cooldown Meter Glass [Tension Cooldown] 2118 - Sauron Helmet Icon [Armor Icons] 2119 - Sauron Gauntlets Icon [Armor Icons] 2120 - One Ring Icon [Armor Icons] 2121-2133 - Flora-Specific Armor Icons [Armor Icons] 2134 - [unused] 2135 - [unused] 2136 - [unused] 2137 - [unused] 2138 - [unused] 2139 - [unused] 2140 - +user1 [Kick] Key Legend 2141 - "Aeon Points" Icon [Stat/AeonPts Icons/Values] 2142 - "Aeon Points" Value [Stat/AeonPts Icons/Values] 2143 - "Strength" Icon [Stat/AeonPts Icons/Values] 2144 - "Strength" Value [Stat/AeonPts Icons/Values] 2145 - "Defense" Icon [Stat/AeonPts Icons/Values] 2146 - "Defense" Value [Stat/AeonPts Icons/Values] 2147 - "Sorcery" Icon [Stat/AeonPts Icons/Values] 2148 - "Sorcery" Value [Stat/AeonPts Icons/Values] 2149 - "Therapeusis" Icon [Stat/AeonPts Icons/Values] 2150 - "Therapeusis" Value [Stat/AeonPts Icons/Values] 2151 - "Agility" Icon [Stat/AeonPts Icons/Values] 2152 - "Agility" Value [Stat/AeonPts Icons/Values] 2153 - "Deftness" Icon [Stat/AeonPts Icons/Values] 2154 - "Deftness" Value [Stat/AeonPts Icons/Values] 2155 - "Balance" Icon [Stat/AeonPts Icons/Values] 2156 - "Balance" Value [Stat/AeonPts Icons/Values] 2157 - "Jumping" Icon [Stat/AeonPts Icons/Values] 2158 - "Jumping" Value [Stat/AeonPts Icons/Values] 2159 - "Jumping" Value [Stat/AeonPts Icons/Values] 2161-2200 - Buff/Debuff Icons/Timers 2201 - Buff/Debuff Message #1 2202 - Buff/Debuff Message #2 2203 - Buff/Debuff Message #3 2204 - Buff/Debuff Message #4 2205 - Buff/Debuff Message #5 2206 - +user4 Key Legend 2207 - +altattack Key Legend 2208 - FlameCount Meter Border 2209 - FlameCount Meter Notches 2210 - FlameCount Meter Glass 2211 - Spin Attack Indicator Icon [Weapon/Ammo Display and Sceptre-EXP meter] 2212 - "AMMO" type label / Level Label and Amount [Hellcore] [Weapon/Ammo Display and Sceptre-EXP meter] 2213 - "AMMO" Amounts / Sceptre EXP [Weapon/Ammo Display and Sceptre-EXP meter] 2214 - "AMMO" Meter Empty "Glow" Border [Weapon/Ammo Display and Sceptre-EXP meter] 2215 - "AMMO" Meter / Sceptre EXP Meter Border [Weapon/Ammo Display and Sceptre-EXP meter] 2216 - "AMMO" Meter Notches / Sceptre Meter Notches [Weapon/Ammo Display and Sceptre-EXP meter] 2217 - "AMMO" Meter / Sceptre EXP Meter Glass [Weapon/Ammo Display and Sceptre-EXP meter] 2218 - [unused] 2219 - [unused] 2220 - [unused] 2221 - Weapon OverIcon #1 [Weapon/Ammo Display and Sceptre-EXP meter] 2222 - Weapon UnderIcon #1 [for Sigil outline for part amount display] 2223 - Tome of Power Spell Cost 1 [Heretic] 2224 - Tome of Power Spell Cost 2 [Heretic] 2225 - "HEAT"/"MP" type label / Level Label and Amount [Hellcore] [MinigunHeat/MP Display and meter 2] 2226 - "HEAT"/"MP" Amounts / Sceptre EXP [MinigunHeat/MP Display and meter 2] 2227 - "HEAT"/"MP" Meter Empty "Glow" Border [MinigunHeat/MP Display and meter 2] 2228 - "HEAT"/"MP" Meter / Sceptre EXP Meter Border [MinigunHeat/MP Display and meter 2] 2229 - "HEAT"/"MP" Meter Notches / Sceptre Meter Notches [MinigunHeat/MP Display and meter 2] 2230 - "HEAT"/"MP" Meter / Sceptre EXP Meter Glass [MinigunHeat/MP Display and meter 2] 2231-2241 - Weapon Slot Numbers 2242-2250 - [unused] 2251-2256 - Air Meter 2257-2262 - Items Meter 2263-2268 - Secrets Meter 2269-2274 - Kills Meter 2275 - Tension-OverPsyche Meter "OverPsyched" Border [Tension-OverPsyche] 2276 - Tension-OverPsyche Meter Border [Tension-OverPsyche] 2277 - Tension-OverPsyche Meter Notches [Tension-OverPsyche] 2278 - Tension-OverPsyche Meter Glass [Tension-OverPsyche] 2279 - Level Up Icon 2280 - Dash Available Icon 2281-2320 - Character Portrait Pieces 2321-2330 - QuickSpell Text Costs [Quickspell] 2332-2342 - QuickSpell Bind Key Display [Quickspell] 2343-2353 - Not Enough Mana Icons [Quickspell] 2354-2364 - QuickSpell Icons [Quickspell] 2365 - QuickSpell Box Style [Quickspell] 2371 - Spell Cost [Spell Box] 2372 - Spell "<" Button [Spell Box] 2373 - Spell ">" Button [Spell Box] 2374 - Spell "Left" Button [Spell Box] 2375 - Spell "Right" Button [Spell Box] 2376 - Spell "Use" Button [Spell Box] 2377 - Icon Shown on Spell Box [Spell Box] 2378 - Current Spell Icon [Spell Box] 2379 - Spell Style Box [Spell Box] 2401 - Boss HP Label [Boss Lifemeter] 2402 - Boss HP Amounts [Boss Lifemeter] 2403 - Boss HP Meter Border [Boss Lifemeter] 2404-2405 - Boss Meter Notches [Boss Lifemeter] 2406 - Boss HP Meter Glass [Boss Lifemeter] 2407 - Boss Name [Boss Lifemeter] 2408 - Boss Portrait [Boss Lifemeter] // END NEW STYLE HUD */ int ShowKeyLegend = GetCVar("dvdshud_showkeylegend"); int HudPrimaryMeters = GetCVar("dvdshud_showprimarymeters"); int HudSecondaryMeters = GetCVar("dvdshud_showsecondarymeters"); int HudOverlifeNotches = GetCVar("dvdshud_showoverlifenotches"); int HudWeaponSlots = GetCVar("dvdshud_showweaponslots"); str fontname; int fontnum; msgdelay = 0.036; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); xpos = MiscellaneousVars[2001]; ypos = MiscellaneousVars[2002]; int NewHUDWidth = GetCVar("dvdshud_hudwidth"); // 1440 is the "default" int NewHUDHeight = GetCVar("dvdshud_hudheight"); // 1080 is the "default" int HUDDefaultWidth = 1440; int HUDDefaultHeight = 1080; int CenterHUDWidth = (NewHUDWidth / 2) * 1.0; int CenterHUDHeight = (NewHUDHeight / 2) * 1.0; int ScreenXOffsetInt = GetCVar("dvdshud_widescreenxoffset"); int ScreenYOffsetInt = GetCVar("dvdshud_widescreenyoffset"); SetHudSize(NewHUDWidth,NewHUDHeight,0); // Since 1920x1080 isn't truly "supported" [ZDOOM(TM(TM(TM))), etc] :V xpos = MiscFixedVars[1]; ypos = MiscFixedVars[2]; xpos = MiscFixedVars[3]; ypos = MiscFixedVars[4]; xpos = MiscFixedVars[5]; ypos = MiscFixedVars[6]; xpos = MiscFixedVars[7]; ypos = MiscFixedVars[8]; xpos = MiscFixedVars[9]; ypos = MiscFixedVars[10]; xpos = MiscFixedVars[11]; ypos = MiscFixedVars[12]; xpos = MiscFixedVars[13]; ypos = MiscFixedVars[14]; xpos = MiscFixedVars[15]; ypos = MiscFixedVars[16]; xpos = MiscFixedVars[17]; ypos = MiscFixedVars[18]; xpos = MiscFixedVars[19]; ypos = MiscFixedVars[20]; //*********************** //**General Positioning** //*********************** // Healing/Damage Bursts int PopUpXTemp = NewHUDWidth * GetCVar("dvdshud_pdmgfxratio") / 10000; int PopUpYTemp = NewHUDWidth * GetCVar("dvdshud_pdmgfyratio") / 10000; int PopUpXPlacement = random((-PopUpXTemp),(PopUpXTemp)); int PopUpYPlacement = random((-PopUpYTemp),(PopUpYTemp)); PopUpXPlacement *= 1.0; PopUpYPlacement *= 1.0; int PopupHoldDuration = 0.0; int PopupFadeOutDuration = 0.0; int xposmod = 0.0; int yposmod = 0.0; int nodmgcheck = 0; int MonsterCrit; int playerdmgflashes = GetCVar("dvdshud_playerdmgflashes"); int crittimer; // Damage Number Flashes if (Timer() > 3) { // Check to see if Player took a Critical Hit [not a CRISIS attack, those are different :V] if (MiscellaneousVars[25301] > 0) { MonsterCrit = 1; if (ClassicDoomType != 3) { MiscellaneousVars[25301] = 0; } else // If in Hexen, do this dumb hacky-method because the displays are refreshed a tic AFTER verses other game modes x.x { MiscellaneousVars[187] += 1; if (MiscellaneousVars[187] >= 2) { MiscellaneousVars[25301] = 0; MiscellaneousVars[187] = 0; } } if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Monster Crit = ",d:MonsterCrit); } // Health PopupHoldDuration = 0.75 + ExHUDMsgDelayFixed; PopupFadeOutDuration = 0.5 + ExHUDMsgDelayFixed; xpos = CenterHUDWidth; ypos = CenterHUDHeight; msgalpha = 0.834; msgalpha = FixedMul(msgalpha,overallhudalpha); // [173] Shows "HealthDifference" in the new HUD for Player's "Damage/Healing" bursts. // [174] Shows "HealthDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [175] Shows "NewHealthValue" in the new HUD for the Player's "Damage/Healing" bursts. // HP/Health Damage/Heal if (MiscellaneousVars[173] != 0) { if (MiscellaneousVars[173] > 0) // Positive Value [Healing] { if (MiscellaneousVars[174] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration += -0.25; } if (MiscellaneousVars[175] >= MaxHealthLimit) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[173],s:" (",d:MiscellaneousVars[174],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_green,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[173]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_green,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } SetFont("BBURHPHL"); yposmod = 0.0; // 1.0 if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } else if (MiscellaneousVars[173] < 0) // Negative Value [Damage] { MiscellaneousVars[173] *= -1; MiscellaneousVars[174] *= -1; if (MiscellaneousVars[174] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration += -0.25; } if (MiscellaneousVars[175] <= 0) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } if (MonsterCrit != 0) { PopupHoldDuration *= 2; PopupFadeOutDuration *= 2; } SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[173],s:" (",d:MiscellaneousVars[174],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_brick,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[173]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_brick,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } // Damage/Heal Cloud/Bursts if (MiscellaneousVars[175] <= 0) // Death [for now] { SetFont("BBURHPCP"); xposmod = 20.0; // 20.0 [large] yposmod = 10.0; // 10.0 [large] } else // Damage w/o Death { if (MonsterCrit == 0) { SetFont("BBURHPDP"); xposmod = 2.0; // 0.0 yposmod = 0.0; // 1.0 if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Health Dmg = ",f:xposmod,s:" ",f:yposmod,s:" MonsterCrit: ",d:MonsterCrit); } else { SetFont("BBURHPCT"); xposmod = 4.0; // 0.0 yposmod = 6.0; // 1.0 if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Health Dmg = ",f:xposmod,s:" ",f:yposmod,s:" MonsterCrit: ",d:MonsterCrit); } } if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+xposmod+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Health Fade Duration = ",f:PopupHoldDuration,s:" ",f:PopupFadeOutDuration); } else { nodmgcheck = 0; if (MiscellaneousVars[25302] > 0) { MiscellaneousVars[25302] = 0; SetFont("BBURMIS3"); // BBURMISS nodmgcheck++; } if (MiscellaneousVars[25303] > 0) { MiscellaneousVars[25303] = 0; SetFont("BBURNDM2"); nodmgcheck++; } if (MiscellaneousVars[25304] > 0) { MiscellaneousVars[25304] = 0; SetFont("BBURINV2"); nodmgcheck++; } if (MiscellaneousVars[25305] > 0) { MiscellaneousVars[25305] = 0; SetFont("BBURASR2"); nodmgcheck++; } if (nodmgcheck > 0) { yposmod = 0.0; // 9.0 PopupHoldDuration += 0.375; PopupFadeOutDuration += 0.25; if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_white,xpos+xposmod+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } } // Armor PopupHoldDuration = 0.75 + ExHUDMsgDelayFixed; PopupFadeOutDuration = 0.5 + ExHUDMsgDelayFixed; xpos = CenterHUDWidth - 48.0; ypos = CenterHUDHeight - 48.0; if (MiscellaneousVars[174] >= 30) { xpos -= 32.0; ypos -= 32.0; } msgalpha = 0.834; msgalpha = FixedMul(msgalpha,overallhudalpha); // [176] Shows "ArmorDifference" in the new HUD for Player's "Damage/Healing" bursts. // [177] Shows "ArmorDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [178] Shows "NewArmorValue" in the new HUD for the Player's "Damage/Healing" bursts. // AP/Armor Damage/Heal if (MiscellaneousVars[176] != 0) { if (MiscellaneousVars[176] > 0) // Positive Value { if (MiscellaneousVars[177] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration += -0.25; } if (MiscellaneousVars[178] >= CurrentMaxArmor) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[176],s:" (",d:MiscellaneousVars[177],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_gold,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[176]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_gold,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } SetFont("BBURAPHL"); yposmod = 0.0; // 1.0 if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } else if (MiscellaneousVars[176] < 0) // Negative Value { MiscellaneousVars[176] *= -1; MiscellaneousVars[177] *= -1; if (MiscellaneousVars[177] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration += -0.25; } if (MiscellaneousVars[178] <= 0) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } if (MonsterCrit != 0) { PopupHoldDuration *= 2; PopupFadeOutDuration *= 2; } xpos -= 32.0; ypos -= 32.0; SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[176],s:" (",d:MiscellaneousVars[177],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_darkgreen,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[176]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_darkgreen,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } // Damage/Heal Cloud/Bursts if (MiscellaneousVars[178] <= 0) // Armor Break [for now] { SetFont("BBURAPCT"); xposmod = 20.0; // 20.0 [large], 8.0 [small] yposmod = 10.0; // 10.0 [large], 6.0 [small] MiscellaneousVars[25203]++; } else // Damage w/o Armor Break { SetFont("BBURAPDM"); xposmod = 2.0; // 0.0 yposmod = 0.0; // 1.0 if (MonsterCrit != 0) { SetFont("BBURAPCR"); xposmod += 2.0; // 0.0 yposmod += 6.0; // 1.0 if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Armor Dmg = ",f:xposmod,s:" ",f:yposmod); } MiscellaneousVars[25204]++; } if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+xposmod+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Armor Fade Duration = ",f:PopupHoldDuration,s:" ",f:PopupFadeOutDuration); } // Mana/MP PopupHoldDuration = 0.75 + ExHUDMsgDelayFixed; PopupFadeOutDuration = 0.5 + ExHUDMsgDelayFixed; xpos = CenterHUDWidth + 48.0; ypos = CenterHUDHeight + 48.0; if (MiscellaneousVars[174] >= 30) { xpos += 32.0; ypos += 32.0; } msgalpha = 0.834; msgalpha = FixedMul(msgalpha,overallhudalpha); // [236] Shows "ManaDifference" in the new HUD for Player's "Damage/Healing" bursts. // [237] Shows "ManaDiffRatio" in the new HUD for Player's "Damage/Healing" bursts. // [238] Shows "NewManaValue" in the new HUD for the Player's "Damage/Healing" bursts. // MP/Mana Damage/Heal if (MiscellaneousVars[236] != 0) { if (MiscellaneousVars[236] > 0) // Positive Value { if (MiscellaneousVars[237] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration += -0.25; } if (MiscellaneousVars[238] >= CurrentMaxArmor) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[236],s:" (",d:MiscellaneousVars[237],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_lightblue,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[236]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_lightblue,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } SetFont("BBURMPHL"); yposmod = 0.0; // 1.0 if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } else if (MiscellaneousVars[236] < 0) // Negative Value { MiscellaneousVars[236] *= -1; MiscellaneousVars[237] *= -1; if (MiscellaneousVars[237] < 5) { PopupHoldDuration += -0.375; PopupFadeOutDuration = -0.25; } if (MiscellaneousVars[238] <= 0) { PopupHoldDuration += 0.75; PopupFadeOutDuration += 0.5; } if (MonsterCrit != 0) { PopupHoldDuration *= 2; PopupFadeOutDuration *= 2; } xpos += 32.0; ypos += 32.0; SetFont("DQGDMNMED"); // DQHUDFONT yposmod = 0.0; // 9.0 if (playerdmgflashes) { if (playerdmgflashes > 1) { HudMessage(d:MiscellaneousVars[236],s:" (",d:MiscellaneousVars[237],s:"%)"; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_brick,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } else { HudMessage(d:MiscellaneousVars[236]; HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_brick,xpos+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } // Damage/Heal Cloud/Bursts if (MiscellaneousVars[238] <= 0) // Mana Depleted Fully { SetFont("BBURMPCT"); xposmod = 20.0; // 20.0 [large], 8.0 [small] yposmod = 10.0; // 10.0 [large], 6.0 [small] } else // Damage w/o Mana Depletion { SetFont("BBURMPDM"); xposmod = 2.0; // 0.0 yposmod = 0.0; // 1.0 if (MonsterCrit != 0) { SetFont("BBURMPCR"); xposmod += 2.0; // 0.0 yposmod += 6.0; // 1.0 if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Mana Dmg = ",f:xposmod,s:" ",f:yposmod); } } if (playerdmgflashes) { HudMessage(s:"A";HUDMSG_ALPHA|HUDMSG_FADEOUT,0,cr_untranslated,xpos+xposmod+PopUpXPlacement,ypos+yposmod+PopUpYPlacement,PopupHoldDuration,PopupFadeOutDuration,0.834); } } } // Remove Monster Crit Flag if (MonsterCrit != 0) { if (GetCVar("dvdsdebug_playerdmgdisplays") > 0) PrintBold(s:"Monster Crit = ",d:MonsterCrit); MonsterCrit = 0; } } //********************** //********************** //********************** //********************** //********************** //******* Left ******* //********************** //********************** //********************** //********************** //********************** ScreenXOffset = GetCVar("dvdshud_widescreenxoffset") * -1.0; // Left-Side Means Negative ScreenXOffsetInt = GetCVar("dvdshud_widescreenxoffset") * -1; // Left-Side Means Negative //**************** //***Upper Left*** //**************** ScreenYOffset = GetCVar("dvdshud_widescreenyoffset") * -1.0; // Upper-Side Means Negative ScreenYOffsetInt = GetCVar("dvdshud_widescreenyoffset") * -1; // Upper-Side Means Negative //*********************************** //**"Boss" Lifemeter [2401 to 2408]** UPPER LEFT //*********************************** // 2401 - Boss HP Label // 2402 - Boss HP Amounts, // 2403 - Boss HP Meter Border, // 2404-2405 - Boss Meter Notches // 2406 - Boss HP Meter Glass // 2407 - Boss Name // 2408 - Boss Portrait if (GetCVar("dvdshud_showbosslifemeter") > 0) { int BossHealth; MiscellaneousVars[2027] = 0; BossHealth = GetActorProperty(1124,APROP_Health); if (BossHealth > 0) { MiscellaneousVars[2027] = 1124; } // Check for a Sauravatar first else { BossHealth = GetActorProperty(1123,APROP_Health); if (BossHealth > 0) { MiscellaneousVars[2027] = 1123; } // Check for a Sauron's Eye [Main] second else { BossHealth = GetActorProperty(1222,APROP_Health); // use tag 1222 for custom "bosses" if (BossHealth > 0) { MiscellaneousVars[2027] = 1222; } // Check for custom bosses third if neither of the above exists } } SetActivator(0); if (MiscellaneousVars[2027] > 0) { SetActivator(MiscellaneousVars[2027]); if (IsPointerEqual(AAPTR_TARGET, AAPTR_NULL) == FALSE || CheckActorClass(MiscellaneousVars[2027], "DSBossBrain")) { SetActivator(0); CurrentValue = GetActorProperty(MiscellaneousVars[2027],APROP_Health); // Current Health for Boss MaxValue = GetUserVariable(MiscellaneousVars[2027],"user_MaxHP"); // Max Health for Boss if (MaxValue > 0) { // Boss "HP" Label xpos = ScreenXOffset + 168.0; // 168.0; ypos = ScreenYOffset + 92.0; // 92.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(s:"HP";HUDMSG_ALPHA,2401,cr_orange,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Boss HP Amounts xpos = ScreenXOffset + 371.0; // 371.0; ypos = ScreenYOffset + 96.0; // 96.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2402,cr_orange,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Boss Meter Border xpos = ScreenXOffset + 369.0; // 369.0 ypos = ScreenYOffset + 94.0; // 94.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("BLMMFRAM"); HudMessage(s:"A";HUDMSG_ALPHA,2403,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Boss Meter Notches CurrentValue = GetActorProperty(MiscellaneousVars[2027],APROP_Health); // Current Health for Boss MaxValue = GetUserVariable(MiscellaneousVars[2027],"user_MaxHP"); // Max Health for Boss fontname = "HPBFN"; // First 200 Notches fontnum = CurrentValue * 400 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 269.0; ypos = ScreenYOffset + 92.0; // 94.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2404,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Second 200 Notches fontnum = (CurrentValue * 400 / MaxValue) - 200; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 469.0; ypos = ScreenYOffset + 92.0; // 94.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2405,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Boss Meter Glass xpos = ScreenXOffset + 369.0; // 369.0 ypos = ScreenYOffset + 94.0; // 94.0 SetFont("BLMMGLAS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2406,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Boss Name xpos = ScreenXOffset + 169.0 + 0.1; // 169.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 60.0; // 60.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("BLMNNORM"); if (MiscellaneousVars[2027] == 1123) SetFont("BLMNSAEY"); if (MiscellaneousVars[2027] == 1124) SetFont("BLMNSAAV"); HudMessage(s:"A";HUDMSG_ALPHA,2407,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Boss Portrait xpos = ScreenXOffset + 126.0; // 126.0 ypos = ScreenYOffset + 75.0; // 75.0 SetFont("BLMPNORM"); if (MiscellaneousVars[2027] == 1123) SetFont("BLMPSAEY"); if (MiscellaneousVars[2027] == 1124) SetFont("BLMPSAAV"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2408,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } } SetActivator(0); //**************** //***Lower Left*** //**************** ScreenYOffset = GetCVar("dvdshud_widescreenyoffset") * 1.0; // Lower-Side Means Positive Y //************************** //**"LEVEL UP" Icon [2279]** //************************** // 2279 - Level Up Icon // 2280 - Dash Available Icon // 2281-2320 - Character Portrait Pieces // 2321-2331 - QuickSpell Text Costs // 2332-2342 - QuickSpell Bind Key Display // 2343-2353 - Not Enough Mana Icons // 2354-2364 - QuickSpell Icons // 2365 - QuickSpell Box Style tempvar1 = 172; if (MiscellaneousVars[171] > 0) // Level up timer { xpos = ScreenXOffset + 240.0; // 240.0 ypos = ScreenYOffset + 576.0; // 640.0 msgalpha = 0.975; MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.975; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.96; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.945; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.93; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.915; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.90; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.885; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.87; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.855; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.84; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.825; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.81; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.795; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.78; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.765; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] = 1; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("LEVELUP"); HudMessage(s:"A";HUDMSG_ALPHA,2279,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] = 0; } //****************************** //**Dash Available Icon [2280]** //****************************** xpos = ScreenXOffset + 64.0; // 60.0 ypos = ScreenYOffset + 784.0; // 784.0; if (MiscellaneousVars[25001] > 0 && MiscellaneousVars[21] >= MiscellaneousVars[638]) { if (MiscellaneousVars[166] == 0 && MiscellaneousVars[85] != -1) { msgalpha = 0.75; SetFont("DASHICON"); HudMessage(s:"A";HUDMSG_ALPHA,2280,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[166] == 0 && MiscellaneousVars[85] == -1) { msgalpha = 0.25; SetFont("DASHICON"); HudMessage(s:"A";HUDMSG_ALPHA,2280,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } //********************************** //**Character Portrait [2281-2320]** //********************************** str formtype; str formtype2; str formtype3; str formtype4; str dmgtype; str dmgtype2; str dmgtype3; str dmgtype4; xpos = ScreenXOffset + 200.0; // 200.0 ypos = ScreenYOffset + 814.0; // 814.0; msgalpha = 0.75; // Blindness Overlay [2281] int blindnessframe; MiscellaneousVars[458]++; if (MiscellaneousVars[458] >= 15) MiscellaneousVars[458] = 0; if (MiscellaneousVars[458] >= 0 & MiscellaneousVars[458] <= 2) blindnessframe = 1; if (MiscellaneousVars[458] >= 3 & MiscellaneousVars[458] <= 5) blindnessframe = 2; if (MiscellaneousVars[458] >= 6 & MiscellaneousVars[458] <= 8) blindnessframe = 3; if (MiscellaneousVars[458] >= 9 & MiscellaneousVars[458] <= 11) blindnessframe = 4; if (MiscellaneousVars[458] >= 12 & MiscellaneousVars[458] <= 14) blindnessframe = 5; if (PowerupTimer[19] > 0 && MiscellaneousVars[25001] > 0) { formtype2 = "BLND"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:blindnessframe); SetFont(fontname); if (CharacterClass != 2) SetFont("PBLKIMG"); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2281,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff Overlays (6) [Divine Avatar Aura] [2282] SetFont("PBLKIMG"); int divineavatarframe; MiscellaneousVars[456]++; if (MiscellaneousVars[456] >= 30) MiscellaneousVars[456] = 0; if (MiscellaneousVars[456] >= 0 & MiscellaneousVars[456] <= 2) divineavatarframe = 1; if (MiscellaneousVars[456] >= 3 & MiscellaneousVars[456] <= 5) divineavatarframe = 2; if (MiscellaneousVars[456] >= 6 & MiscellaneousVars[456] <= 8) divineavatarframe = 3; if (MiscellaneousVars[456] >= 9 & MiscellaneousVars[456] <= 11) divineavatarframe = 4; if (MiscellaneousVars[456] >= 12 & MiscellaneousVars[456] <= 14) divineavatarframe = 5; if (MiscellaneousVars[456] >= 15 & MiscellaneousVars[456] <= 17) divineavatarframe = 6; if (MiscellaneousVars[456] >= 18 & MiscellaneousVars[456] <= 20) divineavatarframe = 5; if (MiscellaneousVars[456] >= 21 & MiscellaneousVars[456] <= 23) divineavatarframe = 4; if (MiscellaneousVars[456] >= 24 & MiscellaneousVars[456] <= 26) divineavatarframe = 3; if (MiscellaneousVars[456] >= 27 & MiscellaneousVars[456] <= 29) divineavatarframe = 2; if (PowerupTimer[7] > 0 && MiscellaneousVars[25001] > 0) { formtype2 = "DVAV"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:divineavatarframe); SetFont(fontname); msgalpha = 1.0; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2282,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff Overlays (5) [Curse] [2283-2284] if (MiscellaneousVars[25112] > 0 && MiscellaneousVars[25001] > 0) { MiscellaneousVars[448]++; // Curse Overall Transperancy/Alpha if (MiscellaneousVars[448] == 1 || MiscellaneousVars[448] == 35) msgalpha = 0.875; if (MiscellaneousVars[448] == 2 || MiscellaneousVars[448] == 34) msgalpha = 0.864; // -0.011 if (MiscellaneousVars[448] == 3 || MiscellaneousVars[448] == 33) msgalpha = 0.853; if (MiscellaneousVars[448] == 4 || MiscellaneousVars[448] == 32) msgalpha = 0.842; if (MiscellaneousVars[448] == 5 || MiscellaneousVars[448] == 31) msgalpha = 0.831; if (MiscellaneousVars[448] == 6 || MiscellaneousVars[448] == 30) msgalpha = 0.820; if (MiscellaneousVars[448] == 7 || MiscellaneousVars[448] == 29) msgalpha = 0.809; if (MiscellaneousVars[448] == 8 || MiscellaneousVars[448] == 28) msgalpha = 0.798; if (MiscellaneousVars[448] == 9 || MiscellaneousVars[448] == 27) msgalpha = 0.787; if (MiscellaneousVars[448] == 10 || MiscellaneousVars[448] == 26) msgalpha = 0.776; if (MiscellaneousVars[448] == 11 || MiscellaneousVars[448] == 25) msgalpha = 0.765; if (MiscellaneousVars[448] == 12 || MiscellaneousVars[448] == 24) msgalpha = 0.754; if (MiscellaneousVars[448] == 13 || MiscellaneousVars[448] == 23) msgalpha = 0.743; if (MiscellaneousVars[448] == 14 || MiscellaneousVars[448] == 22) msgalpha = 0.732; if (MiscellaneousVars[448] == 15 || MiscellaneousVars[448] == 21) msgalpha = 0.721; if (MiscellaneousVars[448] == 16 || MiscellaneousVars[448] == 20) msgalpha = 0.710; if (MiscellaneousVars[448] == 17 || MiscellaneousVars[448] == 19) msgalpha = 0.699; if (MiscellaneousVars[448] == 18) msgalpha = 0.688; // -0.187 if (MiscellaneousVars[448] >= 35) MiscellaneousVars[448] -= 34; int curseoutlineframe; MiscellaneousVars[449]++; if (MiscellaneousVars[449] >= 0 & MiscellaneousVars[449] <= 1) curseoutlineframe = 1; if (MiscellaneousVars[449] >= 2 & MiscellaneousVars[449] <= 3 || MiscellaneousVars[449] >= 38 & MiscellaneousVars[449] <= 39) curseoutlineframe = 2; if (MiscellaneousVars[449] >= 4 & MiscellaneousVars[449] <= 5 || MiscellaneousVars[449] >= 36 & MiscellaneousVars[449] <= 37) curseoutlineframe = 3; if (MiscellaneousVars[449] >= 6 & MiscellaneousVars[449] <= 7 || MiscellaneousVars[449] >= 34 & MiscellaneousVars[449] <= 35) curseoutlineframe = 4; if (MiscellaneousVars[449] >= 8 & MiscellaneousVars[449] <= 9 || MiscellaneousVars[449] >= 32 & MiscellaneousVars[449] <= 33) curseoutlineframe = 5; if (MiscellaneousVars[449] >= 10 & MiscellaneousVars[449] <= 11 || MiscellaneousVars[449] >= 30 & MiscellaneousVars[449] <= 31) curseoutlineframe = 6; if (MiscellaneousVars[449] >= 12 & MiscellaneousVars[449] <= 13 || MiscellaneousVars[449] >= 28 & MiscellaneousVars[449] <= 29) curseoutlineframe = 7; if (MiscellaneousVars[449] >= 14 & MiscellaneousVars[449] <= 15 || MiscellaneousVars[449] >= 26 & MiscellaneousVars[449] <= 27) curseoutlineframe = 8; if (MiscellaneousVars[449] >= 16 & MiscellaneousVars[449] <= 17 || MiscellaneousVars[449] >= 24 & MiscellaneousVars[449] <= 25) curseoutlineframe = 9; if (MiscellaneousVars[449] >= 18 & MiscellaneousVars[449] <= 19 || MiscellaneousVars[449] >= 22 & MiscellaneousVars[449] <= 23) curseoutlineframe = 10; if (MiscellaneousVars[449] >= 20 & MiscellaneousVars[449] <= 21) curseoutlineframe = 11; if (MiscellaneousVars[449] >= 40) MiscellaneousVars[449] = 0; formtype2 = "CROL"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } if (curseoutlineframe == 1) formtype3 = "1"; if (curseoutlineframe == 2) formtype3 = "2"; if (curseoutlineframe == 3) formtype3 = "3"; if (curseoutlineframe == 4) formtype3 = "4"; if (curseoutlineframe == 5) formtype3 = "5"; if (curseoutlineframe == 6) formtype3 = "6"; if (curseoutlineframe == 7) formtype3 = "7"; if (curseoutlineframe == 8) formtype3 = "8"; if (curseoutlineframe == 9) formtype3 = "9"; if (curseoutlineframe == 10) formtype3 = "A"; if (curseoutlineframe == 11) formtype3 = "B"; fontname = StrParam(s:formtype,s:formtype2,s:formtype3); SetFont(fontname); if (CharacterClass != 2) SetFont("PBLKIMG"); if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,1.25); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2283,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); int curseoverlayframe; MiscellaneousVars[450]++; if (MiscellaneousVars[450] >= 0 & MiscellaneousVars[450] <= 2) curseoverlayframe = 1; if (MiscellaneousVars[450] >= 3 & MiscellaneousVars[450] <= 5 || MiscellaneousVars[450] >= 57 & MiscellaneousVars[450] <= 59) curseoverlayframe = 2; if (MiscellaneousVars[450] >= 6 & MiscellaneousVars[450] <= 8 || MiscellaneousVars[450] >= 54 & MiscellaneousVars[450] <= 56) curseoverlayframe = 3; if (MiscellaneousVars[450] >= 9 & MiscellaneousVars[450] <= 11 || MiscellaneousVars[450] >= 51 & MiscellaneousVars[450] <= 53) curseoverlayframe = 4; if (MiscellaneousVars[450] >= 12 & MiscellaneousVars[450] <= 14 || MiscellaneousVars[450] >= 48 & MiscellaneousVars[450] <= 50) curseoverlayframe = 5; if (MiscellaneousVars[450] >= 15 & MiscellaneousVars[450] <= 17 || MiscellaneousVars[450] >= 45 & MiscellaneousVars[450] <= 47) curseoverlayframe = 6; if (MiscellaneousVars[450] >= 18 & MiscellaneousVars[450] <= 20 || MiscellaneousVars[450] >= 42 & MiscellaneousVars[450] <= 44) curseoverlayframe = 7; if (MiscellaneousVars[450] >= 21 & MiscellaneousVars[450] <= 23 || MiscellaneousVars[450] >= 39 & MiscellaneousVars[450] <= 41) curseoverlayframe = 8; if (MiscellaneousVars[450] >= 24 & MiscellaneousVars[450] <= 26 || MiscellaneousVars[450] >= 36 & MiscellaneousVars[450] <= 38) curseoverlayframe = 9; if (MiscellaneousVars[450] >= 27 & MiscellaneousVars[450] <= 29 || MiscellaneousVars[450] >= 33 & MiscellaneousVars[450] <= 35) curseoverlayframe = 10; if (MiscellaneousVars[450] >= 30 & MiscellaneousVars[450] <= 32) curseoverlayframe = 11; if (MiscellaneousVars[450] >= 60) MiscellaneousVars[450] = 0; formtype2 = "CROV"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } if (curseoverlayframe == 1) formtype3 = "1"; if (curseoverlayframe == 2) formtype3 = "2"; if (curseoverlayframe == 3) formtype3 = "3"; if (curseoverlayframe == 4) formtype3 = "4"; if (curseoverlayframe == 5) formtype3 = "5"; if (curseoverlayframe == 6) formtype3 = "6"; if (curseoverlayframe == 7) formtype3 = "7"; if (curseoverlayframe == 8) formtype3 = "8"; if (curseoverlayframe == 9) formtype3 = "9"; if (curseoverlayframe == 10) formtype3 = "A"; if (curseoverlayframe == 11) formtype3 = "B"; fontname = StrParam(s:formtype,s:formtype2,s:formtype3); SetFont(fontname); if (CharacterClass != 2) SetFont("PBLKIMG"); if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,1.25); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2284,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff Overlays (4) [Poison Aura] [2285] SetFont("PBLKIMG"); int poisonoverlayframe; MiscellaneousVars[451]++; // Buff Overlay Timer 1 [Overlay Frame] if (MiscellaneousVars[451] >= 0 & MiscellaneousVars[451] <= 3) poisonoverlayframe = 0; if (MiscellaneousVars[451] >= 4 & MiscellaneousVars[451] <= 7) poisonoverlayframe = 1; if (MiscellaneousVars[451] >= 8 & MiscellaneousVars[451] <= 11) poisonoverlayframe = 2; if (MiscellaneousVars[451] >= 12 & MiscellaneousVars[451] <= 15) poisonoverlayframe = 3; if (MiscellaneousVars[451] >= 16 & MiscellaneousVars[451] <= 19) poisonoverlayframe = 4; if (MiscellaneousVars[451] >= 20 & MiscellaneousVars[451] <= 23) poisonoverlayframe = 5; if (MiscellaneousVars[451] >= 24 & MiscellaneousVars[451] <= 27) poisonoverlayframe = 6; if (MiscellaneousVars[451] >= 28 & MiscellaneousVars[451] <= 31) poisonoverlayframe = 7; if (MiscellaneousVars[451] >= 32 & MiscellaneousVars[451] <= 35) poisonoverlayframe = 8; if (MiscellaneousVars[451] >= 36 & MiscellaneousVars[451] <= 39) poisonoverlayframe = 9; if (MiscellaneousVars[451] >= 40) MiscellaneousVars[451] -= 40; if (PowerupTimer[16] > 0 && MiscellaneousVars[25001] > 0) { formtype2 = "POIS"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:poisonoverlayframe); SetFont(fontname); if (CharacterClass != 2) SetFont("PBLKIMG"); msgalpha = 1.0; MiscellaneousVars[452]++; // Buff Overlay Timer 2 [Overlay Alpha] if (MiscellaneousVars[452] == 1 || MiscellaneousVars[452] == 35) msgalpha = 0.875; if (MiscellaneousVars[452] == 2 || MiscellaneousVars[452] == 34) msgalpha = 0.853; if (MiscellaneousVars[452] == 3 || MiscellaneousVars[452] == 33) msgalpha = 0.831; if (MiscellaneousVars[452] == 4 || MiscellaneousVars[452] == 32) msgalpha = 0.809; if (MiscellaneousVars[452] == 5 || MiscellaneousVars[452] == 31) msgalpha = 0.787; if (MiscellaneousVars[452] == 6 || MiscellaneousVars[452] == 30) msgalpha = 0.765; if (MiscellaneousVars[452] == 7 || MiscellaneousVars[452] == 29) msgalpha = 0.743; if (MiscellaneousVars[452] == 8 || MiscellaneousVars[452] == 28) msgalpha = 0.721; if (MiscellaneousVars[452] == 9 || MiscellaneousVars[452] == 27) msgalpha = 0.699; if (MiscellaneousVars[452] == 10 || MiscellaneousVars[452] == 26) msgalpha = 0.677; if (MiscellaneousVars[452] == 11 || MiscellaneousVars[452] == 25) msgalpha = 0.655; if (MiscellaneousVars[452] == 12 || MiscellaneousVars[452] == 24) msgalpha = 0.633; if (MiscellaneousVars[452] == 13 || MiscellaneousVars[452] == 23) msgalpha = 0.611; if (MiscellaneousVars[452] == 14 || MiscellaneousVars[452] == 22) msgalpha = 0.589; if (MiscellaneousVars[452] == 15 || MiscellaneousVars[452] == 21) msgalpha = 0.567; if (MiscellaneousVars[452] == 16 || MiscellaneousVars[452] == 20) msgalpha = 0.545; if (MiscellaneousVars[452] == 17 || MiscellaneousVars[452] == 19) msgalpha = 0.523; if (MiscellaneousVars[452] == 18) msgalpha = 0.501; if (MiscellaneousVars[452] >= 35) MiscellaneousVars[452] -= 34; msgalpha += 0.00; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2285,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff Overlays (1) [Fear Aura] [2286] int fearauraframe = 0; MiscellaneousVars[147]++; // Buff Overlay Timer 1 [Overlay Frame] if (MiscellaneousVars[147] >= 20) MiscellaneousVars[147] -= 20; if (MiscellaneousVars[147] == 0) fearauraframe = 0; if (MiscellaneousVars[147] == 1) fearauraframe = 0; if (MiscellaneousVars[147] == 2 || MiscellaneousVars[147] == 19) fearauraframe = 1; if (MiscellaneousVars[147] == 3 || MiscellaneousVars[147] == 18) fearauraframe = 1; if (MiscellaneousVars[147] == 4 || MiscellaneousVars[147] == 17) fearauraframe = 2; if (MiscellaneousVars[147] == 5 || MiscellaneousVars[147] == 16) fearauraframe = 2; if (MiscellaneousVars[147] == 6 || MiscellaneousVars[147] == 15) fearauraframe = 3; if (MiscellaneousVars[147] == 7 || MiscellaneousVars[147] == 14) fearauraframe = 3; if (MiscellaneousVars[147] == 8 || MiscellaneousVars[147] == 13) fearauraframe = 4; if (MiscellaneousVars[147] == 9 || MiscellaneousVars[147] == 12) fearauraframe = 4; if (MiscellaneousVars[147] == 10) fearauraframe = 5; if (MiscellaneousVars[147] == 11) fearauraframe = 5; SetFont("PBLKIMG"); if (PowerupTimer[6] > 0 && MiscellaneousVars[25001] > 0) { formtype2 = "FRAR"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:fearauraframe); SetFont(fontname); if (CharacterClass != 2) SetFont("PBLKIMG"); msgalpha = 1.0; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2286,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff Overlays (2) [ATK/DEF/SPD Up/Down] [2287] MiscellaneousVars[138]++; // Buff Overlay Timer 3 [Overlay Type] if (MiscellaneousVars[138] >= 120) MiscellaneousVars[138] -= 120; int bufftypebitfield = 0; if (PowerupTimer[10] > 0 || PowerupTimer[13] > 0) bufftypebitfield += 1; if (PowerupTimer[11] > 0 || PowerupTimer[14] > 0) bufftypebitfield += 2; if (PowerupTimer[12] > 0 || PowerupTimer[15] > 0) bufftypebitfield += 4; if (bufftypebitfield == 1) // ATK { if (PowerupTimer[10] > 0 && PowerupTimer[13] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 0; if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 3; } else { if (PowerupTimer[10] > 0) MiscellaneousVars[139] = 0; if (PowerupTimer[13] > 0) MiscellaneousVars[139] = 3; } } if (bufftypebitfield == 2) // DEF { if (PowerupTimer[11] > 0 && PowerupTimer[14] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 1; if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 4; } else { if (PowerupTimer[11] > 0) MiscellaneousVars[139] = 1; if (PowerupTimer[14] > 0) MiscellaneousVars[139] = 4; } } if (bufftypebitfield == 4) // SPD { if (PowerupTimer[12] > 0 && PowerupTimer[15] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 2; if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 5; } else { if (PowerupTimer[12] > 0) MiscellaneousVars[139] = 2; if (PowerupTimer[15] > 0) MiscellaneousVars[139] = 5; } } if (bufftypebitfield == 3) // ATK/DEF { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) { if (PowerupTimer[10] > 0 && PowerupTimer[13] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 29) MiscellaneousVars[139] = 0; if (MiscellaneousVars[138] >= 30 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 3; } else { if (PowerupTimer[10] > 0) MiscellaneousVars[139] = 0; if (PowerupTimer[13] > 0) MiscellaneousVars[139] = 3; } } if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) { if (PowerupTimer[11] > 0 && PowerupTimer[14] > 0) { if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 89) MiscellaneousVars[139] = 1; if (MiscellaneousVars[138] >= 90 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 4; } else { if (PowerupTimer[11] > 0) MiscellaneousVars[139] = 1; if (PowerupTimer[14] > 0) MiscellaneousVars[139] = 4; } } } if (bufftypebitfield == 5) // ATK/SPD { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) { if (PowerupTimer[10] > 0 && PowerupTimer[13] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 29) MiscellaneousVars[139] = 0; if (MiscellaneousVars[138] >= 30 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 3; } else { if (PowerupTimer[10] > 0) MiscellaneousVars[139] = 0; if (PowerupTimer[13] > 0) MiscellaneousVars[139] = 3; } } if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) { if (PowerupTimer[12] > 0 && PowerupTimer[15] > 0) { if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 89) MiscellaneousVars[139] = 2; if (MiscellaneousVars[138] >= 90 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 5; } else { if (PowerupTimer[12] > 0) MiscellaneousVars[139] = 2; if (PowerupTimer[15] > 0) MiscellaneousVars[139] = 5; } } } if (bufftypebitfield == 6) // DEF/SPD { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 59) { if (PowerupTimer[11] > 0 && PowerupTimer[14] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 29) MiscellaneousVars[139] = 1; if (MiscellaneousVars[138] >= 30 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 4; } else { if (PowerupTimer[11] > 0) MiscellaneousVars[139] = 1; if (PowerupTimer[14] > 0) MiscellaneousVars[139] = 4; } } if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 119) { if (PowerupTimer[12] > 0 && PowerupTimer[15] > 0) { if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 89) MiscellaneousVars[139] = 2; if (MiscellaneousVars[138] >= 90 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 5; } else { if (PowerupTimer[12] > 0) MiscellaneousVars[139] = 2; if (PowerupTimer[15] > 0) MiscellaneousVars[139] = 5; } } } if (bufftypebitfield == 7) // ATK/DEF/SPD { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 39) { if (PowerupTimer[10] > 0 && PowerupTimer[13] > 0) { if (MiscellaneousVars[138] >= 0 && MiscellaneousVars[138] <= 19) MiscellaneousVars[139] = 0; if (MiscellaneousVars[138] >= 20 && MiscellaneousVars[138] <= 39) MiscellaneousVars[139] = 3; } else { if (PowerupTimer[10] > 0) MiscellaneousVars[139] = 0; if (PowerupTimer[13] > 0) MiscellaneousVars[139] = 3; } } if (MiscellaneousVars[138] >= 40 && MiscellaneousVars[138] <= 79) { if (PowerupTimer[11] > 0 && PowerupTimer[14] > 0) { if (MiscellaneousVars[138] >= 40 && MiscellaneousVars[138] <= 59) MiscellaneousVars[139] = 1; if (MiscellaneousVars[138] >= 60 && MiscellaneousVars[138] <= 79) MiscellaneousVars[139] = 4; } else { if (PowerupTimer[11] > 0) MiscellaneousVars[139] = 1; if (PowerupTimer[14] > 0) MiscellaneousVars[139] = 4; } } if (MiscellaneousVars[138] >= 80 && MiscellaneousVars[138] <= 119) { if (PowerupTimer[12] > 0 && PowerupTimer[15] > 0) { if (MiscellaneousVars[138] >= 80 && MiscellaneousVars[138] <= 99) MiscellaneousVars[139] = 2; if (MiscellaneousVars[138] >= 100 && MiscellaneousVars[138] <= 119) MiscellaneousVars[139] = 5; } else { if (PowerupTimer[12] > 0) MiscellaneousVars[139] = 2; if (PowerupTimer[15] > 0) MiscellaneousVars[139] = 5; } } } // Buff Overlays SetFont("PBLKIMG"); int buffoverlayframe; MiscellaneousVars[136]++; // Buff Overlay Timer 2 [Overlay Frame] if (MiscellaneousVars[136] >= 0 & MiscellaneousVars[136] <= 1) buffoverlayframe = 0; if (MiscellaneousVars[136] >= 2 & MiscellaneousVars[136] <= 3) buffoverlayframe = 1; if (MiscellaneousVars[136] >= 4 & MiscellaneousVars[136] <= 5) buffoverlayframe = 2; if (MiscellaneousVars[136] >= 6 & MiscellaneousVars[136] <= 7) buffoverlayframe = 3; if (MiscellaneousVars[136] >= 8 & MiscellaneousVars[136] <= 9) buffoverlayframe = 4; if (MiscellaneousVars[136] >= 10 & MiscellaneousVars[136] <= 11) buffoverlayframe = 5; if (MiscellaneousVars[136] >= 12 & MiscellaneousVars[136] <= 13) buffoverlayframe = 6; if (MiscellaneousVars[136] >= 14 & MiscellaneousVars[136] <= 15) buffoverlayframe = 7; if (MiscellaneousVars[136] >= 16 & MiscellaneousVars[136] <= 17) buffoverlayframe = 8; if (MiscellaneousVars[136] >= 18 & MiscellaneousVars[136] <= 19) buffoverlayframe = 9; if (MiscellaneousVars[136] >= 20) MiscellaneousVars[136] -= 20; if (MiscellaneousVars[25001] > 0) { if (CharacterClass == 2) { if (PowerupTimer[7] > 0) { if (bufftypebitfield > 0) { if (buffoverlayframe == 0) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU0"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU0"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU0"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD0"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD0"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD0"); // Deceleratle } if (buffoverlayframe == 1) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU1"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU1"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU1"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD1"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD1"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD1"); // Deceleratle } if (buffoverlayframe == 2) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU2"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU2"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU2"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD2"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD2"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD2"); // Deceleratle } if (buffoverlayframe == 3) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU3"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU3"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU3"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD3"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD3"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD3"); // Deceleratle } if (buffoverlayframe == 4) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU4"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU4"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU4"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD4"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD4"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD4"); // Deceleratle } if (buffoverlayframe == 5) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU5"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU5"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU5"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD5"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD5"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD5"); // Deceleratle } if (buffoverlayframe == 6) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU6"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU6"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU6"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD6"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD6"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD6"); // Deceleratle } if (buffoverlayframe == 7) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU7"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU7"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU7"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD7"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD7"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD7"); // Deceleratle } if (buffoverlayframe == 8) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU8"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU8"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU8"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD8"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD8"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD8"); // Deceleratle } if (buffoverlayframe == 9) { if (MiscellaneousVars[139] == 0) SetFont("PF2ATKU9"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF2DEFU9"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF2SPDU9"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF2ATKD9"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF2DEFD9"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF2SPDD9"); // Deceleratle } } } else { if (bufftypebitfield > 0) { if (buffoverlayframe == 0) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU0"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU0"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU0"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD0"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD0"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD0"); // Deceleratle } if (buffoverlayframe == 1) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU1"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU1"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU1"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD1"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD1"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD1"); // Deceleratle } if (buffoverlayframe == 2) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU2"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU2"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU2"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD2"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD2"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD2"); // Deceleratle } if (buffoverlayframe == 3) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU3"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU3"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU3"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD3"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD3"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD3"); // Deceleratle } if (buffoverlayframe == 4) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU4"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU4"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU4"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD4"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD4"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD4"); // Deceleratle } if (buffoverlayframe == 5) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU5"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU5"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU5"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD5"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD5"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD5"); // Deceleratle } if (buffoverlayframe == 6) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU6"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU6"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU6"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD6"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD6"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD6"); // Deceleratle } if (buffoverlayframe == 7) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU7"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU7"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU7"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD7"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD7"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD7"); // Deceleratle } if (buffoverlayframe == 8) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU8"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU8"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU8"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD8"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD8"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD8"); // Deceleratle } if (buffoverlayframe == 9) { if (MiscellaneousVars[139] == 0) SetFont("PF1ATKU9"); // Oomph if (MiscellaneousVars[139] == 1) SetFont("PF1DEFU9"); // Buff if (MiscellaneousVars[139] == 2) SetFont("PF1SPDU9"); // Acceleratle if (MiscellaneousVars[139] == 3) SetFont("PF1ATKD9"); // Blunt if (MiscellaneousVars[139] == 4) SetFont("PF1DEFD9"); // Sap if (MiscellaneousVars[139] == 5) SetFont("PF1SPDD9"); // Deceleratle } } } } } MiscellaneousVars[137]++; // Buff Overlay Timer 2 [Overlay Alpha] if (MiscellaneousVars[137] == 1 || MiscellaneousVars[137] == 35) msgalpha = 0.875; if (MiscellaneousVars[137] == 2 || MiscellaneousVars[137] == 34) msgalpha = 0.853; if (MiscellaneousVars[137] == 3 || MiscellaneousVars[137] == 33) msgalpha = 0.831; if (MiscellaneousVars[137] == 4 || MiscellaneousVars[137] == 32) msgalpha = 0.809; if (MiscellaneousVars[137] == 5 || MiscellaneousVars[137] == 31) msgalpha = 0.787; if (MiscellaneousVars[137] == 6 || MiscellaneousVars[137] == 30) msgalpha = 0.765; if (MiscellaneousVars[137] == 7 || MiscellaneousVars[137] == 29) msgalpha = 0.743; if (MiscellaneousVars[137] == 8 || MiscellaneousVars[137] == 28) msgalpha = 0.721; if (MiscellaneousVars[137] == 9 || MiscellaneousVars[137] == 27) msgalpha = 0.699; if (MiscellaneousVars[137] == 10 || MiscellaneousVars[137] == 26) msgalpha = 0.677; if (MiscellaneousVars[137] == 11 || MiscellaneousVars[137] == 25) msgalpha = 0.655; if (MiscellaneousVars[137] == 12 || MiscellaneousVars[137] == 24) msgalpha = 0.633; if (MiscellaneousVars[137] == 13 || MiscellaneousVars[137] == 23) msgalpha = 0.611; if (MiscellaneousVars[137] == 14 || MiscellaneousVars[137] == 22) msgalpha = 0.589; if (MiscellaneousVars[137] == 15 || MiscellaneousVars[137] == 21) msgalpha = 0.567; if (MiscellaneousVars[137] == 16 || MiscellaneousVars[137] == 20) msgalpha = 0.545; if (MiscellaneousVars[137] == 17 || MiscellaneousVars[137] == 19) msgalpha = 0.523; if (MiscellaneousVars[137] == 18) msgalpha = 0.501; if (MiscellaneousVars[137] >= 35) MiscellaneousVars[137] -= 34; msgalpha += 0.00; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2287,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Night/Light-Vision Indicator [2288] if (PowerupTimer[0] > 0 && MiscellaneousVars[25001] > 0) { if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } if (GetCVar("gl_enhanced_nightvision") == 0) formtype2 = "LGGI"; else formtype2 = "NGVI"; if (PowerupTimer[4] > 0) formtype3 = "2"; else formtype3 = "1"; fontname = StrParam(s:formtype,s:formtype2,s:formtype3); SetFont(fontname); msgalpha = 0.9; MiscellaneousVars[145]++; // Buff Overlay Timer 2 [Overlay Alpha] if (MiscellaneousVars[145] >= 40) MiscellaneousVars[145] = 0; if (MiscellaneousVars[145] >= 0 && MiscellaneousVars[145] <= 1) msgalpha = 0.70; if (MiscellaneousVars[145] >= 2 && MiscellaneousVars[145] <= 3 || MiscellaneousVars[145] >= 38 && MiscellaneousVars[145] <= 39) msgalpha = 0.73; if (MiscellaneousVars[145] >= 4 && MiscellaneousVars[145] <= 5 || MiscellaneousVars[145] >= 36 && MiscellaneousVars[145] <= 37) msgalpha = 0.76; if (MiscellaneousVars[145] >= 6 && MiscellaneousVars[145] <= 7 || MiscellaneousVars[145] >= 34 && MiscellaneousVars[145] <= 35) msgalpha = 0.79; if (MiscellaneousVars[145] >= 8 && MiscellaneousVars[145] <= 9 || MiscellaneousVars[145] >= 32 && MiscellaneousVars[145] <= 33) msgalpha = 0.82; if (MiscellaneousVars[145] >= 10 && MiscellaneousVars[145] <= 11 || MiscellaneousVars[145] >= 30 && MiscellaneousVars[145] <= 31) msgalpha = 0.85; if (MiscellaneousVars[145] >= 12 && MiscellaneousVars[145] <= 13 || MiscellaneousVars[145] >= 28 && MiscellaneousVars[145] <= 29) msgalpha = 0.88; if (MiscellaneousVars[145] >= 14 && MiscellaneousVars[145] <= 15 || MiscellaneousVars[145] >= 26 && MiscellaneousVars[145] <= 27) msgalpha = 0.91; if (MiscellaneousVars[145] >= 16 && MiscellaneousVars[145] <= 17 || MiscellaneousVars[145] >= 24 && MiscellaneousVars[145] <= 25) msgalpha = 0.94; if (MiscellaneousVars[145] >= 18 && MiscellaneousVars[145] <= 19 || MiscellaneousVars[145] >= 22 && MiscellaneousVars[145] <= 23) msgalpha = 0.97; if (MiscellaneousVars[145] >= 20 && MiscellaneousVars[145] <= 21) msgalpha = 1.0; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2288,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Berserk Indicator [2289] int berserkveinframe = 0; MiscellaneousVars[455]++; if (MiscellaneousVars[455] >= 24) MiscellaneousVars[455] = 0; if (MiscellaneousVars[455] >= 0 & MiscellaneousVars[455] <= 2) berserkveinframe = 1; if (MiscellaneousVars[455] >= 3 & MiscellaneousVars[455] <= 5) berserkveinframe = 2; if (MiscellaneousVars[455] >= 6 & MiscellaneousVars[455] <= 8) berserkveinframe = 3; if (MiscellaneousVars[455] >= 9 & MiscellaneousVars[455] <= 11) berserkveinframe = 4; if (MiscellaneousVars[455] >= 12 & MiscellaneousVars[455] <= 14) berserkveinframe = 5; if (MiscellaneousVars[455] >= 15 & MiscellaneousVars[455] <= 17) berserkveinframe = 4; if (MiscellaneousVars[455] >= 18 & MiscellaneousVars[455] <= 20) berserkveinframe = 3; if (MiscellaneousVars[455] >= 21 & MiscellaneousVars[455] <= 23) berserkveinframe = 2; if (PowerupTimer[23] > 0 && MiscellaneousVars[25001] > 0) { formtype2 = "BER"; if (PowerupTimer[4] > 0) formtype3 = "2"; else formtype3 = "1"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,s:formtype3,d:berserkveinframe); SetFont(fontname); msgalpha = 1.0; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2289,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Spread Aura Indicator[s] [2290] int spreadauraframe = 0; int maxspreadauraframe; MiscellaneousVars[457]++; if (MiscellaneousVars[457] >= maxspreadauraframe) { MiscellaneousVars[457] = 0; maxspreadauraframe = Random(2,12) * 3; } if (MiscellaneousVars[457] == 0) spreadauraframe = 1; if (MiscellaneousVars[457] == 1) spreadauraframe = 2; if (MiscellaneousVars[457] == 2) spreadauraframe = 1; if (MiscellaneousVars[457] >= 3) spreadauraframe = 0; if ((PowerupTimer[8] > 0 || PowerupTimer[9] > 0) && MiscellaneousVars[25001] > 0) { if (PowerupTimer[9] > 0) { formtype2 = "SPR2"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:spreadauraframe); SetFont(fontname); } else { formtype2 = "SPR1"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PD1"; else formtype = "PD1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PI1"; else formtype = "PI1"; } if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "PF2"; else formtype = "PF1"; } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PA2"; else formtype = "PA1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PP2"; else formtype = "PP1"; } fontname = StrParam(s:formtype,s:formtype2,d:spreadauraframe); SetFont(fontname); } if (CharacterClass != 2) SetFont("PBLKIMG"); msgalpha = 1.0; if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); // If using Invisiblity Spell, pulsate the alpha of the buff effect msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2290,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //*********************************************** // Damage/Injury Overlays (Portraits) [2292-2315] //*********************************************** int injuryfaderatio; int injuryfadebasis; int injuryfadealpha; int injuryhealthratiobase; int injuryhealthmulti = 2; int injuryhealthdiv = 3; if (MiscellaneousVars[25001] > 0) { if (MaxHealthTrue != 0) HealthRatio = MiscellaneousVars[25001] * 1000 / MaxHealthTrue; if (debughud > 0) PrintBold(s:"\cyDivChecker:\c- MaxHealthTrue [5563] - ",d:MaxHealthTrue); if (CharacterClass == 2) { if (PowerupTimer[7] > 0) formtype = "F2"; else formtype = "F1"; if (PowerupTimer[4] > 0) formtype2 = "IVN"; else formtype2 = "NRM"; injuryhealthmulti = 2; injuryhealthdiv = 3; HUDMsgID = 2301; // Forehead Injury (both) (50% of health and lower) injuryhealthratiobase = 500; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ1"; fontname = StrParam(s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Cheek Injury (both) (34% of health and lower) injuryhealthratiobase = 340; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ2"; fontname = StrParam(s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Side of Face Injury (78% of health and lower) injuryhealthratiobase = 780; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ3"; fontname = StrParam(s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Left Shoulder Injury [2305] (45% of health and lower) injuryhealthratiobase = 450; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ4"; fontname = StrParam(s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Arm Scorch (Normal) / Breast Scorch (Divine Avatar) (89% of health and lower) injuryhealthratiobase = 890; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ5"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Back Scorch (Normal) / Collarbone Bruise (Divine Avatar) (67% of health and lower) injuryhealthratiobase = 670; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ6"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Back of Neck Bruise (Normal) / Right Shoulder Bruise (Divine Avatar) (23% of health and lower) injuryhealthratiobase = 230; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ7"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Underarmor Blood Dress Stain (both) (56% of health and lower) injuryhealthratiobase = 560; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "IJ8"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } injuryhealthmulti = 7; injuryhealthdiv = 8; HUDMsgID += 1; // Ribbon Scorch [small] (both) (50% of health and lower) injuryhealthratiobase = 500; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "RS1"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Ribbon Scorch [Big] (both) (75% of health and lower) injuryhealthratiobase = 750; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "RS2"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } injuryhealthmulti = 6; injuryhealthdiv = 7; HUDMsgID += 1; // Dress (Breast) Scorch [Right side] (both) (62.5% of health and lower) injuryhealthratiobase = 625; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "DS1"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Dress (Back) Scorch (normal) / Dress (Breast) Scorch [Left side] (Divine Avatar) (33.3% of health and lower) injuryhealthratiobase = 625; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "DS2"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } injuryhealthmulti = 1; injuryhealthdiv = 2; HUDMsgID += 1; // Front Hair Scorch (66.67% of health and lower) injuryhealthratiobase = 667; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "HS1"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } HUDMsgID += 1; // Back of Hair Scorch (87.5% of health and lower) injuryhealthratiobase = 875; if (HealthRatio <= injuryhealthratiobase) { dmgtype = "HS2"; fontname = StrParam (s:formtype,s:dmgtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; injuryfaderatio = 1.0 / ((injuryhealthratiobase * injuryhealthmulti) / injuryhealthdiv); injuryfadebasis = (-injuryhealthratiobase + HealthRatio); // 340 injuryfadealpha = (-injuryfaderatio * injuryfadebasis); if (injuryfadealpha < 0.00) injuryfadealpha = 0.00; if (injuryfadealpha > 1.00) injuryfadealpha = 1.00; msgalpha = FixedMul(msgalpha,injuryfadealpha); if (debughud2) PrintBold(s:"fontname: ",s:fontname,s:", injuryfadealpha: ",f:injuryfadealpha,s:", injuryfaderatio: ",f:injuryfaderatio,s:" injuryfadebasis: ",d:injuryfadebasis); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,HUDMsgID,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // Tension Main Overlay (no damage marks included) [2315] int tenpulsetimer; if (MiscellaneousVars[25001] > 0 && MiscellaneousVars[181] > 0) { tenpulsetimer++; if (PowerupTimer[4] > 0) formtype2 = "TN2"; else formtype2 = "TNS"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PDEG1"; else formtype = "PDEG1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PILL1"; else formtype = "PILL1"; } if (CharacterClass == 2) { if (PowerupTimer[129] > 0) { if (PowerupTimer[7] > 0) formtype = "PFLO4"; else formtype = "PFLO3"; } else { if (PowerupTimer[7] > 0) formtype = "PFLO2"; else formtype = "PFLO1"; } } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PAIL2"; else formtype = "PAIL1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PPET2"; else formtype = "PPET1"; } fontname = StrParam(s:formtype,s:formtype2); SetFont(fontname); msgalpha = 1.0; // Check Mercy Invincibility if (MiscellaneousVars[194] > 0) { if (MiscellaneousVars[196] >= 0 && MiscellaneousVars[196] <= 29) msgalpha = FixedMul(msgalpha,0.25); if (MiscellaneousVars[196] >= 30 && MiscellaneousVars[196] <= 59) msgalpha = FixedMul(msgalpha,0.375); if (MiscellaneousVars[196] >= 60 && MiscellaneousVars[196] <= 89) msgalpha = FixedMul(msgalpha,0.50); if (MiscellaneousVars[196] >= 90 && MiscellaneousVars[196] <= 119) msgalpha = FixedMul(msgalpha,0.375); } // Check Tension Level int tensionalpha1; if (MiscellaneousVars[181] == 1) tensionalpha1 = 0.14; if (MiscellaneousVars[181] == 2) tensionalpha1 = 0.28; if (MiscellaneousVars[181] == 3) tensionalpha1 = 0.42; if (MiscellaneousVars[181] == 4) tensionalpha1 = 0.56; if (MiscellaneousVars[181] == 5) tensionalpha1 = 0.70; if (MiscellaneousVars[181] == 6) tensionalpha1 = 0.84; if (MiscellaneousVars[181] == 7) tensionalpha1 = 0.98; if ((tenpulsetimer % 32) == 0) tensionalpha1 = FixedMul(tensionalpha1,0.76); if ((tenpulsetimer % 32) == 1) tensionalpha1 = FixedMul(tensionalpha1,0.775); if ((tenpulsetimer % 32) == 2) tensionalpha1 = FixedMul(tensionalpha1,0.79); if ((tenpulsetimer % 32) == 3) tensionalpha1 = FixedMul(tensionalpha1,0.805); if ((tenpulsetimer % 32) == 4) tensionalpha1 = FixedMul(tensionalpha1,0.82); if ((tenpulsetimer % 32) == 5) tensionalpha1 = FixedMul(tensionalpha1,0.835); if ((tenpulsetimer % 32) == 6) tensionalpha1 = FixedMul(tensionalpha1,0.85); if ((tenpulsetimer % 32) == 7) tensionalpha1 = FixedMul(tensionalpha1,0.865); if ((tenpulsetimer % 32) == 8) tensionalpha1 = FixedMul(tensionalpha1,0.88); if ((tenpulsetimer % 32) == 9) tensionalpha1 = FixedMul(tensionalpha1,0.895); if ((tenpulsetimer % 32) == 10) tensionalpha1 = FixedMul(tensionalpha1,0.91); if ((tenpulsetimer % 32) == 11) tensionalpha1 = FixedMul(tensionalpha1,0.925); if ((tenpulsetimer % 32) == 12) tensionalpha1 = FixedMul(tensionalpha1,0.94); if ((tenpulsetimer % 32) == 13) tensionalpha1 = FixedMul(tensionalpha1,0.955); if ((tenpulsetimer % 32) == 14) tensionalpha1 = FixedMul(tensionalpha1,0.97); if ((tenpulsetimer % 32) == 15) tensionalpha1 = FixedMul(tensionalpha1,0.985); if ((tenpulsetimer % 32) == 16) tensionalpha1 = FixedMul(tensionalpha1,1.00); if ((tenpulsetimer % 32) == 17) tensionalpha1 = FixedMul(tensionalpha1,0.985); if ((tenpulsetimer % 32) == 18) tensionalpha1 = FixedMul(tensionalpha1,0.97); if ((tenpulsetimer % 32) == 19) tensionalpha1 = FixedMul(tensionalpha1,0.955); if ((tenpulsetimer % 32) == 20) tensionalpha1 = FixedMul(tensionalpha1,0.94); if ((tenpulsetimer % 32) == 21) tensionalpha1 = FixedMul(tensionalpha1,0.925); if ((tenpulsetimer % 32) == 22) tensionalpha1 = FixedMul(tensionalpha1,0.91); if ((tenpulsetimer % 32) == 23) tensionalpha1 = FixedMul(tensionalpha1,0.895); if ((tenpulsetimer % 32) == 24) tensionalpha1 = FixedMul(tensionalpha1,0.88); if ((tenpulsetimer % 32) == 25) tensionalpha1 = FixedMul(tensionalpha1,0.865); if ((tenpulsetimer % 32) == 26) tensionalpha1 = FixedMul(tensionalpha1,0.85); if ((tenpulsetimer % 32) == 27) tensionalpha1 = FixedMul(tensionalpha1,0.835); if ((tenpulsetimer % 32) == 28) tensionalpha1 = FixedMul(tensionalpha1,0.82); if ((tenpulsetimer % 32) == 28) tensionalpha1 = FixedMul(tensionalpha1,0.805); if ((tenpulsetimer % 32) == 29) tensionalpha1 = FixedMul(tensionalpha1,0.79); if ((tenpulsetimer % 32) == 30) tensionalpha1 = FixedMul(tensionalpha1,0.775); if ((tenpulsetimer % 32) == 31) tensionalpha1 = FixedMul(tensionalpha1,0.76); msgalpha = FixedMul(msgalpha,tensionalpha1); // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2315,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { tenpulsetimer = 0; } //******************************* // Main Character Portrait [2316] //******************************* if (MiscellaneousVars[25001] <= 0) // If dead, show a coffin portrait :V { SetFont("PCOF1NRM"); } else { if (PowerupTimer[4] > 0) formtype2 = "INV"; else formtype2 = "NRM"; if (CharacterClass == 0) { if (PowerupTimer[7] > 0) formtype = "PDEG1"; else formtype = "PDEG1"; } if (CharacterClass == 1) { if (PowerupTimer[7] > 0) formtype = "PILL1"; else formtype = "PILL1"; } if (CharacterClass == 2) { if (PowerupTimer[129] > 0) { if (PowerupTimer[7] > 0) formtype = "PFLO4"; else formtype = "PFLO3"; } else { if (PowerupTimer[7] > 0) formtype = "PFLO2"; else formtype = "PFLO1"; } } if (CharacterClass == 8) { if (PowerupTimer[7] > 0) formtype = "PAIL2"; else formtype = "PAIL1"; } if (CharacterClass == 9) { if (PowerupTimer[7] > 0) formtype = "PPET2"; else formtype = "PPET1"; } fontname = StrParam(s:formtype,s:formtype2); SetFont(fontname); } msgalpha = 1.0; // Check Mercy Invincibility if (MiscellaneousVars[194] > 0) { if (MiscellaneousVars[196] >= 0 && MiscellaneousVars[196] <= 29) msgalpha = FixedMul(msgalpha,0.25); if (MiscellaneousVars[196] >= 30 && MiscellaneousVars[196] <= 59) msgalpha = FixedMul(msgalpha,0.375); if (MiscellaneousVars[196] >= 60 && MiscellaneousVars[196] <= 89) msgalpha = FixedMul(msgalpha,0.50); if (MiscellaneousVars[196] >= 90 && MiscellaneousVars[196] <= 119) msgalpha = FixedMul(msgalpha,0.375); } // If Invisible, pulsate the Alpha of the portrait if (PowerupTimer[1] > 0) msgalpha = FixedMul(msgalpha,MiscFixedVars[101]); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2316,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Portrait Edges [2317] SetFont("PORTEMPT"); msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2317,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Tension Background [portrait] [2318] if (MiscellaneousVars[181] > 0) { MiscellaneousVars[453]++; if (MiscellaneousVars[181] >= 1 && MiscellaneousVars[181] <= 2) { if (MiscellaneousVars[453] >= 16) MiscellaneousVars[453] = 0; if (MiscellaneousVars[453] >= 0 && MiscellaneousVars[453] <= 3) SetFont("PORTTE21"); if (MiscellaneousVars[453] >= 4 && MiscellaneousVars[453] <= 7) SetFont("PORTTE22"); if (MiscellaneousVars[453] >= 8 && MiscellaneousVars[453] <= 11) SetFont("PORTTE23"); if (MiscellaneousVars[453] >= 12 && MiscellaneousVars[453] <= 15) SetFont("PORTTE24"); } if (MiscellaneousVars[181] >= 3 && MiscellaneousVars[181] <= 4) { if (MiscellaneousVars[453] >= 12) MiscellaneousVars[453] = 0; if (MiscellaneousVars[453] >= 0 && MiscellaneousVars[453] <= 2) SetFont("PORTTE21"); if (MiscellaneousVars[453] >= 3 && MiscellaneousVars[453] <= 5) SetFont("PORTTE22"); if (MiscellaneousVars[453] >= 6 && MiscellaneousVars[453] <= 8) SetFont("PORTTE23"); if (MiscellaneousVars[453] >= 9 && MiscellaneousVars[453] <= 11) SetFont("PORTTE24"); } if (MiscellaneousVars[181] >= 5 && MiscellaneousVars[181] <= 6) { if (MiscellaneousVars[453] >= 8) MiscellaneousVars[453] = 0; if (MiscellaneousVars[453] >= 0 && MiscellaneousVars[453] <= 1) SetFont("PORTTE21"); if (MiscellaneousVars[453] >= 2 && MiscellaneousVars[453] <= 3) SetFont("PORTTE22"); if (MiscellaneousVars[453] >= 4 && MiscellaneousVars[453] <= 5) SetFont("PORTTE23"); if (MiscellaneousVars[453] >= 6 && MiscellaneousVars[453] <= 7) SetFont("PORTTE24"); } if (MiscellaneousVars[181] >= 7) { if (MiscellaneousVars[453] >= 4) MiscellaneousVars[453] = 0; if (MiscellaneousVars[453] == 0) SetFont("PORTTE21"); if (MiscellaneousVars[453] == 1) SetFont("PORTTE22"); if (MiscellaneousVars[453] == 2) SetFont("PORTTE23"); if (MiscellaneousVars[453] == 3) SetFont("PORTTE24"); } msgalpha = 0.875; MiscellaneousVars[454]++; if (MiscellaneousVars[454] == 1 || MiscellaneousVars[454] == 35) msgalpha = 0.875; if (MiscellaneousVars[454] == 2 || MiscellaneousVars[454] == 34) msgalpha = 0.864; if (MiscellaneousVars[454] == 3 || MiscellaneousVars[454] == 33) msgalpha = 0.855; if (MiscellaneousVars[454] == 4 || MiscellaneousVars[454] == 32) msgalpha = 0.846; if (MiscellaneousVars[454] == 5 || MiscellaneousVars[454] == 31) msgalpha = 0.837; if (MiscellaneousVars[454] == 6 || MiscellaneousVars[454] == 30) msgalpha = 0.828; if (MiscellaneousVars[454] == 7 || MiscellaneousVars[454] == 29) msgalpha = 0.819; if (MiscellaneousVars[454] == 8 || MiscellaneousVars[454] == 28) msgalpha = 0.810; if (MiscellaneousVars[454] == 9 || MiscellaneousVars[454] == 27) msgalpha = 0.801; if (MiscellaneousVars[454] == 10 || MiscellaneousVars[454] == 26) msgalpha = 0.792; if (MiscellaneousVars[454] == 11 || MiscellaneousVars[454] == 25) msgalpha = 0.783; if (MiscellaneousVars[454] == 12 || MiscellaneousVars[454] == 24) msgalpha = 0.774; if (MiscellaneousVars[454] == 13 || MiscellaneousVars[454] == 23) msgalpha = 0.765; if (MiscellaneousVars[454] == 14 || MiscellaneousVars[454] == 22) msgalpha = 0.756; if (MiscellaneousVars[454] == 15 || MiscellaneousVars[454] == 21) msgalpha = 0.747; if (MiscellaneousVars[454] == 16 || MiscellaneousVars[454] == 20) msgalpha = 0.738; if (MiscellaneousVars[454] == 17 || MiscellaneousVars[454] == 19) msgalpha = 0.729; if (MiscellaneousVars[454] == 18) msgalpha = 0.720; if (MiscellaneousVars[454] >= 35) MiscellaneousVars[454] -= 34; if (MiscellaneousVars[181] == 1) msgalpha = FixedMul(msgalpha,0.70); if (MiscellaneousVars[181] == 2) msgalpha = FixedMul(msgalpha,0.75); if (MiscellaneousVars[181] == 3) msgalpha = FixedMul(msgalpha,0.80); if (MiscellaneousVars[181] == 4) msgalpha = FixedMul(msgalpha,0.85); if (MiscellaneousVars[181] == 5) msgalpha = FixedMul(msgalpha,0.90); if (MiscellaneousVars[181] == 6) msgalpha = FixedMul(msgalpha,0.95); if (MiscellaneousVars[181] == 7) msgalpha = FixedMul(msgalpha,1.00); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2318,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Red Glow (critical health) [portrait] [2319] if (MaxHealthTrue != 0) HealthRatio = MiscellaneousVars[25001] * 1000 / MaxHealthTrue; if (debughud > 0) PrintBold(s:"\cyDivChecker:\c- MaxHealthTrue [5563] - ",d:MaxHealthTrue); if (HealthRatio <= 100) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("PORTCRTH"); HudMessage(s:"A";HUDMSG_ALPHA,2319,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Normal Frame Background [portrait] [2320] msgalpha = 0.8; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("PORTNRMH"); if (CharacterClass == 0) SetFont("PORTNRMD"); if (CharacterClass == 1) SetFont("PORTNRMI"); if (CharacterClass == 2) SetFont("PORTNRMF"); if (CharacterClass == 8) SetFont("PORTNRMA"); if (CharacterClass == 9) SetFont("PORTNRMP"); HudMessage(s:"A";HUDMSG_ALPHA,2320,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); //******************************** //* Quickspell Bar [2321 to 2365]* //******************************** if (GetCVar("dvdshud_showquickspells") > 0) { for (HUDMsgIDAdd = 0; HUDMsgIDAdd < 10; HUDMsgIDAdd ++) { //************************ //*Text/Costs [2321-2331]* //************************ if (HUDMsgIDAdd == 0) { xpos = ScreenXOffset + 80.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 1) { xpos = ScreenXOffset + 139.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 2) { xpos = ScreenXOffset + 198.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 3) { xpos = ScreenXOffset + 257.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 4) { xpos = ScreenXOffset + 316.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 5) { xpos = ScreenXOffset + 375.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 6) { xpos = ScreenXOffset + 434.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 7) { xpos = ScreenXOffset + 493.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 8) { xpos = ScreenXOffset + 552.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (HUDMsgIDAdd == 9) { xpos = ScreenXOffset + 611.0 + 0.2; ypos = ScreenYOffset + 1049.0; } if (xpos < 0.0) xpos -= 0.4; SetFont("DQHUDFONTSTATUS"); CostOfSpell = MiscellaneousVars[(2990+HUDMsgIDAdd)]; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); if (ReadiedSpells[HUDMsgIDAdd] != 0) { HudMessage(d:CostOfSpell;HUDMSG_ALPHA,2321+HUDMsgIDAdd,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { HudMessage(s:"N/A";HUDMSG_ALPHA,2321+HUDMsgIDAdd,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //******************************************* //*Spell Bind Key (left-aligned) [2332-2343]* //******************************************* if (HUDMsgIDAdd == 0) { xpos = ScreenXOffset + 20.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 1) { xpos = ScreenXOffset + 79.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 2) { xpos = ScreenXOffset + 139.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 3) { xpos = ScreenXOffset + 197.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 4) { xpos = ScreenXOffset + 256.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 5) { xpos = ScreenXOffset + 315.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 6) { xpos = ScreenXOffset + 374.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 7) { xpos = ScreenXOffset + 433.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 8) { xpos = ScreenXOffset + 492.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (HUDMsgIDAdd == 9) { xpos = ScreenXOffset + 551.0 + 0.1; ypos = ScreenYOffset + 1000.0; } if (xpos < 0.0) xpos -= 0.2; if (HUDMsgIDAdd+1 == 1) Keyname = "pukename SpellQuickAssign 0"; if (HUDMsgIDAdd+1 == 2) Keyname = "pukename SpellQuickAssign 1"; if (HUDMsgIDAdd+1 == 3) Keyname = "pukename SpellQuickAssign 2"; if (HUDMsgIDAdd+1 == 4) Keyname = "pukename SpellQuickAssign 3"; if (HUDMsgIDAdd+1 == 5) Keyname = "pukename SpellQuickAssign 4"; if (HUDMsgIDAdd+1 == 6) Keyname = "pukename SpellQuickAssign 5"; if (HUDMsgIDAdd+1 == 7) Keyname = "pukename SpellQuickAssign 6"; if (HUDMsgIDAdd+1 == 8) Keyname = "pukename SpellQuickAssign 7"; if (HUDMsgIDAdd+1 == 9) Keyname = "pukename SpellQuickAssign 8"; if (HUDMsgIDAdd+1 == 10) Keyname = "pukename SpellQuickAssign 9"; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname;HUDMSG_ALPHA,2332+HUDMsgIDAdd,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); //******************* //*Icons [2343-2364]* //******************* if (HUDMsgIDAdd == 0) { xpos = ScreenXOffset + 55.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 1) { xpos = ScreenXOffset + 114.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 2) { xpos = ScreenXOffset + 173.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 3) { xpos = ScreenXOffset + 232.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 4) { xpos = ScreenXOffset + 291.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 5) { xpos = ScreenXOffset + 350.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 6) { xpos = ScreenXOffset + 409.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 7) { xpos = ScreenXOffset + 468.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 8) { xpos = ScreenXOffset + 527.0; ypos = ScreenYOffset + 1023.0; } if (HUDMsgIDAdd == 9) { xpos = ScreenXOffset + 586.0; ypos = ScreenYOffset + 1023.0; } if (ReadiedSpells[HUDMsgIDAdd] != 0) { CostOfSpell = MiscellaneousVars[(2990+HUDMsgIDAdd)]; //********************************** //*Not Enough Mana Icon [2343-2353]* //********************************** // Mana Cost Check tempvar1 = 2011+HUDMsgIDAdd; if (CurrentMana < CostOfSpell) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] = 1; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SPLINOUS"); HudMessage(s:"A";HUDMSG_ALPHA,2343+HUDMsgIDAdd,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Not Enough Mana } else { MiscellaneousVars[tempvar1] = 0; } //****************************** //*QuickSpell Icons [2354-2364]* //****************************** if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 0) // (Minor Magic Missile) Level 0 { if (buttons & BT_ZOOM) SetFont("SPLIMAS1"); else SetFont("SPLIMAM1"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 1) // (Minor Healing) Level 0 { if (buttons & BT_ZOOM) SetFont("SPLIHEA4"); else SetFont("SPLIHEA1"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 2) SetFont("SPLINGV1"); // (Minor Night Vision) Level 1 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 3) SetFont("SPLICHL1"); // (Chill Touch) Level 1 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 4) SetFont("SPLIIVS1"); // (Minor Invisibility) Level 2 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 5) SetFont("SPLIFLI1"); // (Minor Flight) Level 2 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 6) SetFont("SPLIPSC1"); // (Minor Poison Cloud) Level 3 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 7) // (Minor Fireball) Level 4 { if (buttons & BT_ZOOM) SetFont("SPLIFBS1"); else SetFont("SPLIFBL1"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 8) SetFont("SPLIENST"); // (Enhanced Strength) Level 5 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 9) // (Minor Ice Blast) Level 6 { if (buttons & BT_ZOOM) SetFont("SPLIICS1"); else SetFont("SPLIICB1"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 10) SetFont("SPLISUM1"); // (Summon Weak Monster) Level 7 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 11) // (Magic Missile) Level 7 { if (buttons & BT_ZOOM) SetFont("SPLIMAS2"); else SetFont("SPLIMAM2"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 12) // (Fireball) Level 8 { if (buttons & BT_ZOOM) SetFont("SPLIFBS2"); else SetFont("SPLIFBL2"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 13) SetFont("SPLIGLY1"); // (Explosive Glyph) Level 9 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 14) // (Healing) Level 9 { if (buttons & BT_ZOOM) SetFont("SPLIHEA5"); else SetFont("SPLIHEA2"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 15) { if (Characterclass == 9) SetFont("SPLIDEDA"); else SetFont("SPLINVFR");} // (Fireball Nova) or Desperado Damsel [Petra Only] Level 10 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 16) SetFont("SPLIOMPH"); // (Attack Booster) Level 11 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 17) SetFont("SPLIRAS1"); // (Minor Raging Spirits) Level 11 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 18) SetFont("SPLIIVS2"); // (Invisibility) Level 11 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 19) SetFont("SPLIACRA"); // (Acid Rain) Level 12 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 20) SetFont("SPLIFRA1"); // (Minor Terrorization Aura) Level 12 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 21) SetFont("SPLINGV2"); // (Night-Vision) Level 13 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 22) SetFont("SPLIFLI2"); // (Flight) Level 13 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 23) // (Major Magic Missile) Level 14 { if (buttons & BT_ZOOM) SetFont("SPLIMAS3"); else SetFont("SPLIMAM3"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 24) SetFont("SPLISUM2"); // (Summon Monster) Level 15 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 25) SetFont("SPLINVIC"); // (Icy Nova) Level 16 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 26) SetFont("SPLIPSC2"); // (Poison Cloud) Level 16 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 27) SetFont("SPLILGN1"); // (Minor Lightning) Level 17 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 28) SetFont("SPLISTSK"); // (Stone Skin) Level 18 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 29) // (Major Healing) Level 18 { if (buttons & BT_ZOOM) SetFont("SPLIHEA6"); else SetFont("SPLIHEA3"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 30) SetFont("SPLINGV3"); // (Major Night-Vision) Level 19 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 31) // (Ice Blast) Level 20 { if (buttons & BT_ZOOM) SetFont("SPLIICS2"); else SetFont("SPLIICB2"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 32) SetFont("SPLIFARS"); // (Farsight) Level 20 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 33) SetFont("SPLINVLG"); // (Lightning Nova) Level 20 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 34) SetFont("SPLITMF1"); // (Minor Time Freezer) Level 21 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 35) SetFont("SPLIBUFF"); // (Defense Booster) Level 21 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 36) SetFont("SPLIIVS3"); // (Major Invisibility) Level 21 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 37) SetFont("SPLIFLI3"); // (Major Flight) Level 21 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 38) SetFont("SPLILGN2"); // (Lightning) Level 22 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 39) SetFont("SPLISUM3"); // (Summon Strong Monster) Level 23 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 40) // (Diamond Skin) [Deggaris/Illucia] or (Spreader Aura Lv. 1) [Flora] Level 24 { if (CharacterClass == 2) SetFont("SPLISRA1"); else SetFont("SPLIDISK"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 41) // (Major Fireball) Level 25 { if (buttons & BT_ZOOM) SetFont("SPLIFBS3"); else SetFont("SPLIFBL3"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 42) // (Major Ice Blast) Level 25 { if (buttons & BT_ZOOM) SetFont("SPLIICS3"); else SetFont("SPLIICB3"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 43) SetFont("SPLIPSC3"); // (Major Poison Cloud) Level 25 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 44) SetFont("SPLILGN3"); // (Major Lightning) Level 25 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 45) SetFont("SPLIIVNR"); // (Invulnerability) Level 26 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 46) SetFont("SPLIACEL"); // (Speed Booster) Level 26 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 47) SetFont("SPLIRAS2"); // (Raging Spirits) Level 27 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 48) SetFont("SPLISUM4"); // (Summon Arch-Vile) Level 28 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 49) // (Ultra Magic Missile) Level 29 { if (buttons & BT_ZOOM) SetFont("SPLIMAS4"); else SetFont("SPLIMAM4"); } if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 50) SetFont("SPLITMF2"); // (Time Freezer) Level 30 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 51) SetFont("SPLIFRA2"); // (Terrorization Aura) Level 30 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 52) SetFont("SPLICRLA"); // (Create Lotso Ammo) Level 30 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 53) SetFont("SPLIDVAV"); // (Divine Avatar) Level 31 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 54) SetFont("SPLISUM5"); // (Summon Cyberdemon) Level 31 if ((ReadiedSpells[HUDMsgIDAdd] - 1) == 55) SetFont("SPLISRA2"); // (Spreader Aura Lv. 2) Level 56 [Flora Only] msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2354+HUDMsgIDAdd,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { SetFont("SPLINONE"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2354+HUDMsgIDAdd,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } //**************************** //*QuickSpell Box Type [2365]* //**************************** xpos = ScreenXOffset + 320.0; ypos = ScreenYOffset + 1025.0; if (CharacterClass == 0) SetFont("QKSPLDEG"); if (CharacterClass == 1) SetFont("QKSPLILL"); if (CharacterClass == 2) SetFont("QKSPLFLO"); if (CharacterClass == 8) SetFont("QKSPLAIL"); if (CharacterClass == 9) SetFont("QKSPLPET"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2365,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //**************************** //**Spell Box [2371 to 2379]** //**************************** // 2371 - Spell Cost [Spell Box] // 2372 - Spell "<" Button [Spell Box] // 2373 - Spell ">" Button [Spell Box] // 2374 - Spell "Left" Button [Spell Box] // 2375 - Spell "Right" Button [Spell Box] // 2376 - Spell "Use" Button [Spell Box] // 2377 - Icon Shown on Spell Box [Spell Box] // 2378 - Current Spell Icon [Spell Box] // 2379 - Spell Style Box [Spell Box] // Spell Cost xpos = ScreenXOffset + 587.0; ypos = ScreenYOffset + 792.0; // 792.0 SetFont("DQHUDFONTSTATUS"); CostOfSpell = MiscellaneousVars[2989]; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CostOfSpell;HUDMSG_ALPHA,2371,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Not Enough Mana SetFont("DQHUDFONTSTATUS"); // Spell "<" Button xpos = ScreenXOffset + 536.0; ypos = ScreenYOffset + 786.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"<";HUDMSG_ALPHA,2372,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Spell ">" Button xpos = ScreenXOffset + 634.0; ypos = ScreenYOffset + 786.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:">";HUDMSG_ALPHA,2373,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Spell "Left" Button xpos = ScreenXOffset + 543.0 + 0.2; // 543.2 if (xpos < 0.0) xpos -= 0.4; ypos = ScreenYOffset + 763.0; // 761.0 Keyname = "pukename SpellSelection 0"; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname;HUDMSG_ALPHA,2374,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Spell "Right" Button xpos = ScreenXOffset + 629.0 + 0.1; // 629.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 763.0; // 761.0 Keyname = "pukename SpellSelection 1"; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname;HUDMSG_ALPHA,2375,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Spell "Use" Button xpos = ScreenXOffset + 585.0; // 585.0 ypos = ScreenYOffset + 820.0; // 820.0 Keyname = "+dvds_castspell"; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname;HUDMSG_ALPHA,2376,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Icon Shown on Spell Box xpos = ScreenXOffset + 587.0; // 587.0 ypos = ScreenYOffset + 768.0; // 768.0 SetFont("SPLINONE"); CostOfSpell = MiscellaneousVars[2989]; tempvar1 = 2010; if (CurrentMana < CostOfSpell) { msgalpha = 0.75; MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] = 1; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SPLINOUS"); HudMessage(s:"A";HUDMSG_ALPHA,2377,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Not Enough Mana } else { MiscellaneousVars[tempvar1] = 0; } if (SelectedSpell == 0) // (Minor Magic Missile) Level 0 { if (buttons & BT_ZOOM) SetFont("SPLIMAS1"); else SetFont("SPLIMAM1"); } if (SelectedSpell == 1) // (Minor Healing) Level 0 { if (buttons & BT_ZOOM) SetFont("SPLIHEA4"); else SetFont("SPLIHEA1"); } if (SelectedSpell == 2) SetFont("SPLINGV1"); // (Minor Night Vision) Level 1 if (SelectedSpell == 3) SetFont("SPLICHL1"); // (Chill Touch) Level 1 if (SelectedSpell == 4) SetFont("SPLIIVS1"); // (Minor Invisibility) Level 2 if (SelectedSpell == 5) SetFont("SPLIFLI1"); // (Minor Flight) Level 2 if (SelectedSpell == 6) SetFont("SPLIPSC1"); // (Minor Poison Cloud) Level 3 if (SelectedSpell == 7) // (Minor Fireball) Level 4 { if (buttons & BT_ZOOM) SetFont("SPLIFBS1"); else SetFont("SPLIFBL1"); } if (SelectedSpell == 8) SetFont("SPLIENST"); // (Enhanced Strength) Level 5 if (SelectedSpell == 9) // (Minor Ice Blast) Level 6 { if (buttons & BT_ZOOM) SetFont("SPLIICS1"); else SetFont("SPLIICB1"); } if (SelectedSpell == 10) SetFont("SPLISUM1"); // (Summon Weak Monster) Level 7 if (SelectedSpell == 11) // (Magic Missile) Level 7 { if (buttons & BT_ZOOM) SetFont("SPLIMAS2"); else SetFont("SPLIMAM2"); } if (SelectedSpell == 12) // (Fireball) Level 8 { if (buttons & BT_ZOOM) SetFont("SPLIFBS2"); else SetFont("SPLIFBL2"); } if (SelectedSpell == 13) SetFont("SPLIGLY1"); // (Explosive Glyph) Level 9 if (SelectedSpell == 14) // (Healing) Level 9 { if (buttons & BT_ZOOM) SetFont("SPLIHEA5"); else SetFont("SPLIHEA2"); } if (SelectedSpell == 15) { if (Characterclass == 9) SetFont("SPLIDEDA"); else SetFont("SPLINVFR"); } // (Fireball Nova) or Desperado Damsel [Petra Only] Level 10 if (SelectedSpell == 16) SetFont("SPLIOMPH"); // (Attack Booster) Level 11 if (SelectedSpell == 17) SetFont("SPLIRAS1"); // (Minor Raging Spirits) Level 11 if (SelectedSpell == 18) SetFont("SPLIIVS2"); // (Invisibility) Level 11 if (SelectedSpell == 19) SetFont("SPLIACRA"); // (Acid Rain) Level 12 if (SelectedSpell == 20) SetFont("SPLIFRA1"); // (Minor Terrorization Aura) Level 12 if (SelectedSpell == 21) SetFont("SPLINGV2"); // (Night-Vision) Level 13 if (SelectedSpell == 22) SetFont("SPLIFLI2"); // (Flight) Level 13 if (SelectedSpell == 23) // (Major Magic Missile) Level 14 { if (buttons & BT_ZOOM) SetFont("SPLIMAS3"); else SetFont("SPLIMAM3"); } if (SelectedSpell == 24) SetFont("SPLISUM2"); // (Summon Monster) Level 15 if (SelectedSpell == 25) SetFont("SPLINVIC"); // (Icy Nova) Level 16 if (SelectedSpell == 26) SetFont("SPLIPSC2"); // (Poison Cloud) Level 16 if (SelectedSpell == 27) SetFont("SPLILGN1"); // (Minor Lightning) Level 17 if (SelectedSpell == 28) SetFont("SPLISTSK"); // (Stone Skin) Level 18 if (SelectedSpell == 29) // (Major Healing) Level 18 { if (buttons & BT_ZOOM) SetFont("SPLIHEA6"); else SetFont("SPLIHEA3"); } if (SelectedSpell == 30) SetFont("SPLINGV3"); // (Major Night-Vision) Level 19 if (SelectedSpell == 31) // (Ice Blast) Level 20 { if (buttons & BT_ZOOM) SetFont("SPLIICS2"); else SetFont("SPLIICB2"); } if (SelectedSpell == 32) SetFont("SPLIFARS"); // (Farsight) Level 20 if (SelectedSpell == 33) SetFont("SPLINVLG"); // (Lightning Nova) Level 20 if (SelectedSpell == 34) SetFont("SPLITMF1"); // (Minor Time Freezer) Level 21 if (SelectedSpell == 35) SetFont("SPLIBUFF"); // (Defense Booster) Level 21 if (SelectedSpell == 36) SetFont("SPLIIVS3"); // (Major Invisibility) Level 21 if (SelectedSpell == 37) SetFont("SPLIFLI3"); // (Major Flight) Level 21 if (SelectedSpell == 38) SetFont("SPLILGN2"); // (Lightning) Level 22 if (SelectedSpell == 39) SetFont("SPLISUM3"); // (Summon Strong Monster) Level 23 if (SelectedSpell == 40) // (Diamond Skin) [Deggaris/Illucia] or (Spreader Aura Lv. 1) [Flora] Level 24 { if (CharacterClass == 2) SetFont("SPLISRA1"); else SetFont("SPLIDISK"); } if (SelectedSpell == 41) // (Major Fireball) Level 25 { if (buttons & BT_ZOOM) SetFont("SPLIFBS3"); else SetFont("SPLIFBL3"); } if (SelectedSpell == 42) // (Major Ice Blast) Level 25 { if (buttons & BT_ZOOM) SetFont("SPLIICS3"); else SetFont("SPLIICB3"); } if (SelectedSpell == 43) SetFont("SPLIPSC3"); // (Major Poison Cloud) Level 25 if (SelectedSpell == 44) SetFont("SPLILGN3"); // (Major Lightning) Level 25 if (SelectedSpell == 45) SetFont("SPLIIVNR"); // (Invulnerability) Level 26 if (SelectedSpell == 46) SetFont("SPLIACEL"); // (Speed Booster) Level 26 if (SelectedSpell == 47) SetFont("SPLIRAS2"); // (Raging Spirits) Level 27 if (SelectedSpell == 48) SetFont("SPLISUM4"); // (Summon Arch-Vile) Level 28 if (SelectedSpell == 49) // (Ultra Magic Missile) Level 29 { if (buttons & BT_ZOOM) SetFont("SPLIMAS4"); else SetFont("SPLIMAM4"); } if (SelectedSpell == 50) SetFont("SPLITMF2"); // (Time Freezer) Level 30 if (SelectedSpell == 51) SetFont("SPLIFRA2"); // (Terrorization Aura) Level 30 if (SelectedSpell == 52) SetFont("SPLICRLA"); // (Create Lotso Ammo) Level 30 if (SelectedSpell == 53) SetFont("SPLIDVAV"); // (Divine Avatar) Level 31 if (SelectedSpell == 54) SetFont("SPLISUM5"); // (Summon Cyberdemon) Level 31 if (SelectedSpell == 55) SetFont("SPLISRA2"); // (Spreader Aura Lv. 2) Level 56 [Flora Only] msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2378,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); //PrintBold(d:CurrentMana,s:" / ",d:CostOfSpell); // Spell Box xpos = ScreenXOffset + 586.0; // 586.0; ypos = ScreenYOffset + 770.0; // 789.0; if (CharacterClass == 0) SetFont("SPLBXDEG"); if (CharacterClass == 1) SetFont("SPLBXILL"); if (CharacterClass == 2) SetFont("SPLBXFLO"); if (CharacterClass == 8) SetFont("SPLBXAIL"); if (CharacterClass == 9) SetFont("SPLBXPET"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2379,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); //******************************************* //** EXP-Gains/Kills/Combos [2001 to 2007?]** //******************************************* // 2001 - EXP Combo Meter Frame [Combos] // 2002 - EXP Combo Meter Notches [Combos] // 2003 - EXP Combo Meter Glass [Combos] // 2004 - # of Kills [Combos] // 2005 - "Kills" Label [Combos] // 2006 - "OVERKILL" text [Combos] // 2007 - EXP [from last kill] [Combos] // 2008 - EXP Total + Combo Bonus [combo] if (EXPGainChecker == 1) { if (MiscellaneousVars[157] > 0) { // Combo Meter Frames xpos = ScreenXOffset + 129.0; ypos = ScreenYOffset + 708.0; // MiscFixedVars[2]; // 772.0; // 772.0 SetFont("KLBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2001,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Combo Meter Notches if (PowerupTimer[7] > 0) MaxEXPCombotimer = 7000; else MaxEXPCombotimer = 5600; CurrentValue = MiscellaneousVars[157]; MaxValue = MaxEXPCombotimer; fontname = "KLBNO"; fontnum = CurrentValue * 100 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 100) fontnum = 100; if (fontnum >= 1 && fontnum <= 100) { xpos = ScreenXOffset + 129.0; ypos = ScreenYOffset + 708.0; // MiscFixedVars[2]; // 772.0; // 772.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (MiscellaneousVars[162] > 0) // Combo Timer Delay is active, change color of meter to indicate this { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"KL2NO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"KL2NO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"KL2NO", d:fontnum); } else { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"KLBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"KLBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"KLBNO", d:fontnum); } //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2002,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos = ScreenXOffset + 79.0; // MiscFixedVars[1]; ypos += 0.0; // = 772.0; // MiscFixedVars[2]; // 772.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); // Combo Meter Glass xpos = ScreenXOffset + 129.0; ypos = ScreenYOffset + 708.0; // MiscFixedVars[2]; // 772.0; // 772.0 SetFont("KLBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2003,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } str killmsgcolor = "Green"; MiscellaneousVars[142]++; if (MiscellaneousVars[142] > 39) MiscellaneousVars[142] -= 39; // # of Kills if (MiscellaneousVars[158] > 0) { // Kill Combo if (MiscellaneousVars[158] > 1) { if (MiscellaneousVars[158] > 10 && MiscellaneousVars[158] < 21) { killmsgcolor = "LightBlue"; } else if (MiscellaneousVars[158] > 20 && MiscellaneousVars[158] < 36) { killmsgcolor = "Cream"; } else if (MiscellaneousVars[158] > 35 && MiscellaneousVars[158] < 61) { killmsgcolor = "Cyan"; } else if (MiscellaneousVars[158] > 60 && MiscellaneousVars[158] < 101) { killmsgcolor = "Brick"; } else if (MiscellaneousVars[158] > 100 && MiscellaneousVars[158] < 201) { killmsgcolor = "Orange"; } else if (MiscellaneousVars[158] > 200 && MiscellaneousVars[158] < 501) { killmsgcolor = "Gold"; } else if (MiscellaneousVars[158] > 500) { if (MiscellaneousVars[142] >= 0 && MiscellaneousVars[142] <= 9) killmsgcolor = "PetraOrange"; if (MiscellaneousVars[142] >= 10 && MiscellaneousVars[142] <= 19) killmsgcolor = "FloraBlue"; if (MiscellaneousVars[142] >= 20 && MiscellaneousVars[142] <= 29) killmsgcolor = "PetraOrange"; if (MiscellaneousVars[142] >= 30 && MiscellaneousVars[142] <= 39) killmsgcolor = "FloraBlue"; } } SetFont("DQHUDFONT"); xpos = ScreenXOffset + 90.0 + 0.2; // 108.0 if (xpos < 0.0) xpos -= 0.4; //Print(f:xpos); ypos += -22.0; // = 750.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[158];HUDMSG_ALPHA | HUDMSG_COLORSTRING,2004,killmsgcolor,xpos,ypos,HUDMsgDelayFixed,msgalpha); SetFont("DQHUDFONTSML"); // "Kills" Label xpos = ScreenXOffset + 108.0 + 0.1; // 120.0 if (xpos < 0.0) xpos -= 0.2; ypos += 5.0; // = 755.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); str ComboFirst = ""; str ComboLetter = "-"; if (MiscellaneousVars[51] == 0) ComboLetter = "D"; if (MiscellaneousVars[51] == 1) ComboLetter = "C"; if (MiscellaneousVars[51] == 2) ComboLetter = "B"; if (MiscellaneousVars[51] == 3) ComboLetter = "A"; if (MiscellaneousVars[51] == 4) ComboLetter = "S"; if (MiscellaneousVars[51] >= 5) ComboLetter = "Z"; if (MiscellaneousVars[158] == 1) ComboFirst = "KILL ["; else ComboFirst = "KILLS ["; HudMessage(s:ComboFirst,s:ComboLetter,s:"]";HUDMSG_ALPHA | HUDMSG_COLORSTRING,2005,killmsgcolor,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // "OVERKILL" text xpos = ScreenXOffset + 312.0; // MiscFixedVars[1]; ypos += -43.0; // = 712.0; // MiscFixedVars[2]; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); if (MiscellaneousVars[2023] > 0) // Overkill timer { str overkilltype = ""; SetFont("DQHUDFONTSML"); if (MiscellaneousVars[2022] == 1) overkilltype = "OVERKILL!"; if (MiscellaneousVars[2022] == 2) overkilltype = "\c[purple]OVERKILL!\c-"; HudMessage(s:overkilltype;HUDMSG_ALPHA,2006,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); MiscellaneousVars[2023] -= 1; } // EXP [from last kill] if (MiscellaneousVars[2026] > 0) { xpos = ScreenXOffset + 222.0 + 0.1; if (xpos < 0.0) xpos -= 0.2; ypos += 29.0; // = 741.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (MiscellaneousVars[2024]-MiscellaneousVars[2025] > 1) HudMessage(s:"+",d:MiscellaneousVars[2024],s:" EXP (+",d:MiscellaneousVars[2024]-MiscellaneousVars[2025],s:")";HUDMSG_ALPHA,2007,cr_teal,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(s:"+",d:MiscellaneousVars[2024],s:" EXP";HUDMSG_ALPHA,2007,cr_teal,xpos,ypos,HUDMsgDelayFixed,msgalpha); MiscellaneousVars[2026] -= 1; } // EXP Total + Combo Bonus [combo] if (MiscellaneousVars[158] > 1 && MiscellaneousVars[160] > 0) { xpos = ScreenXOffset + 222.0 + 0.1; if (xpos < 0.0) xpos -= 0.2; if (MiscellaneousVars[2026] > 0) ypos += 28.0; else ypos += 57.0; // = 769.0; MultiLower = (MiscellaneousVars[159] - 10000) % 100; MultiUpper = ((MiscellaneousVars[159] - 10000) - MultiLower) / 100; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); str tempstr = "."; if (MultiLower > -1 && MultiLower < 10) tempstr = ".0"; HudMessage(s:"+",d:MiscellaneousVars[160],s:" EXP (+",d:MultiUpper,s:tempstr,d:MultiLower,s:"%)";HUDMSG_ALPHA,2008,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } //***************************************** //** HP Info [2010, 2012 & 2023 to 2030] ** //***************************************** // 2010 - HP Gained during "LEVEL UP" [HP Info] // 2012 - HP Label [HP Info] // 2023 - HP Amounts [HP Info] // 2024 - HP Meter "Critical" Border [HP Info] // 2025 - HP Meter Frame [HP Info] // 2026 - HP Meter Bonus/Penalty Glow // 2027 - HP Meter "Overlife" Notches [HP Info] // 2028 - HP Meter Notches [HP Info] // 2029 - HP Meter Poison Frame // 2030 - HP Meter Glass [HP Info] CurrentValue = MiscellaneousVars[25001]; MaxValue = MaxHealthTrue; // Max Health for player // HP Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 868.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"HP";HUDMSG_ALPHA,2012,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // HP Gained during "LEVEL UP" // MiscellaneousVars[2031] = MaxHP xpos = ScreenXOffset + 388.0 + 0.1; if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 862.0; SetFont("DQHUDFONTSML"); if (MiscellaneousVars[222] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"+ ",d:MiscellaneousVars[222];HUDMSG_ALPHA,2010,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // HP Amounts xpos = ScreenXOffset + 326.0; ypos = ScreenYOffset + 872.0; SetFont("DQHUDFONTSML"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2023,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // HP Meter Border xpos = ScreenXOffset + 325.0; ypos = ScreenYOffset + 870.0; CurrentValue = MiscellaneousVars[25001]; MaxValue = MaxHealthTrue; // Max Health for player if (MaxValue != 0) { tempvar1 = 2003; VisibleNotchAmount = CurrentValue * 200 / MaxValue; if (VisibleNotchAmount <= 20) // If Health is "Critical" [10% or less] { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("HPBFCRIT"); HudMessage(s:"A";HUDMSG_ALPHA,2024,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { MiscellaneousVars[tempvar1] = 0; } } SetFont("HPBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2025,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Poison Frame [2029] if (MaxValue != 0) { xpos = ScreenXOffset + 325.0; ypos = ScreenYOffset + 870.0; tempvar1 = 2057; if (PowerupTimer[16] > 0) // If Player is Poisoned { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("HPBFPOIS"); HudMessage(s:"A";HUDMSG_ALPHA,2029,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { MiscellaneousVars[tempvar1] = 0; } } // HP Meter Notches CurrentValue = MiscellaneousVars[25001]; MaxValue = MaxHealthTrue; // Max Health for player if (MaxValue != 0) { // Normal fontname = "HPBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; // + MiscFixedVars[1]; ypos = ScreenYOffset + 870.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2028,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudOverlifeNotches == 1) { fontname = "HPBFO"; fontnum = (CurrentValue * 200 / MaxValue) - 200; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; // + MiscFixedVars[1]; ypos = ScreenYOffset + 870.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2027,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // HP Meter Bonus/Penalty Glow [2026] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 870.0; tempvar1 = 2052; tempvar2 = 92; if (MiscellaneousVars[tempvar2] != 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -840 || MiscellaneousVars[tempvar2] >= 840) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -750 || MiscellaneousVars[tempvar2] >= 750) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -560 || MiscellaneousVars[tempvar2] >= 560) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -420 || MiscellaneousVars[tempvar2] >= 420) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -210 || MiscellaneousVars[tempvar2] >= 210) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -70 || MiscellaneousVars[tempvar2] >= 70) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar2] > 0) SetFont("HPBGBON"); if (MiscellaneousVars[tempvar2] < 0) SetFont("HPBGPEN"); msgalpha = FixedMul(msgalpha,1.0); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2026,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // HP Meter Glass [2030] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 870.0; SetFont("HPBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2030,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //********************************** //** MP Info [2010 & 2013 to 2039]** //********************************** // 2010 - MP Gained during "LEVEL UP" [MP Info] // 2013 - MP Label [MP Info] // 2033 - MP Amounts [MP Info] // 2034 - MP Meter "Focus" Border [MP Info] // 2035 - MP Meter Border [MP Info] // 2036 - MP Meter Bonus/Penalty Glow // 2037 - MP Meter "Overmagic" Notches [MP Info] // 2038 - MP Meter Notches [MP Info] // 2039 - MP Meter Glass [MP Info] CurrentValue = CurrentMana; MaxValue = MaxMana; // MP Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 895.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"MP";HUDMSG_ALPHA,2013,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // MP Gained during "LEVEL UP" // MiscellaneousVars[2032] = MaxMP xpos = ScreenXOffset + 388.0 + 0.1; if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 889.0; SetFont("DQHUDFONTSML"); if (MiscellaneousVars[223] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"+ ",d:MiscellaneousVars[223];HUDMSG_ALPHA,2011,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // MP Amounts xpos = ScreenXOffset + 326.0; ypos = ScreenYOffset + 899.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2033,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // MP Meter Border xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 897.0; tempvar1 = 2004; if (MiscellaneousVars[212] > 0) // Focusing { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 350) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 1050) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 2100) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 2800) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 3500) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[231] >= 4200) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("MPBFOCUS"); HudMessage(s:"A";HUDMSG_ALPHA,2034,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetFont("MPBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2035,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // MP Meter Notches xpos = ScreenXOffset + 225.0; // 225 ypos = ScreenYOffset + 897.0; // 870 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); CurrentValue = CurrentMana; MaxValue = MaxMana; if (MaxValue != 0) { // Normal fontname = "MPBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 897.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"MPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"MPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"MPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2038,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudOverlifeNotches == 1) { fontname = "MPBFO"; fontnum = (CurrentValue * 200 / MaxValue) - 200; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 897.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"MPBFO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"MPBFO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"MPBFO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2037,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // MP Meter Bonus/Penalty Glow [2036] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 897.0; tempvar1 = 2053; tempvar2 = 93; if (MiscellaneousVars[tempvar2] != 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -840 || MiscellaneousVars[tempvar2] >= 840) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -750 || MiscellaneousVars[tempvar2] >= 750) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -560 || MiscellaneousVars[tempvar2] >= 560) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -420 || MiscellaneousVars[tempvar2] >= 420) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -210 || MiscellaneousVars[tempvar2] >= 210) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -70 || MiscellaneousVars[tempvar2] >= 70) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar2] > 0) SetFont("MPBGBON"); if (MiscellaneousVars[tempvar2] < 0) SetFont("MPBGPEN"); msgalpha = FixedMul(msgalpha,1.0); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2036,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // MP Meter Glass xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 897.0; SetFont("MPBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2039,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //*************************************** //** AP/HLCR Info [2014 & 2043 to 2049]** //*************************************** // 2014 - AP/HLCR Label [AP/HLCR Info] // 2043 - AP/HLCR Amounts [AP/HLCR Info] // 2044 - AP "Armor Type" Meter Frame / HLCR "OverHeat" Meter Frame [AP/HLCR Info] // 2045 - AP/HLCR Meter Frame [AP/HLCR Info] // 2046 - HLCR Bonus/Penalty Glow [HLCR Info] // 2047 - AP Meter Notches / Hellcore "Overheat" Meter Notches [AP/HLCR Info] // 2048 - Hellcore Meter Notches [AP/HLCR Info] // 2049 - AP/HLCR Meter Glass [AP/HLCR Info] // AP/HLCR/ARC Meter Border if (CharacterClass == 9) // Petra = Arcana Gauge { // ARC Glass Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("ARBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2049,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // ARC Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("ARBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2045,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // ARC Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 922.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"ARC";HUDMSG_ALPHA,2014,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // ARC Notches CurrentValue = MiscellaneousVars[5001]; MaxValue = 900; //To replace in the future with other max. Arcana Gauge options if (MaxValue != 0) { // Normal fontname = "APBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"APBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"APBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"APBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2048,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // ARC Amounts xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 926.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2043,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (CharacterClass == 8) // Ailish = Spirit Strike Meter { // SSP Glass Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("SSBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2049,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // SSP Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("SSBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2045,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // SSP Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 922.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"SSP";HUDMSG_ALPHA,2014,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (CharacterClass == 2) // Flora = HellCore/HLCR { // HLCR Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 922.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"HLCR";HUDMSG_ALPHA,2014,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // HLCR Amounts WholeValue = (HellcoreOverheatLevel / 100) / 100; ModuloValue = (HellcoreOverheatLevel / 100) % 100; xpos = ScreenXOffset + 326.0; ypos = ScreenYOffset + 926.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); if (ModuloValue < 10) HudMessage(d:WholeValue,s:".0",d:ModuloValue,s:"%";HUDMSG_ALPHA,2043,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:WholeValue,s:".",d:ModuloValue,s:"%";HUDMSG_ALPHA,2043,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // HLCR Meter Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; tempvar1 = 2005; if (HellcoreOverheatLevel > 1000000) // Hellcore - "Overheated" Glow { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("HCBOVHET"); HudMessage(s:"A";HUDMSG_ALPHA,2044,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetFont("HCBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2045,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // HLCR Meter Notches CurrentValue = HellcoreOverheatLevel; MaxValue = 1000000; if (MaxValue != 0) { // Normal fontname = "HCBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HCBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HCBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HCBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2048,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudOverlifeNotches == 1) { fontname = "HCBFO"; fontnum = (CurrentValue * 200 / MaxValue) - 200; fontnum /= 9; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HCBFO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HCBFO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HCBFO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2047,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // Stamina Meter Bonus/Penalty Glow [2046] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; tempvar1 = 2055; tempvar2 = 95; if (MiscellaneousVars[tempvar2] != 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -840 || MiscellaneousVars[tempvar2] >= 840) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -750 || MiscellaneousVars[tempvar2] >= 750) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -560 || MiscellaneousVars[tempvar2] >= 560) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -420 || MiscellaneousVars[tempvar2] >= 420) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -210 || MiscellaneousVars[tempvar2] >= 210) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -70 || MiscellaneousVars[tempvar2] >= 70) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar2] > 0) SetFont("HCBGBON"); if (MiscellaneousVars[tempvar2] < 0) SetFont("HCBGPEN"); msgalpha = FixedMul(msgalpha,1.0); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2046,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // HLCR Meter Glass xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("HCBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2049,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } if (CharacterClass == 0 || CharacterClass == 1) // Marines = AP { CurrentValue = MiscellaneousVars[25037]; MaxValue = CurrentMaxArmor; if (CurrentValue > 0 && MaxValue > 0) { // AP Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 922.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"AP";HUDMSG_ALPHA,2014,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // AP Amounts xpos = ScreenXOffset + 326.0; ypos = ScreenYOffset + 926.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2043,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // AP Meter Type Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; if (CurrentArmorClass > 0) // Armor Type { if (CurrentArmorClass == 1) // Green Armor { SetFont("APBGRNAR"); } if (CurrentArmorClass == 2) // Blue Armor { SetFont("APBBLUAR"); } if (CurrentArmorClass == 3) // Stone Skin [1] { SetFont("APBSTSK1"); } if (CurrentArmorClass == 4) // Diamond Skin [1] { SetFont("APBDISK1"); } if (CurrentArmorClass == 5) // Stone Skin [2] { SetFont("APBSTSK2"); } if (CurrentArmorClass == 6) // Diamond Skin [2] { SetFont("APBDISK2"); } msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2044,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // AP Meter Frame SetFont("APBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2045,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // AP Meter Notches fontname = "APBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"APBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"APBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"APBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2047,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // AP Meter Glass xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 924.0; SetFont("APBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2049,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } //*************************************** //** STAMINA Info [2015 & 2053 to 2060]** //*************************************** // 2015 - Stamina Label [STAMINA Info] // 2053 - Stamina Amounts [STAMINA Info] // 2054 - Stamina "Focus Charge" Meter Frame [STAMINA Info] // 2055 - Stamina "Tension Charge" Meter Frame [STAMINA Info] // 2056 - Stamina Meter Frame [STAMINA Info] // 2057 - Stamina Meter Bonus/Penalty Glow // 2058 - Stamina Meter "OverStamina" Notches [STAMINA Info] // 2059 - Stamina Meter Notches [STAMINA Info] // 2060 - Stamina Meter Glass [STAMINA Info] int StaminaRatio = ((MiscellaneousVars[21] * 100) / MiscellaneousVars[22]); // Current Stamina if (MiscellaneousVars[22] != 0) StaminaRatio = ((MiscellaneousVars[21] * 100) / MiscellaneousVars[22]); // Current Stamina // STAM Label xpos = ScreenXOffset + 220.0; ypos = ScreenYOffset + 949.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"STAM";HUDMSG_ALPHA,2015,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Stamina Amounts WholeValue = MiscellaneousVars[8] / 100; ModuloValue = MiscellaneousVars[8] % 100; xpos = ScreenXOffset + 326.0; ypos = ScreenYOffset + 953.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); if (debughud2 > 0) { if (ModuloValue < 10) HudMessage(d:WholeValue,s:".0",d:ModuloValue,s:"% [",d:MiscellaneousVars[21],s:"/",d:MiscellaneousVars[22],s:"]";HUDMSG_ALPHA,2053,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:WholeValue,s:".",d:ModuloValue,s:"% [",d:MiscellaneousVars[21],s:"/",d:MiscellaneousVars[22],s:"]";HUDMSG_ALPHA,2053,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { if (ModuloValue < 10) HudMessage(d:WholeValue,s:".0",d:ModuloValue,s:"%";HUDMSG_ALPHA,2053,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:WholeValue,s:".",d:ModuloValue,s:"%";HUDMSG_ALPHA,2053,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudPrimaryMeters == 1) { // STAM Meter Frame xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 951.0; tempvar1 = 2006; if (MiscellaneousVars[212] > 0) // Stamina - "Focus Charge" Glow { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SMBFOCDR"); HudMessage(s:"A";HUDMSG_ALPHA,2054,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[185] > 0) // Stamina - "Tension Charge" Glow { tempvar1 = 2007; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SMBTENDR"); HudMessage(s:"A";HUDMSG_ALPHA,2055,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetFont("SMBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2056,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // STAM Meter Notches CurrentValue = MiscellaneousVars[21]; MaxValue = MiscellaneousVars[22]; if (MaxValue != 0) { // Normal fontname = "SMBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 951.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"SMBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"SMBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"SMBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2059,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudOverlifeNotches == 1) { fontname = "SMBFO"; fontnum = (CurrentValue * 200 / MaxValue) - 200; fontnum /= 4; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 951.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"SMBFO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"SMBFO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"SMBFO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2058,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // Stamina Meter Bonus/Penalty Glow [2057] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 951.0; tempvar1 = 2054; tempvar2 = 94; if (MiscellaneousVars[tempvar2] != 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -840 || MiscellaneousVars[tempvar2] >= 840) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -750 || MiscellaneousVars[tempvar2] >= 750) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -560 || MiscellaneousVars[tempvar2] >= 560) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -420 || MiscellaneousVars[tempvar2] >= 420) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -210 || MiscellaneousVars[tempvar2] >= 210) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar2] <= -70 || MiscellaneousVars[tempvar2] >= 70) MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.735; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.705; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.675; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.645; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.615; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.585; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.555; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.525; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.495; if (MiscellaneousVars[tempvar2] > 0) SetFont("SMBGBON"); if (MiscellaneousVars[tempvar2] < 0) SetFont("SMBGPEN"); msgalpha = FixedMul(msgalpha,1.0); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2057,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // STAM Meter Glass [2060] xpos = ScreenXOffset + 324.0; ypos = ScreenYOffset + 951.0; SetFont("SMBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2060,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //**************************** //** LVL Info [2016 to 2066]** //**************************** // 2016 - LVL Label [LVL Info] // 2063 - LVL Amounts [LVL Info] // 2064 - LVL Meter Frame [LVL Info] // 2065 - LVL Meter Notches [LVL Info] // 2066 - LVL Meter Glass [LVL Info] if (EXPGainChecker == 1) { // LVL Label xpos = ScreenXOffset + 470.0; ypos = ScreenYOffset + 868.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"LVL";HUDMSG_ALPHA,2016,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // LVL Amounts xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 872.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:PlayerLevel;HUDMSG_ALPHA,2063,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudSecondaryMeters == 1) { // LVL Meter Frame xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 870.0; SetFont("LVBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2064,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // LVL Meter Notches CurrentValue = PlayerLevel; MaxValue = LevelCap; fontname = "LVBNO"; fontnum = CurrentValue * 50 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 50) fontnum = 50; if (fontnum >= 1 && fontnum <= 50) { xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 870.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"LVBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"LVBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"LVBNO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2065,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos = ScreenXOffset + 508.0; ypos = ScreenYOffset + 870.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); // LVL Meter Glass xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 870.0; SetFont("LVBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2066,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } //**************************** //** SV% Info [2017 to 2076]** //**************************** // 2017 - SV% Label [SV% Info] // 2073 - SV% Amounts [SV% Info] // 2074 - SV% Meter Frame [SV% Info] // 2075 - SV% Meter Notches [SV% Info] // 2076 - SV% Meter Glass [SV% Info] WholeValue = MiscellaneousVars[232] / 10; ModuloValue = MiscellaneousVars[232] % 10; // SV% Label xpos = ScreenXOffset + 470.0; ypos = ScreenYOffset + 895.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"SV%";HUDMSG_ALPHA,2017,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // SV% Amounts xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 899.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:WholeValue,s:".",d:ModuloValue;HUDMSG_ALPHA,2073,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudSecondaryMeters == 1) { // SV% Meter Frame xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 897.0; SetFont("SVBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2074,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // SV% Meter Notches CurrentValue = MiscellaneousVars[232]; MaxValue = 1000; fontname = "SVBNO"; fontnum = CurrentValue * 50 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 50) fontnum = 50; if (fontnum >= 1 && fontnum <= 50) { xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 897.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"SVBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"SVBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"SVBNO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2075,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // SV% Meter Glass xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 897.0; SetFont("SVBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2076,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //**************************** //** AB% Info [2018 to 2086]** //**************************** // 2018 - AB% Label [AB% Info] // 2083 - AB% Amounts [AB% Info] // 2084 - AB% Meter Frame [AB% Info] // 2085 - AB% Meter Notches [AB% Info] // 2086 - AB% Meter Glass [AB% Info] WholeValue = MiscellaneousVars[233] / 10; ModuloValue = MiscellaneousVars[233] % 10; // AB% Label xpos = ScreenXOffset + 470.0; ypos = ScreenYOffset + 922.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"AB%";HUDMSG_ALPHA,2018,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // AB% Amounts xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 926.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:WholeValue,s:".",d:ModuloValue;HUDMSG_ALPHA,2083,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudSecondaryMeters == 1) { // AB% Meter Frame xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 924.0; SetFont("ABBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2084,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // AB% Meter Notches CurrentValue = MiscellaneousVars[233]; MaxValue = 1000; fontname = "ABBNO"; fontnum = CurrentValue * 50 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 50) fontnum = 50; if (fontnum >= 1 && fontnum <= 50) { xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 924.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (CharacterClass == 2) { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"ABBNF00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"ABBNF0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"ABBNF", d:fontnum); } else { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"ABBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"ABBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"ABBNO", d:fontnum); } //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2085,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // AB% Meter Glass xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 924.0; SetFont("ABBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2086,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //**************************** //** EV% Info [2019 to 2096]** //**************************** // 2019 - EV% Label [EV% Info] // 2093 - EV% Amounts [EV% Info] // 2094 - EV% Meter Frame [EV% Info] // 2095 - EV% Meter Notches [EV% Info] // 2096 - EV% Meter Glass [EV% Info] WholeValue = MiscellaneousVars[23] / 100; ModuloValue = (MiscellaneousVars[23] % 100) / 10; // EV% Label xpos = ScreenXOffset + 470.0; ypos = ScreenYOffset + 949.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"EV%";HUDMSG_ALPHA,2019,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // EV% Amounts xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 953.0; SetFont("DQHUDFONTSML"); // if (ModuloValue < 10) HudMessage(d:WholeValue,s:".0",d:ModuloValue;HUDMSG_ALPHA,2093,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:WholeValue,s:".",d:ModuloValue;HUDMSG_ALPHA,2093,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudSecondaryMeters == 1) { // EV% Meter Frame xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 951.0; SetFont("EVBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2094,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // EV% Meter Notches CurrentValue = MiscellaneousVars[23]; MaxValue = 10000; fontname = "EVBNO"; fontnum = CurrentValue * 50 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 50) fontnum = 50; if (fontnum >= 1 && fontnum <= 50) { xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 951.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"EVBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"EVBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"EVBNO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2095,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // EV% Meter Glass xpos = ScreenXOffset + 535.0; ypos = ScreenYOffset + 951.0; SetFont("EVBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2096,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //**************************** //** EXP Info [2020 to 5106]** //**************************** // 2020 - EXP Label [EXP Info] // 2097 - EXP Meter Border [EXP Info] // 2098 - EXP Meter Ruler [EXP Info] // 2099 - EXP Meter Notches [EXP Info] // 2100 - EXP Meter Glass [EXP Info] if (EXPGainChecker == 1) { // EXP Label xpos = ScreenXOffset + 204.0; ypos = ScreenYOffset + 972.0; SetFont("EXBLABEL"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2020,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // EXP Meter Border xpos = ScreenXOffset + 316.0; ypos = ScreenYOffset + 972.0; SetFont("EXBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2097,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // EXP Meter "Ruler" xpos = ScreenXOffset + 316.0; ypos = ScreenYOffset + 972.0; SetFont("EXBRULER"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2098,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // EXP Notches int CurrentEXPMeterAmount; int MaxEXPMeterAmount; CurrentEXPMeterAmount = Experience - ExpTable[PlayerLevel - 1]; MaxEXPMeterAmount = ExpTable[PlayerLevel] - ExpTable[PlayerLevel - 1]; fontname = "EXBNO"; fontnum = CurrentEXPMeterAmount * 200 / MaxEXPMeterAmount; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 316.0; ypos = ScreenYOffset + 972.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"EXBNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"EXBNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"EXBNO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2099,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // EXP Meter Glass xpos = ScreenXOffset + 316.0; ypos = ScreenYOffset + 972.0; SetFont("EXBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2100,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[110002] > 0) // Tension is Enabled { //**************************************** //** Tension Charge/Timer [2103 to 2107]** //**************************************** // 2103 - Tension-Charge Meter "Psyche" Border [Tension Charge/Timer] // 2104 - Tension-Charge Meter Border [Tension Charge/Timer] // 2105 - Tension-Charge Meter Notches [Tension Charge/Timer] // 2106 - Tension-Timer Notches [Tension Charge/Timer] // 2107 - Tension-Timer Glass [Tension Charge/Timer] // Tension-Charge Meter Border int TensionBarChecker; TensionBarChecker = 0; if (GetCVar("dvdshud_tensionmainbar") == 0) { if (MiscellaneousVars[185] > 0) TensionBarChecker += 1; if (MiscellaneousVars[183] > 0) TensionBarChecker += 1; } else TensionBarChecker += 1; if (TensionBarChecker == 1) { xpos = ScreenXOffset + 27.0; ypos = ScreenYOffset + 856.0; tempvar1 = 2009; if (MiscellaneousVars[181] > 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; if (MiscellaneousVars[181] == 1) SetFont("TNBGLVL1"); if (MiscellaneousVars[181] == 2) SetFont("TNBGLVL2"); if (MiscellaneousVars[181] == 3) SetFont("TNBGLVL3"); if (MiscellaneousVars[181] == 4) SetFont("TNBGLVL4"); if (MiscellaneousVars[181] == 5) SetFont("TNBGLVL5"); if (MiscellaneousVars[181] == 6) SetFont("TNBGLVL6"); if (MiscellaneousVars[181] == 7) SetFont("TNBGLVL7"); msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2103,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[181] > 0) SetFont("TNBGFRAM"); else SetFont("TNBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2104,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Tension-Charge/Timer Meter Notches MaxTensionChargeTimer = 14000; if (MiscellaneousVars[181] == 0) { MaxTensionChargeTimer = 14000; } // "0" if (MiscellaneousVars[181] == 1) { MaxTensionChargeTimer = 14880; TensionTimerMax = 3600; } // "5" if (MiscellaneousVars[181] == 2) { MaxTensionChargeTimer = 15750; TensionTimerMax = 4320; } // "20" [x1.2] if (MiscellaneousVars[181] == 3) { MaxTensionChargeTimer = 17500; TensionTimerMax = 5184; } // "50" [x1.2] if (MiscellaneousVars[181] == 4) { MaxTensionChargeTimer = 19250; TensionTimerMax = 6221; } // "100" [x1.2] if (MiscellaneousVars[181] == 5) { MaxTensionChargeTimer = 21000; TensionTimerMax = 7465; } // "250" [x1.2] if (MiscellaneousVars[181] == 6) { MaxTensionChargeTimer = 26250; TensionTimerMax = 8958; } // "500" [x1.2] if (MiscellaneousVars[181] == 7) { TensionTimerMax = 10750; } // "1000" [x1.2] // Tension-Charge Meter Notches CurrentValue = MiscellaneousVars[185]; MaxValue = MaxTensionChargeTimer; fontname = "TNBNC"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 27.0; ypos = ScreenYOffset + 856.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"TNBNC00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"TNBNC0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"TNBNC", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2105,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Tension-Timer Notches CurrentValue = MiscellaneousVars[183]; MaxValue = TensionTimerMax; fontname = "TNBNT"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 27.0; ypos = ScreenYOffset + 856.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"TNBNT00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"TNBNT0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"TNBNT", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2106,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Tension-Timer Glass xpos = ScreenXOffset + 27.0; ypos = ScreenYOffset + 856.0; SetFont("TNBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2107,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //************************************** //** Tension OverPsyche [2275 to 7634]** //************************************** // 2275 - Tension-OverPsyche Meter "OverPsyched" Border [Tension-OverPsyche] // 2276 - Tension-OverPsyche Meter Border [Tension-OverPsyche] // 2277 - Tension-OverPsyche Meter Notches [Tension-OverPsyche] // 2278 - Tension-OverPsyche Meter Glass [Tension-OverPsyche] // MiscellaneousVars[250] - OverPsyche Timer [Current] // MiscellaneousVars[262] - OverPsyche Timer [Max] int TensionOPBarChecker; TensionOPBarChecker = 0; if (MiscellaneousVars[110002] >= 2) { if (MiscellaneousVars[250] > 0) TensionOPBarChecker += 1; } if (TensionOPBarChecker == 1) { // Tension-OverPsyche Meter Border xpos = ScreenXOffset + 62.0; // 62.0 ypos = ScreenYOffset + 911.0; // 911.0 tempvar1 = 2051; if (MiscellaneousVars[250] >= MiscellaneousVars[262]) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("OVPSMAXG"); HudMessage(s:"A";HUDMSG_ALPHA,2275,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos = ScreenXOffset + 62.0; // 62.0 ypos = ScreenYOffset + 911.0; // 911.0 SetFont("OVPSFRAM"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2276,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Tension-OverPsyche Notches if (MiscellaneousVars[250] > 0) // && MiscellaneousVars[183] < TensionTimerMax { CurrentValue = MiscellaneousVars[250]; MaxValue = MiscellaneousVars[262]; // Normal fontname = "OVPSN"; fontnum = CurrentValue * 100 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 100) fontnum = 100; if (fontnum >= 1 && fontnum <= 100) { xpos = ScreenXOffset + 62.0; // 62.0 ypos = ScreenYOffset + 911.0; // 911.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"OVPSN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"OVPSN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"OVPSN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2277,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Tension-OverPsyche Glass xpos = ScreenXOffset + 62.0; // 62.0 ypos = ScreenYOffset + 911.0; // 911.0 SetFont("OVPSGLAS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2278,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //************************************ //** Tension Cooldown [2113 to 2116]** //************************************ // 2113 - Tension-Cooldown Meter "Max Cooldown" Border [Tension Cooldown] // 2114 - Tension-Cooldown Meter Border [Tension Cooldown] // 2115 - Tension-Cooldown Meter Notches [Tension Cooldown] // 2116 - Tension Star Icon [Tension Star] // 2117 - Tension Cooldown Meter Glass [Tension Cooldown] // Tension-Cooldown Meter "Max Cooldown" Border xpos = ScreenXOffset + 46.0; ypos = ScreenYOffset + 911.0; // MiscellaneousVars[188] = MiscellaneousVars[186]; CurrentValue = MiscellaneousVars[186]; // Current Tension Cooldown Timer MaxValue = MiscellaneousVars[188]; // Max Tension Cooldown tempvar1 = 2008; if (MaxValue > 0 && CurrentValue >= MaxValue) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("TNCDMAXG"); HudMessage(s:"A";HUDMSG_ALPHA,2113,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Tension-Cooldown Meter Border xpos = ScreenXOffset + 46.0; ypos = ScreenYOffset + 911.0; SetFont("TNCDFRAM"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2114,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Tension-Cooldown Meter Notches CurrentValue = MiscellaneousVars[186]; // Current Tension Cooldown Timer MaxValue = MiscellaneousVars[188]; // Max Tension Cooldown if (MaxValue != 0) { // Normal fontname = "TNCDN"; fontnum = CurrentValue * 100 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 100) fontnum = 100; if (fontnum >= 1 && fontnum <= 100) { xpos = ScreenXOffset + 46.0; ypos = ScreenYOffset + 911.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"TNCDN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"TNCDN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"TNCDN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2115,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Tension Cooldown Meter Glass xpos = ScreenXOffset + 46.0; ypos = ScreenYOffset + 911.0; SetFont("TNCDGLAS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2117,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); //************************ //** Tension Star [2116]** //************************ xpos = ScreenXOffset + 132.0; // 152.0; ypos = ScreenYOffset + 948.0; // 950.0; if (MiscellaneousVars[181] == 0) { if (MiscellaneousVars[185] > 0) SetFont("TNST0000"); else SetFont("TNSTNONE"); } if (MiscellaneousVars[181] == 1) SetFont("TNST0005"); if (MiscellaneousVars[181] == 2) SetFont("TNST0020"); if (MiscellaneousVars[181] == 3) SetFont("TNST0050"); if (MiscellaneousVars[181] == 4) SetFont("TNST0100"); if (MiscellaneousVars[181] == 5) SetFont("TNST0250"); if (MiscellaneousVars[181] == 6) SetFont("TNST0500"); if (MiscellaneousVars[181] == 7) SetFont("TNST1000"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2116,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //****************************************************** //**Armor Icons [Flora's & Sauron-type] [2118 to 2133]** //****************************************************** // 2118 - Sauron Helmet Icon [Armor Icons] // 2119 - Sauron Gauntlets Icon [Armor Icons] // 2120 - One Ring Icon [Armor Icons] // 2121-2133 - Flora-Specific Armor Icons [Armor Icons] // Sauron Armors xpos = ScreenXOffset + 442.0; ypos = ScreenYOffset + 744.0; if (MiscellaneousVars[25101] > 0) { SetFont("SAURHELM"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2118,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25102] > 0) { SetFont("SAURGNTS"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2119,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25103] > 0) { SetFont("TONERING"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2120,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Flora Armors xpos = ScreenXOffset + 59.0; // 59.0 ypos = ScreenYOffset + 744.0; if (MiscellaneousVars[25104] > 0) { SetFont("IFLRARM1"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2121,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25105] > 0) { SetFont("IFLRARM2"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2122,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25106] > 0) { SetFont("IFLRARM3"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2123,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25107] > 0) { SetFont("IFLRARM4"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2124,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25108] > 0) { SetFont("IFLRARM5"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2125,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25109] > 0) { SetFont("IFLRARM6"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2126,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25110] > 0) { SetFont("IFLRARM7"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2127,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25111] > 0) { SetFont("IFLRARM8"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2128,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25112] > 0) { int RuinousShieldWhole = RuinousShieldPercentF / 10; int RuinousShieldDecimal = RuinousShieldPercentF % 10; ypos -= 32.0; SetFont("DVDSBIGFONT"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:RuinousShieldWhole,s:".",d:RuinousShieldDecimal,s:"%";HUDMSG_ALPHA,2129,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); ypos += 32.0; SetFont("IFLRARMX"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2130,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25113] > 0) { SetFont("IFLRARM9"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2131,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25114] > 0) { SetFont("IFLRARMA"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2132,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } xpos += 32.0; ypos += 0.0; if (MiscellaneousVars[25115] > 0) { SetFont("IFLRARMB"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2133,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //******************************************** //**Stat/AeonPts Icons/Values [2141 to 2158]** //******************************************** // 2141 - "Aeon Points" Icon [Stat/AeonPts Icons/Values] // 2142 - "Aeon Points" Value [Stat/AeonPts Icons/Values] // 2143 - "Strength" Icon [Stat/AeonPts Icons/Values] // 2144 - "Strength" Value [Stat/AeonPts Icons/Values] // 2145 - "Defense" Icon [Stat/AeonPts Icons/Values] // 2146 - "Defense" Value [Stat/AeonPts Icons/Values] // 2147 - "Sorcery" Icon [Stat/AeonPts Icons/Values] // 2148 - "Sorcery" Value [Stat/AeonPts Icons/Values] // 2149 - "Therapeusis" Icon [Stat/AeonPts Icons/Values] // 2150 - "Therapeusis" Value [Stat/AeonPts Icons/Values] // 2151 - "Agility" Icon [Stat/AeonPts Icons/Values] // 2152 - "Agility" Value [Stat/AeonPts Icons/Values] // 2153 - "Deftness" Icon [Stat/AeonPts Icons/Values] // 2154 - "Deftness" Value [Stat/AeonPts Icons/Values] // 2155 - "Balance" Icon [Stat/AeonPts Icons/Values] // 2156 - "Balance" Value [Stat/AeonPts Icons/Values] // 2157 - "Jumping" Icon [Stat/AeonPts Icons/Values] // 2158 - "Jumping" Value [Stat/AeonPts Icons/Values] if (GetCVar("dvdshud_showstatinfo") == 1) { // MiscellaneousVars[2033] = Aeon Pts // Aeon Points if (MiscellaneousVars[25] > 0 && PlayerLevel >= MiscellaneousVars[197]) { xpos = ScreenXOffset + 662.0; // 662.0 ypos = ScreenYOffset + 764.0; // 764.0 SetFont("STATAEON"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2141,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 766.0; // 766.0 SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[25];HUDMSG_ALPHA,2142,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[224] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[25],s:" \cj+ ",d:MiscellaneousVars[224];HUDMSG_ALPHA,2142,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2034] = Strength // Strength xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 805.0; SetFont("STATSTR"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2143,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 807.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 5) // Selected Strength w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[35];HUDMSG_ALPHA,2144,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[229] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[35],s:" \cj+ ",d:MiscellaneousVars[229];HUDMSG_ALPHA,2144,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[35];HUDMSG_ALPHA,2144,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[229] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[35],s:" \cj+ ",d:MiscellaneousVars[229];HUDMSG_ALPHA,2144,cr_red,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2035] = Defense // Defense xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 836.0; SetFont("STATDEF"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2145,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 838.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 2) // Selected Defense w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[32];HUDMSG_ALPHA,2146,cr_olive,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[226] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[32],s:" \cj+ ",d:MiscellaneousVars[226];HUDMSG_ALPHA,2146,cr_olive,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[32];HUDMSG_ALPHA,2146,cr_olive,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[226] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[32],s:" \cj+ ",d:MiscellaneousVars[226];HUDMSG_ALPHA,2146,cr_olive,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2036] = Sorcery // Sorcery xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 867.0; SetFont("STATSORC"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2147,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 869.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 4) // Selected Sorcery w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[34];HUDMSG_ALPHA,2148,CR_DARKGRAY,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[228] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[34],s:" \cj+ ",d:MiscellaneousVars[228];HUDMSG_ALPHA,2148,CR_DARKGRAY,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[Purple]",d:MiscellaneousVars[34];HUDMSG_ALPHA,2148,CR_DARKGRAY,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[228] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[Purple]",d:MiscellaneousVars[34],s:" \cj+ ",d:MiscellaneousVars[228];HUDMSG_ALPHA,2148,CR_DARKGRAY,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2037] = Therapeusis // Therapeusis xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 898.0; SetFont("STATTHER"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2149,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 900.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 6) // Selected Therapeusis w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[36];HUDMSG_ALPHA,2150,cr_gray,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[230] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[36],s:" \cj+ ",d:MiscellaneousVars[230];HUDMSG_ALPHA,2150,cr_gray,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[36];HUDMSG_ALPHA,2150,cr_gray,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[230] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[36],s:" \cj+ ",d:MiscellaneousVars[230];HUDMSG_ALPHA,2150,cr_gray,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2038] = Agility // Agility xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 929.0; SetFont("STATAGL"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2151,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 931.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 1) // Selected Agility w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[31];HUDMSG_ALPHA,2152,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[225] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[31],s:" \cj+ ",d:MiscellaneousVars[225];HUDMSG_ALPHA,2152,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[31];HUDMSG_ALPHA,2152,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[225] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[31],s:" \cj+ ",d:MiscellaneousVars[225];HUDMSG_ALPHA,2152,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // MiscellaneousVars[2039] = Deftness // Deftness xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 960.0; SetFont("STATDFTN"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2153,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 962.0; // 766.0 SetFont("DQHUDFONTSML"); if (MiscellaneousVars[24] == 3) // Selected Deftness w/ Aeon Pts { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[33];HUDMSG_ALPHA,2154,cr_green,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[227] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"\c[blue]",d:MiscellaneousVars[33],s:" \cj+ ",d:MiscellaneousVars[227];HUDMSG_ALPHA,2154,cr_green,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[33];HUDMSG_ALPHA,2154,cr_green,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[227] > 0) { msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[33],s:" \cj+ ",d:MiscellaneousVars[227];HUDMSG_ALPHA,2154,cr_green,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Balance xpos = ScreenXOffset + 663.0; ypos = ScreenYOffset + 1003.0; SetFont("STATMASS"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2155,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 1005.0; // 766.0 SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[201];HUDMSG_ALPHA,2156,cr_olive,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Jumping xpos = ScreenXOffset + 663.0; if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 1034.0; SetFont("STATJUMP"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2157,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 680.0 + 0.1; // 680.1 if (xpos < 0.0) xpos -= 0.2; ypos = ScreenYOffset + 1036.0; // 766.0 SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:MiscellaneousVars[200];HUDMSG_ALPHA,2158,cr_cyan,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //******************************************* //**Buff/Debuff Icons/Timers [2161 to 2200]** //******************************************* int blinktimethreshold = 4; int DisplayedTime; // Y +7 per icon's timer // Lower Row DisplayedTime = 999; // Testing number for displays // Divine Avatar if (PowerupTimer[7] > 0) { DisplayedTime = PowerupTimer[7] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 213.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2052; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2161,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 213.0; ypos = ScreenYOffset + 839.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2053; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFDVAV"); HudMessage(s:"A";HUDMSG_ALPHA,2162,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Oomph / Blunt PowerUpCheckThing = 0; if (PowerupTimer[13] > 0) PowerUpCheckThing += 1; // Blunt if (PowerupTimer[10] > 0) PowerUpCheckThing += 1; // Oomph if (PowerUpCheckThing > 0) { if (PowerupTimer[13] > 0) DisplayedTime = PowerupTimer[13] / 35; // Blunt if (PowerupTimer[10] > 0) DisplayedTime = PowerupTimer[10] / 35; // Oomph if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 246.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2054; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2163,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 246.0; ypos = ScreenYOffset + 839.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2055; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } if (PowerupTimer[13] > 0) SetFont("STDBBLNT"); // Blunt if (PowerupTimer[10] > 0) SetFont("STBFOMPH"); // Oomph HudMessage(s:"A";HUDMSG_ALPHA,2164,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Buff / Sap PowerUpCheckThing = 0; if (PowerupTimer[14] > 0) PowerUpCheckThing += 1; // Sap if (PowerupTimer[11] > 0) PowerUpCheckThing += 1; // Buff if (PowerUpCheckThing > 0) { if (PowerupTimer[14] > 0) DisplayedTime = PowerupTimer[14] / 35; // Sap if (PowerupTimer[11] > 0) DisplayedTime = PowerupTimer[11] / 35; // Buff if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 279.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2056; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2165,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 279.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2057; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } if (PowerupTimer[14] > 0) SetFont("STDBSAP"); // Sap if (PowerupTimer[11] > 0) SetFont("STBFBUFF"); // Buff HudMessage(s:"A";HUDMSG_ALPHA,2166,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Accelerate / Decelerate PowerUpCheckThing = 0; if (PowerupTimer[15] > 0) PowerUpCheckThing += 1; // Decelerate if (PowerupTimer[12] > 0) PowerUpCheckThing += 1; // Accelerate if (PowerUpCheckThing > 0) { if (PowerupTimer[15] > 0) DisplayedTime = PowerupTimer[15] / 35; // Decelerate if (PowerupTimer[12] > 0) DisplayedTime = PowerupTimer[12] / 35; // Accelerate if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 312.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2058; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2167,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 312.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2059; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } if (PowerupTimer[15] > 0) SetFont("STDBDECL"); // Decelerate if (PowerupTimer[12] > 0) SetFont("STBFACEL"); // Accelerate HudMessage(s:"A";HUDMSG_ALPHA,2168,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Poison if (PowerupTimer[16] > 0) { DisplayedTime = PowerupTimer[16] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 345.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2060; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2169,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 345.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2061; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBPOIS"); HudMessage(s:"A";HUDMSG_ALPHA,2170,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Corrosion if (PowerupTimer[17] > 0) { DisplayedTime = PowerupTimer[17] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 378.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2062; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2171,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 378.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2063; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBCORR"); HudMessage(s:"A";HUDMSG_ALPHA,2172,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Fatigue if (PowerupTimer[18] > 0) { DisplayedTime = PowerupTimer[18] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 411.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2064; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2173,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 411.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2065; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBFATI"); HudMessage(s:"A";HUDMSG_ALPHA,2174,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Blind if (PowerupTimer[19] > 0) { DisplayedTime = PowerupTimer[19] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 444.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2066; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2175,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 444.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2067; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBBLND"); HudMessage(s:"A";HUDMSG_ALPHA,2176,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Sleep if (PowerupTimer[20] > 0) { DisplayedTime = PowerupTimer[20] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 477.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2068; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2177,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 477.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2069; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBSLEP"); HudMessage(s:"A";HUDMSG_ALPHA,2178,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Silence if (PowerupTimer[21] > 0) { DisplayedTime = PowerupTimer[21] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 510.0; ypos = ScreenYOffset + 846.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2070; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2179,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 510.0; ypos = ScreenYOffset + 839.0; // 839.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2071; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STDBMUTE"); HudMessage(s:"A";HUDMSG_ALPHA,2180,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // X/Y +33 per icon // Lower Row // Flight if (PowerupTimer[2] > 0) { DisplayedTime = PowerupTimer[2] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 213.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2072; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2181,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 213.0; // 213.0 ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2073; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFFLYI"); HudMessage(s:"A";HUDMSG_ALPHA,2182,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Partial Invisibility if (PowerupTimer[1] > 0) { DisplayedTime = PowerupTimer[1] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 246.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2074; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2183,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 246.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2075; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFPTIN"); HudMessage(s:"A";HUDMSG_ALPHA,2184,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Stealth / Complete Invisibility if (PowerupTimer[3] > 0) { DisplayedTime = PowerupTimer[3] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 279.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2076; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2185,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 279.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2077; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFSTEL"); HudMessage(s:"A";HUDMSG_ALPHA,2186,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Night Vision if (PowerupTimer[0] > 0) { DisplayedTime = PowerupTimer[0] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 312.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2078; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2187,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 312.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2079; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFNGVI"); HudMessage(s:"A";HUDMSG_ALPHA,2188,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // BioShield / RadSuit / IronFeet if (PowerupTimer[22] > 0) { DisplayedTime = PowerupTimer[22] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 345.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2080; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2189,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 345.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2081; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFIRFT"); HudMessage(s:"A";HUDMSG_ALPHA,2190,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Invulnerability if (PowerupTimer[4] > 0) { DisplayedTime = PowerupTimer[4] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 378.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2082; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2191,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 378.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2083; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFINVU"); HudMessage(s:"A";HUDMSG_ALPHA,2192,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Berserk if (PowerupTimer[23] > 0) { DisplayedTime = PowerupTimer[23] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 411.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2084; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2193,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 411.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2085; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFBERS"); HudMessage(s:"A";HUDMSG_ALPHA,2194,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Spreader Aura [Both level 1 and 2] PowerUpCheckThing = 0; if (PowerupTimer[8] > 0) PowerUpCheckThing += 1; // Spread Aura Lv. 1 if (PowerupTimer[9] > 0) PowerUpCheckThing += 1; // Spread Aura Lv. 2 if (PowerUpCheckThing > 0) { if (PowerupTimer[8] > 0) DisplayedTime = PowerupTimer[8] / 35; // Spread Aura Lv. 1 if (PowerupTimer[9] > 0) DisplayedTime = PowerupTimer[9] / 35; // Spread Aura Lv. 2 if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 444.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2086; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2195,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 444.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2087; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } if (PowerupTimer[8] > 0) SetFont("STBFSPR1"); // Spread Aura Lv. 1 if (PowerupTimer[9] > 0) SetFont("STBFSPR2"); // Spread Aura Lv. 2 HudMessage(s:"A";HUDMSG_ALPHA,2196,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Fear Aura if (PowerupTimer[6] > 0) { DisplayedTime = PowerupTimer[6] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 477.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2088; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2197,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 477.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2089; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFFRAR"); HudMessage(s:"A";HUDMSG_ALPHA,2198,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Time Freezer if (PowerupTimer[5] > 0) { DisplayedTime = PowerupTimer[5] / 35; if (DisplayedTime > 999) DisplayedTime = 999; xpos = ScreenXOffset + 510.0; ypos = ScreenYOffset + 813.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2090; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.875; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.86; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.845; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.83; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.815; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.80; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.785; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.77; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.755; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.74; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.725; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.71; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.695; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.68; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.665; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.65; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.635; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.62; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("DQHUDFONTSTATUS"); HudMessage(d:DisplayedTime;HUDMSG_ALPHA,2199,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); xpos = ScreenXOffset + 510.0; ypos = ScreenYOffset + 806.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); tempvar1 = 2091; if (DisplayedTime <= blinktimethreshold) { MiscellaneousVars[tempvar1] += 1; if (MiscellaneousVars[tempvar1] == 1 || MiscellaneousVars[tempvar1] == 35) msgalpha = 0.75; if (MiscellaneousVars[tempvar1] == 2 || MiscellaneousVars[tempvar1] == 34) msgalpha = 0.72; if (MiscellaneousVars[tempvar1] == 3 || MiscellaneousVars[tempvar1] == 33) msgalpha = 0.69; if (MiscellaneousVars[tempvar1] == 4 || MiscellaneousVars[tempvar1] == 32) msgalpha = 0.66; if (MiscellaneousVars[tempvar1] == 5 || MiscellaneousVars[tempvar1] == 31) msgalpha = 0.63; if (MiscellaneousVars[tempvar1] == 6 || MiscellaneousVars[tempvar1] == 30) msgalpha = 0.60; if (MiscellaneousVars[tempvar1] == 7 || MiscellaneousVars[tempvar1] == 29) msgalpha = 0.57; if (MiscellaneousVars[tempvar1] == 8 || MiscellaneousVars[tempvar1] == 28) msgalpha = 0.54; if (MiscellaneousVars[tempvar1] == 9 || MiscellaneousVars[tempvar1] == 27) msgalpha = 0.51; if (MiscellaneousVars[tempvar1] == 10 || MiscellaneousVars[tempvar1] == 26) msgalpha = 0.48; if (MiscellaneousVars[tempvar1] == 11 || MiscellaneousVars[tempvar1] == 25) msgalpha = 0.45; if (MiscellaneousVars[tempvar1] == 12 || MiscellaneousVars[tempvar1] == 24) msgalpha = 0.42; if (MiscellaneousVars[tempvar1] == 13 || MiscellaneousVars[tempvar1] == 23) msgalpha = 0.39; if (MiscellaneousVars[tempvar1] == 14 || MiscellaneousVars[tempvar1] == 22) msgalpha = 0.36; if (MiscellaneousVars[tempvar1] == 15 || MiscellaneousVars[tempvar1] == 21) msgalpha = 0.33; if (MiscellaneousVars[tempvar1] == 16 || MiscellaneousVars[tempvar1] == 20) msgalpha = 0.30; if (MiscellaneousVars[tempvar1] == 17 || MiscellaneousVars[tempvar1] == 19) msgalpha = 0.27; if (MiscellaneousVars[tempvar1] == 18) msgalpha = 0.24; if (MiscellaneousVars[tempvar1] >= 35) MiscellaneousVars[tempvar1] -= 34; msgalpha = FixedMul(msgalpha,overallhudalpha); } SetFont("STBFTMFR"); HudMessage(s:"A";HUDMSG_ALPHA,2200,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } //************************ //************************ //************************ //************************ //************************ //******* Middle ******* //************************ //************************ //************************ //************************ //************************ //****************** //***Lower Middle*** //****************** //*************************************** //**Buff/Debuff Messages [2201 to 2205]** //*************************************** // 2201 - Buff/Debuff Message #1 // 2202 - Buff/Debuff Message #2 // 2203 - Buff/Debuff Message #3 // 2204 - Buff/Debuff Message #4 // 2205 - Buff/Debuff Message #5 str buffmsg1 = ""; str buffmsg2 = ""; str buffmsg3 = ""; str buffmsg4 = ""; str buffmsg5 = ""; SetHudSize(1080,810,0); // 1080x810 for Buff Messages if (MiscellaneousVars[2040] > 0) { if (MiscellaneousVars[2045] == -9) buffmsg1 = "\c[gold]YOUR DIVINE WRATH IS UNLEASED!!"; if (MiscellaneousVars[2045] == -8) buffmsg1 = "\c[olive]SAFE PASSAGE OVER HAZARDS!!"; if (MiscellaneousVars[2045] == -7) buffmsg1 = "\c[darkgreen]THE DARKNESS VANISHES!!"; if (MiscellaneousVars[2045] == -6) buffmsg1 = "\c[cream]YOU MOVE UNDETECTED!!"; if (MiscellaneousVars[2045] == -5) buffmsg1 = "\c[green]IMPERVIOUS TO DAMAGE!!"; if (MiscellaneousVars[2045] == -4) buffmsg1 = "\c[gold]TIME STOPS AROUND YOU!!"; if (MiscellaneousVars[2045] == -3) buffmsg1 = "\c[gold]YOUR PRESENSE SCARES ENEMIES!!"; if (MiscellaneousVars[2045] == -2) buffmsg1 = "\c[lightblue]YOU CAN FLY!!"; if (MiscellaneousVars[2045] == -1) buffmsg1 = "\c[purple]EVASION INCREASED!!"; if (MiscellaneousVars[2045] == 0) buffmsg1 = "\c[red]ATTACK INCREASED!!"; if (MiscellaneousVars[2045] == 1) buffmsg1 = "\c[olive]DEFENSE INCREASED!!"; if (MiscellaneousVars[2045] == 2) buffmsg1 = "\c[lightblue]SPEED INCREASED!!"; if (MiscellaneousVars[2045] == 3) buffmsg1 = "\c[gold]ATTACK/DEFENSE INCREASED!!"; if (MiscellaneousVars[2045] == 4) buffmsg1 = "\c[red]MELEE DAMAGE TIMES 10!!"; if (MiscellaneousVars[2045] == 5) buffmsg1 = "\c[gold]ALL POWER BOOSTED 4X!!"; if (MiscellaneousVars[2045] == 6) buffmsg1 = "\c[olive]TRIPLE ATTACKS!!"; if (MiscellaneousVars[2045] == 7) buffmsg1 = "\c[olive]SEPTUPLE ATTACKS!!"; if (MiscellaneousVars[2045] == 10) buffmsg1 = "\c[red]ATTACK DECREASED!!"; if (MiscellaneousVars[2045] == 11) buffmsg1 = "\c[olive]DEFENSE DECREASED!!"; if (MiscellaneousVars[2045] == 12) buffmsg1 = "\c[lightblue]SPEED DECREASED!!"; if (MiscellaneousVars[2045] == 13) buffmsg1 = "\c[darkgreen]POISONED!!"; if (MiscellaneousVars[2045] == 14) buffmsg1 = "\c[purple]BLINDED!!"; if (MiscellaneousVars[2045] == 15) buffmsg1 = "\c[cream]ASLEEP!!"; if (MiscellaneousVars[2045] == 16) buffmsg1 = "\c[green]SPELLS SEALED!!"; if (MiscellaneousVars[2045] == 17) buffmsg1 = "\c[brick]YOU'RE EXHAUSTED!!"; if (MiscellaneousVars[2045] == 25) buffmsg1 = "\c[gold]ARCANA FORCE!"; xpos = 540.0; // MiscFixedVars[1]; [1080] ypos = ScreenYOffset + 652.0; // 696 // MiscFixedVars[2]; [810] SetFont("DQHUDFONTSML"); // DQHUDFONTSML // DQHUDFONTSTATUS msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:buffmsg1;HUDMSG_ALPHA,2201,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[2041] > 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:buffmsg2;HUDMSG_ALPHA,2202,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[2042] > 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:buffmsg3;HUDMSG_ALPHA,2203,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[2043] > 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:buffmsg4;HUDMSG_ALPHA,2204,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[2044] > 0) { msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:buffmsg5;HUDMSG_ALPHA,2205,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetHudSize(NewHUDWidth,NewHUDHeight,0); // Since 1920x1080 isn't truly "supported" [ZDOOM(TM(TM(TM))), etc] :V xpos = MiscFixedVars[1]; ypos = MiscFixedVars[2]; xpos = MiscFixedVars[3]; ypos = MiscFixedVars[4]; xpos = MiscFixedVars[5]; ypos = MiscFixedVars[6]; xpos = MiscFixedVars[7]; ypos = MiscFixedVars[8]; xpos = MiscFixedVars[9]; ypos = MiscFixedVars[10]; xpos = MiscFixedVars[11]; ypos = MiscFixedVars[12]; xpos = MiscFixedVars[13]; ypos = MiscFixedVars[14]; xpos = MiscFixedVars[15]; ypos = MiscFixedVars[16]; xpos = MiscFixedVars[17]; ypos = MiscFixedVars[18]; xpos = MiscFixedVars[19]; ypos = MiscFixedVars[20]; // Base Position for all Meters int basexpos = 592.0; int baseypos = 1024.0; // AIR Meter [2251-2256] int currentair = GetAirSupply(0); int maxair = 700; if (currentair < 0) currentair = 0; if (currentair < maxair && MiscellaneousVars[25001] > 0 && MiscellaneousVars[25003] >= 3) { baseypos -= 32.0; // "Air" Text [2251] xpos = basexpos; // 1149.0; ypos = ScreenYOffset + baseypos; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(s:"AIR";HUDMSG_ALPHA,2251,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); int currentair2 = currentair / 35; int maxair2 = maxair / 35; WholeValue = ((currentair * 10000) / maxair) / 100; ModuloValue = ((currentair * 10000) / maxair) % 100; // "Air" Amounts [2252] xpos = basexpos + 140.0; // 1289.0; ypos = ScreenYOffset + baseypos + 6.0; // 1028.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); //HudMessage(d:currentair2,s:"/",d:maxair2;HUDMSG_ALPHA,2252,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (ModuloValue > -1 && ModuloValue < 10) HudMessage(d:WholeValue,s:".0",d:ModuloValue,s:"%";HUDMSG_ALPHA,2252,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:WholeValue,s:".",d:ModuloValue,s:"%";HUDMSG_ALPHA,2252,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // Air Meter Empty "Glow" Border [2253] xpos = basexpos + 137.0; // 1291.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("AIBFOCUS"); if (currentair <= 0) { HudMessage(s:"A";HUDMSG_ALPHA,2253,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Air Meter Border [2254] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("AIBFRAME"); // SetFont("SCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2254,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Air Meter Notches [2255] if (maxair != 0) { // Normal fontname = "AIBFN"; fontnum = currentair * 200 / maxair; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"AIBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"AIBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"AIBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2255,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // "Air" Meter Glass [2256] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; SetFont("AIBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2256,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } xpos = MiscFixedVars[1]; ypos = MiscFixedVars[2]; int mkilled = GetLevelInfo (LEVELINFO_KILLED_MONSTERS), mtotal = GetLevelInfo (LEVELINFO_TOTAL_MONSTERS), ifound = GetLevelInfo (LEVELINFO_FOUND_ITEMS), itotal = GetLevelInfo (LEVELINFO_TOTAL_ITEMS), sfound = GetLevelInfo (LEVELINFO_FOUND_SECRETS), stotal = GetLevelInfo (LEVELINFO_TOTAL_SECRETS); if (GetCVar("dvdshud_showlevelstats") > 0) { // Items Meter [2257-2262] CurrentValue = ifound; MaxValue = itotal; if (MaxValue > 0) { baseypos -= 32.0; // "Item" Text [2257] xpos = basexpos; // 1149.0; ypos = ScreenYOffset + baseypos; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(s:"ITEM";HUDMSG_ALPHA,2257,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // "Item" Amounts [2258] xpos = basexpos + 140.0; // 1289.0; ypos = ScreenYOffset + baseypos + 6.0; // 1028.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2258,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // Item Meter "Glow" Border [2259] xpos = basexpos + 137.0; // 1291.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("AIBFOCUS"); if (CurrentValue >= MaxValue) { HudMessage(s:"A";HUDMSG_ALPHA,2259,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Item Meter Border [2260] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("AIBFRAME"); // SetFont("SCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2260,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Item Meter Notches [2261] if (MaxValue != 0) { // Normal fontname = "AIBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"AIBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"AIBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"AIBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2261,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // "Item" Meter Glass [2262] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; SetFont("AIBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2262,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Secrets Meter [2263-2268] CurrentValue = sfound; MaxValue = stotal; if (MaxValue > 0) { baseypos -= 32.0; // "Secr" Text [2263] xpos = basexpos; // 1149.0; ypos = ScreenYOffset + baseypos; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(s:"SECR";HUDMSG_ALPHA,2263,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // "Secret" Amounts [2264] xpos = basexpos + 140.0; // 1289.0; ypos = ScreenYOffset + baseypos + 6.0; // 1028.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2264,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // Secret Meter "Glow" Border [2265] xpos = basexpos + 137.0; // 1291.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SMBFULDR"); if (CurrentValue >= MaxValue) { HudMessage(s:"A";HUDMSG_ALPHA,2265,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Secret Meter Border [2266] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("SMBFRAME"); // SetFont("SCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2266,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Secret Meter Notches [2267] if (MaxValue != 0) { // Normal fontname = "SMBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"SMBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"SMBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"SMBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2267,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // "Secret" Meter Glass [2268] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; SetFont("SMBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2268,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Secrets Meter [2269-2274] CurrentValue = mkilled; MaxValue = mtotal; if (MaxValue > 0) { baseypos -= 32.0; // "KILL" Text [2269] xpos = basexpos; // 1149.0; ypos = ScreenYOffset + baseypos; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); HudMessage(s:"KILL";HUDMSG_ALPHA,2269,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // "Kill" Amounts [2270] xpos = basexpos + 140.0; // 1289.0; ypos = ScreenYOffset + baseypos + 6.0; // 1028.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentValue,s:"/",d:MaxValue;HUDMSG_ALPHA,2270,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (HudPrimaryMeters == 1) { // Kill Meter "Glow" Border [2271] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("HPBFCRIT"); if (CurrentValue >= MaxValue) { HudMessage(s:"A";HUDMSG_ALPHA,2271,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Kill Meter Border [2272] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("HPBFRAME"); // SetFont("SCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2272,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // Kill Meter Notches [2273] if (MaxValue != 0) { // Normal fontname = "HPBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2273,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // "Kill" Meter Glass [2274] xpos = basexpos + 137.0; // 1289.0; ypos = ScreenYOffset + baseypos; // 1028.0; // 1060.0; SetFont("HPBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2274,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } //************************ //************************ //************************ //************************ //************************ //*******Right Side******* //************************ //************************ //************************ //************************ //************************ ScreenXOffset = GetCVar("dvdshud_widescreenxoffset") * 1.0; //***************** //***Lower Right*** //***************** ScreenYOffset = GetCVar("dvdshud_widescreenyoffset") * 1.0; int showmanabar = 0; int showetherstock = 0; //************************************************************ //**Weapon/Ammo Display and Sceptre-EXP meter [2211 to 2230]** //************************************************************ // 2211 - Spin Attack Indicator Icon [Weapon/Ammo Display and Sceptre-EXP meter] // 2212 - "AMMO" type label / Level Label and Amount [Hellcore] [Weapon/Ammo Display and Sceptre-EXP meter] // 2213 - "AMMO" Amounts / Sceptre EXP [Weapon/Ammo Display and Sceptre-EXP meter] // 2214 - "AMMO" Meter Empty "Glow" Border [Weapon/Ammo Display and Sceptre-EXP meter] // 2215 - "AMMO" Meter / Sceptre EXP Meter Border [Weapon/Ammo Display and Sceptre-EXP meter] // 2216 - "AMMO" Meter Notches / Sceptre Meter Notches [Weapon/Ammo Display and Sceptre-EXP meter] // 2217 - "AMMO" Meter / Sceptre EXP Meter Glass [Weapon/Ammo Display and Sceptre-EXP meter] // // 2221 Weapon OverIcon #1 [Weapon/Ammo Display and Sceptre-EXP meter] // 2222 Weapon UnderIcon #1 [for Sigil outline for part amount display] // 2223 - Tome of Power Spell Cost 1 [Heretic] // 2224 - Tome of Power Spell Cost 2 [Heretic] // 2225 - "HEAT"/"MP" type label / Level Label and Amount [Hellcore] [MinigunHeat/MP Display and meter 2] // 2226 - "HEAT"/"MP" Amounts / Sceptre EXP [MinigunHeat/MP Display and meter 2] // 2227 - "HEAT"/"MP" Meter Empty "Glow" Border [MinigunHeat/MP Display and meter 2] // 2228 - "HEAT"/"MP" Meter / Sceptre EXP Meter Border [MinigunHeat/MP Display and meter 2] // 2229 - "HEAT"/"MP" Meter Notches / Sceptre Meter Notches [MinigunHeat/MP Display and meter 2] // 2230 - "HEAT"/"MP" Meter / Sceptre EXP Meter Glass [MinigunHeat/MP Display and meter 2] // 2231-2241 - Weapon Slot Numbers int ammo = 0; // Ammo Values Default to 0 unless a weapon that uses ammo/has an ammo limit is detected int maxammo = 0; // Ammo Values Default to 0 unless a weapon that uses ammo/has an ammo limit is detected int showsecondmeter = 0; // Determines what weapons show a second meter [Minigun Heat & MP (Heretic weapons)] int sigil_pieces = MiscellaneousVars[25038]; int sigil_mode = MiscellaneousVars[25047]; // Ammo Type/Amount Checks // Flora-Specific Weapons If (StrIcmp(weapon, "DiarisLongbow") == 0) { ammo = MiscellaneousVars[7401]; maxammo = MiscellaneousVars[7501]; } If (StrIcmp(weapon, "PoisonNeedle") == 0) { ammo = MiscellaneousVars[7402]; maxammo = MiscellaneousVars[7502]; } // Marine Specific If (StrIcmp(weapon, "Pistol2") == 0 || StrIcmp(weapon, "DualPistols") == 0 || StrIcmp(weapon, "Chaingun2") == 0 || StrIcmp(weapon, "Minigun") == 0) { ammo = MiscellaneousVars[7403]; maxammo = MiscellaneousVars[7503]; if (StrIcmp(weapon, "Minigun") == 0) showsecondmeter = 1; } If (StrIcmp(weapon, "Rifle") == 0) { ammo = MiscellaneousVars[7441]; maxammo = MiscellaneousVars[7541]; } If (StrIcmp(weapon, "Shotgun2") == 0 || StrIcmp(weapon, "SuperShotgun2") == 0) { ammo = MiscellaneousVars[7404]; maxammo = MiscellaneousVars[7504]; } If (StrIcmp(weapon, "RocketLauncher2") == 0 || StrIcmp(weapon, "KDiZDGrenadeLauncher") == 0) { ammo = MiscellaneousVars[7405]; maxammo = MiscellaneousVars[7505]; } If (StrIcmp(weapon, "PlasmaRifle2") == 0 || StrIcmp(weapon, "Railgun2") == 0 || StrIcmp(weapon, "Repeater2") == 0 || StrIcmp(weapon, "Karasawa2") == 0 || StrIcmp(weapon, "BFG90002") == 0) { ammo = MiscellaneousVars[7406]; maxammo = MiscellaneousVars[7506]; if (StrIcmp(weapon, "Railgun2") == 0) showsecondmeter = 1; } // Circus2-Exclusive Checks If (StrIcmp(weapon, "ClownGrenadeNew") == 0) { ammo = MiscellaneousVars[7444]; maxammo = MiscellaneousVars[7544]; } If (StrIcmp(weapon, "GutFlingerNew") == 0 || StrIcmp(weapon, "GasRocketLauncherNew") == 0) { ammo = MiscellaneousVars[7445]; maxammo = MiscellaneousVars[7545]; } If (StrIcmp(weapon, "GoreBalloonNew") == 0) { ammo = MiscellaneousVars[7443]; maxammo = MiscellaneousVars[7543]; } If (StrIcmp(weapon, "PopcornGunNew") == 0) { ammo = MiscellaneousVars[7442]; maxammo = MiscellaneousVars[7542]; } If (StrIcmp(weapon, "CrazyBall2New") == 0) { ammo = MiscellaneousVars[7446]; maxammo = MiscellaneousVars[7546]; } // Heretic-Exclusive Checks If (StrIcmp(weapon, "GoldWandNew") == 0 || StrIcmp(weapon, "DualGoldWandNew") == 0) { ammo = MiscellaneousVars[7411]; maxammo = MiscellaneousVars[7511]; showsecondmeter = 1; } If (StrIcmp(weapon, "CrossbowNew") == 0 || StrIcmp(weapon, "DualCrossbowNew") == 0) { ammo = MiscellaneousVars[7412]; maxammo = MiscellaneousVars[7512]; showsecondmeter = 1; } If (StrIcmp(weapon, "SuperCrossbowNew") == 0 || StrIcmp(weapon, "DualSuperCrossbowNew") == 0) { ammo = MiscellaneousVars[7412]; maxammo = MiscellaneousVars[7512]; showsecondmeter = 1; } If (StrIcmp(weapon, "DragonClawNew") == 0 || StrIcmp(weapon, "DualDragonClawNew") == 0) { ammo = MiscellaneousVars[7413]; maxammo = MiscellaneousVars[7513]; showsecondmeter = 1; } If (StrIcmp(weapon, "PhoenixRodNew") == 0 || StrIcmp(weapon, "DualPhoenixRodNew") == 0) { ammo = MiscellaneousVars[7414]; maxammo = MiscellaneousVars[7514]; showsecondmeter = 1; } If (StrIcmp(weapon, "HellStaffNew") == 0 || StrIcmp(weapon, "DualHellStaffNew") == 0) { ammo = MiscellaneousVars[7415]; maxammo = MiscellaneousVars[7515]; showsecondmeter = 1; } If (StrIcmp(weapon, "FiremaceNew") == 0 || StrIcmp(weapon, "DualFiremaceNew") == 0) { ammo = MiscellaneousVars[7416]; maxammo = MiscellaneousVars[7516]; showsecondmeter = 1; } If (StrIcmp(weapon, "DSparilStaff") == 0 || StrIcmp(weapon, "DualDSparilStaff") == 0) { ammo = MiscellaneousVars[7413]; maxammo = MiscellaneousVars[7513]; showsecondmeter = 1; } // STRIFE-exclusive checks If (StrIcmp(weapon, "StrifeCrossbowNew") == 0 || StrIcmp(weapon, "StrifeCrossbowDualNew") == 0) { ammo = MiscellaneousVars[7421]; maxammo = MiscellaneousVars[7521]; } If (StrIcmp(weapon, "StrifeCrossbow2New") == 0 || StrIcmp(weapon, "StrifeCrossbow2DualNew") == 0) { ammo = MiscellaneousVars[7422]; maxammo = MiscellaneousVars[7522]; } If (StrIcmp(weapon, "AssaultGunNew") == 0 || StrIcmp(weapon, "AssaultGunDualNew") == 0) { ammo = MiscellaneousVars[7423]; maxammo = MiscellaneousVars[7523]; } If (StrIcmp(weapon, "MiniMissileLauncherNew") == 0 || StrIcmp(weapon, "MiniMissileLauncherDualNew") == 0) { ammo = MiscellaneousVars[7424]; maxammo = MiscellaneousVars[7524]; } If (StrIcmp(weapon, "FlameThrowerNew") == 0) { ammo = MiscellaneousVars[7425]; maxammo = MiscellaneousVars[7525]; } If (StrIcmp(weapon, "StrifeGrenadeLauncherNew") == 0) { ammo = MiscellaneousVars[7426]; maxammo = MiscellaneousVars[7526]; } If (StrIcmp(weapon, "StrifeGrenadeLauncher2New") == 0) { ammo = MiscellaneousVars[7427]; maxammo = MiscellaneousVars[7527]; } If (StrIcmp(weapon, "MaulerNew") == 0 || StrIcmp(weapon, "Mauler2New") == 0) { ammo = MiscellaneousVars[7425]; maxammo = MiscellaneousVars[7525]; } If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) { ammo = MiscellaneousVars[25001]; maxammo = MaxHealthTrue; } // Others If (StrIcmp(weapon, "EvilWarriorShield") == 0) { showmanabar = 1; } If (StrIcmp(weapon, "ImpalerXBow") == 0 || StrIcmp(weapon, "DualImpalerXBow") == 0) { showmanabar = 1; } If (StrIcmp(weapon, "ScepterOfSouls") == 0 || StrIcmp(weapon, "DualScepterOfSouls") == 0) { showmanabar = 1; } If (StrIcmp(weapon, "64Unmaker") == 0 || StrIcmp(weapon, "64UnmakerDual" ) == 0) // Marines' version of the Unmaker runs on MP/Cells instead of MP. { if (MiscellaneousVars[25006] == 0) { showmanabar = 1; } else if (MiscellaneousVars[25006] == 1) { if (CharacterClass != 2) { ammo = MiscellaneousVars[7406]; maxammo = MiscellaneousVars[7506]; } } } If (StrIcmp(weapon, "SapphireWandNew" ) == 0 || StrIcmp(weapon, "DualSapphireWandsNew" ) == 0) { showmanabar = 1; } If (StrIcmp(weapon, "SerpentStaffAilish") == 0) //Ailish's version of the Serpent Staff uses Mana. { showmanabar = 1; } If (showmanabar == 1) { ammo = CurrentMana; maxammo = MaxMana; } If (StrIcmp(weapon, "AChristina") == 0) //Show Ether stock for A. Christina { showetherstock = 1; } // Weapon Icons SetFont("WIEMPTY"); // Ailish-Specific Weapons If (StrIcmp(weapon, "FistAilish") == 0) SetFont("WIFISTF"); If (StrIcmp(weapon, "SauronGauntletsAilish") == 0) SetFont("WISGNLTF"); If (StrIcmp(weapon, "SerpentStaffAilish") == 0) SetFont("WISERPST"); // Petra-Specific Weapons If (StrIcmp(weapon, "FistPetra") == 0) SetFont("WIFISTF"); If (StrIcmp(weapon, "SauronGauntletsPetra") == 0) SetFont("WISGNLTF"); If (StrIcmp(weapon, "AChristina") == 0) SetFont("WIACHRIS"); // Petra-Specific Addons from Boss-type enemies If (StrIcmp(weapon, "AChristinaCyberdemon") == 0) SetFont("WIACHCYB"); If (StrIcmp(weapon, "AChristinaMastermind") == 0) SetFont("WIACHSPI"); If (StrIcmp(weapon, "AChristinaHades") == 0) SetFont("WIACHHOV"); If (StrIcmp(weapon, "AChristinaIronLich") == 0) SetFont("WIACHLCH"); If (StrIcmp(weapon, "AChristinaMaulotaur") == 0) SetFont("WIACHMAU"); If (StrIcmp(weapon, "AChristinaWyvern") == 0) SetFont("WIACHWYV"); If (StrIcmp(weapon, "AChristinaHeresiarch") == 0) SetFont("WIACHHER"); // Special Petra-Specific Addons If (StrIcmp(weapon, "AChristinaPartinias") == 0) SetFont("WIACHPAR"); If (StrIcmp(weapon, "AChristinaRagnarok") == 0) SetFont("WIACHRAG"); // Flora-Specific Weapons If (StrIcmp(weapon, "FistFlora") == 0) { SetFont("WIFISTF"); if (MiscellaneousVars[25013] > 0) SetFont("WIFSTFG"); } // Flora-Specific Weapons If (StrIcmp(weapon, "PoisonNeedle") == 0) { SetFont("WIPSNDLE"); if (MiscellaneousVars[25013] > 0) SetFont("WIPSNDLB"); } If (StrIcmp(weapon, "SauronGauntletsFlora") == 0) SetFont("WISGNLTF"); If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) SetFont("WISCEPTR"); If (StrIcmp(weapon, "DiarisLongbow") == 0) SetFont("WIDIARIS"); If (StrIcmp(weapon, "ImpSoul") == 0) SetFont("WIHLCR1"); If (StrIcmp(weapon, "DarkImpSoul") == 0) SetFont("WIHLCR2"); If (StrIcmp(weapon, "CacodemonSoul") == 0) SetFont("WIHLCR3"); If (StrIcmp(weapon, "CacolanternSoul") == 0) SetFont("WIHLCR4"); If (StrIcmp(weapon, "AbaddonSoul") == 0) SetFont("WIHLCR5"); If (StrIcmp(weapon, "KnightSoul") == 0) SetFont("WIHLCR6"); If (StrIcmp(weapon, "BaronSoul") == 0) SetFont("WIHLCR7"); If (StrIcmp(weapon, "BelphegorSoul") == 0) SetFont("WIHLCR8"); If (StrIcmp(weapon, "BruiserSoul") == 0) SetFont("WIHLCR9"); If (StrIcmp(weapon, "ArchonSoul") == 0) SetFont("WIHLCR10"); If (StrIcmp(weapon, "PyroDemonSoul") == 0) SetFont("WIHLCR11"); If (StrIcmp(weapon, "IncarnateSoul") == 0) SetFont("WIHLCR12"); If (StrIcmp(weapon, "ArchvileSoul") == 0) SetFont("WIHLCR13"); If (StrIcmp(weapon, "DiabloistSoul") == 0) SetFont("WIHLCR14"); If (StrIcmp(weapon, "BalrogSoul") == 0) SetFont("WIHLCR15"); If (StrIcmp(weapon, "HElementalSoul") == 0) SetFont("WIHLCR16"); If (StrIcmp(weapon, "HOverlordSoul") == 0) SetFont("WIHLCR17"); // Deggaris-Specific Weapons If (StrIcmp(weapon, "FistDeggaris") == 0) { SetFont("WIFISTD"); if (MiscellaneousVars[25013] > 0) SetFont("WIFISD2"); } If (StrIcmp(weapon, "SauronGauntlets") == 0) SetFont("WISGNLTD"); // Illucia-Specific Weapons If (StrIcmp(weapon, "FistIllucia") == 0) { SetFont("WIFISTI"); if (MiscellaneousVars[25013] > 0) SetFont("WIFISI2"); } If (StrIcmp(weapon, "SauronGauntletsIllucia") == 0) SetFont("WISGNLTI"); // Marine Weapons If (StrIcmp(weapon, "Chainsaw2") == 0) SetFont("WICNSW"); If (StrIcmp(weapon, "DoubleBladedChainsaw") == 0) SetFont("WIDCNSW"); If (StrIcmp(weapon, "Pistol2") == 0) SetFont("WIPISTL"); If (StrIcmp(weapon, "DualPistols") == 0) SetFont("WIDPISTL"); If (StrIcmp(weapon, "Shotgun2") == 0) SetFont("WISHOTG"); If (StrIcmp(weapon, "SuperShotgun2") == 0) SetFont("WISSHOTG"); If (StrIcmp(weapon, "Chaingun2") == 0) SetFont("WICHAING"); If (StrIcmp(weapon, "Minigun") == 0) SetFont("WIMINIG"); If (StrIcmp(weapon, "RocketLauncher2") == 0) { SetFont("WIROCKLA"); if (MiscellaneousVars[25004] == 0) SetFont("WIROCKL1"); if (MiscellaneousVars[25004] == 1) SetFont("WIROCKL2"); if (MiscellaneousVars[25004] == 2) SetFont("WIROCKL3"); if (MiscellaneousVars[25004] == 3) SetFont("WIROCKL4"); } If (StrIcmp(weapon, "PlasmaRifle2") == 0) SetFont("WIPLSRIF"); If (StrIcmp(weapon, "Railgun2") == 0) SetFont("WIRAILGN"); If (StrIcmp(weapon, "Repeater2") == 0) SetFont("WIREPETR"); If (StrIcmp(weapon, "Karasawa2") == 0) SetFont("WIKAWAS"); If (StrIcmp(weapon, "BFG90002") == 0) SetFont("WIBFG9K"); // Circus2 Weapons If (StrIcmp(weapon, "ClownGrenadeNew") == 0) SetFont("WICLWNGR"); If (StrIcmp(weapon, "GutFlingerNew") == 0) SetFont("WIGUTFLN"); If (StrIcmp(weapon, "GasRocketLauncherNew") == 0) SetFont("WIGASRKT"); If (StrIcmp(weapon, "GoreBalloonNew") == 0) SetFont("WIGORBAL"); If (StrIcmp(weapon, "PopcornGunNew") == 0) SetFont("WIPOPCGN"); If (StrIcmp(weapon, "CrazyBall2New") == 0) SetFont("WICRZBAL"); // Heretic Weapons If (StrIcmp(weapon, "GoldWandNew") == 0) SetFont("WIGWAND1"); If (StrIcmp(weapon, "DualGoldWandNew") == 0) SetFont("WIGWAND2"); If (StrIcmp(weapon, "CrossbowNew") == 0) SetFont("WICRBOW1"); If (StrIcmp(weapon, "DualCrossbowNew") == 0) SetFont("WICRBOW2"); If (StrIcmp(weapon, "SuperCrossbowNew") == 0) SetFont("WISCRBW1"); If (StrIcmp(weapon, "DualSuperCrossbowNew") == 0) SetFont("WISCRBW2"); If (StrIcmp(weapon, "DragonClawNew") == 0) SetFont("WIDCLWS1"); If (StrIcmp(weapon, "DualDragonClawNew") == 0) SetFont("WIDCLWD1"); If (StrIcmp(weapon, "HellStaffNew") == 0) SetFont("WIHELST1"); If (StrIcmp(weapon, "DualHellStaffNew") == 0) SetFont("WIHELST2"); If (StrIcmp(weapon, "PhoenixRodNew") == 0) { SetFont("WIPHNRD1"); if (MiscellaneousVars[10053] > 0) { if (MiscellaneousVars[25005] == 0) SetFont("WIPHNRD3"); if (MiscellaneousVars[25005] == 1) SetFont("WIPHNRD5"); } } If (StrIcmp(weapon, "DualPhoenixRodNew") == 0) { SetFont("WIPHNRD2"); if (MiscellaneousVars[10053] > 0) { if (MiscellaneousVars[25005] == 0) SetFont("WIPHNRD4"); if (MiscellaneousVars[25005] == 1) SetFont("WIPHNRD6"); } } If (StrIcmp(weapon, "FiremaceNew") == 0) SetFont("WIFIRMC1"); If (StrIcmp(weapon, "DualFiremaceNew") == 0) SetFont("WIFIRMC2"); If (StrIcmp(weapon, "DSparilStaff") == 0) SetFont("WIDSTAF1"); If (StrIcmp(weapon, "DualDSparilStaff") == 0) SetFont("WIDSTAF2"); // Strife Weapons If (StrIcmp(weapon, "StrifeCrossbowNew") == 0) SetFont("WICROSS1"); If (StrIcmp(weapon, "StrifeCrossbow2New") == 0) SetFont("WICROSS2"); If (StrIcmp(weapon, "StrifeCrossbowDualNew") == 0) SetFont("WICROSD1"); If (StrIcmp(weapon, "StrifeCrossbow2DualNew") == 0) SetFont("WICROSD2"); If (StrIcmp(weapon, "AssaultGunNew") == 0) SetFont("WIASSTS1"); If (StrIcmp(weapon, "AssaultGunDualNew") == 0) SetFont("WIASSTD1"); If (StrIcmp(weapon, "MiniMissileLauncherNew") == 0) SetFont("WIMMSLS1"); If (StrIcmp(weapon, "MiniMissileLauncherDualNew") == 0) SetFont("WIMMSLD1"); If (StrIcmp(weapon, "FlameThrowerNew") == 0) SetFont("WIFLMS1"); If (StrIcmp(weapon, "StrifeGrenadeLauncherNew") == 0) SetFont("WIGRNDS1"); If (StrIcmp(weapon, "StrifeGrenadeLauncher2New") == 0) SetFont("WIGRNDS1"); If (StrIcmp(weapon, "MaulerNew") == 0) SetFont("WIMALRS1"); If (StrIcmp(weapon, "Mauler2New") == 0) SetFont("WIMALRS1"); If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) { if (sigil_mode == 1) SetFont("WISIGIL1"); if (sigil_mode == 2) SetFont("WISIGIL2"); if (sigil_mode == 3) SetFont("WISIGIL3"); if (sigil_mode == 4) SetFont("WISIGIL4"); if (sigil_mode == 5) SetFont("WISIGIL5"); if (debughud2 > 0) PrintBold(s:"Sigil_Mode: ",d:sigil_mode); } // KDIZD Weapons If (StrIcmp(weapon, "Rifle") == 0) SetFont("WIKDRIF"); If (StrIcmp(weapon, "KDiZDGrenadeLauncher") == 0) SetFont("WIKDGRN"); If (StrIcmp(weapon, "EvilWarriorShield") == 0) SetFont("WIEVWASH"); If (StrIcmp(weapon, "SapphireWandNew") == 0) SetFont("WISAPWND"); If (StrIcmp(weapon, "DualSapphireWandsNew") == 0) SetFont("WISAPWN2"); // Strange Aeons If (StrIcmp(weapon, "ImpalerXBow") == 0) SetFont("WIIMPBW"); If (StrIcmp(weapon, "DualImpalerXBow") == 0) SetFont("WIIMPB2"); If (StrIcmp(weapon, "ScepterOfSouls") == 0) SetFont("WISCPSO"); If (StrIcmp(weapon, "DualScepterOfSouls") == 0) SetFont("WISCPS2"); // Doom 64 Weapons If (StrIcmp(weapon, "64Unmaker") == 0) { SetFont("WIUNMAKE"); if (MiscellaneousVars[25007] == 1) SetFont("WIUNMAK1"); if (MiscellaneousVars[25007] == 2) SetFont("WIUNMAK2"); if (MiscellaneousVars[25007] == 3) SetFont("WIUNMAK3"); } If (StrIcmp(weapon, "64UnmakerDual") == 0) { SetFont("WIDUNMAK"); if (MiscellaneousVars[25007] == 1) SetFont("WIDUNMA1"); if (MiscellaneousVars[25007] == 2) SetFont("WIDUNMA2"); if (MiscellaneousVars[25007] == 3) SetFont("WIDUNMA3"); } // Actual Weapon OverIcon Display [2221] xpos = ScreenXOffset + 1288.0; // 1288.0 ypos = ScreenYOffset + 960.0; // 960.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2221,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // 2221 SetFont("WIBLANK"); If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) { if (sigil_pieces == 1) SetFont("WISIGILA"); if (sigil_pieces == 2) SetFont("WISIGILB"); if (sigil_pieces == 3) SetFont("WISIGILC"); if (sigil_pieces == 4) SetFont("WISIGILD"); if (sigil_pieces == 5) SetFont("WISIGILE"); if (debughud2 > 0) PrintBold(s:"Sigil_Pieces: ",d:sigil_pieces); } // Weapon UnderIcon #1 [for Sigil outline for part amount display] [2222] xpos = ScreenXOffset + 1288.0; // 1288.0 ypos = ScreenYOffset + 960.0; // 960.0 msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2222,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // 2222 // Tome of Power Spell Cost [Heretic] (2223 & 2224) int TomeCost = 0; int TomeCost2 = 0; // Other Weapons [MP Costs only for Normal and Alt-Fires] TomeCost = MiscellaneousVars[1502]; TomeCost2 = MiscellaneousVars[1501]; SetFont("DQHUDFONTSML"); if (TomeCost > 0) { xpos = ScreenXOffset + 1336.0; // MiscFixedVars[1]; // 1336.0; ypos = ScreenYOffset + 912.0; // MiscFixedVars[2]; // 912.0; If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) HudMessage(d:TomeCost;HUDMSG_ALPHA,2223,cr_brick,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:TomeCost;HUDMSG_ALPHA,2223,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (TomeCost2 > 0) { xpos = ScreenXOffset + 1240.0; // MiscFixedVars[3]; // 1240.0; ypos = ScreenYOffset + 1008.0; // MiscFixedVars[4]; // 1008.0; If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) HudMessage(d:TomeCost2;HUDMSG_ALPHA,2224,cr_brick,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:TomeCost2;HUDMSG_ALPHA,2224,cr_lightblue,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Ammo [1] / SceptreLevel Label (2212) int HellcoreLevel; Keyname = "+attack"; str Keyname2 = "+moveleft"; str Keyname3 = "+moveright"; xpos = ScreenXOffset + 1149.0; ypos = ScreenYOffset + 1060.0; If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { // Sceptre "LVL" Text [2212] SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"LVL \cg",d:SceptreActualLevel;HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); if (MiscellaneousVars[244] > 0) { // Spin Attack Indicator Icon [2211] xpos = ScreenXOffset + 1150.0; ypos = ScreenYOffset + 992.0; SetFont("SCEPTSPN"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2211,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { // HP/MP/AMMO Text [1] [2212] if (maxammo > 0) { msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); If (showmanabar == 1) { HudMessage(s:"MP";HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) { HudMessage(s:"HP";HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { If (StrIcmp(weapon, "PoisonNeedle") == 0) { xpos -= 12.0; HudMessage(s:"EXTRA";HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { HudMessage(s:"AMMO";HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } else { // [96] is the Current Level of the Imp's Soul // [97] is the Current Level of the Dark Imp's Soul // [98] is the Current Level of the Cacodemon's Soul // [99] is the Current Level of the Cacolantern's Soul // [100] is the Current Level of the Abaddon's Soul // [101] is the Current Level of the Hell Knight's Soul // [102] is the Current Level of the Baron of Hell's Soul // [103] is the Current Level of the Belphegor's Soul // [104] is the Current Level of the Bruiser Demon's Soul // [105] is the Current Level of the Archon of Hell's Soul // [106] is the Current Level of the Pyro Demon's Soul // [107] is the Current Level of the Death Incarnate's Soul // [108] is the Current Level of the Archvile's Soul // [109] is the Current Level of the Diabloist's Soul // [110] is the Current Level of the Flying Balrog's Soul // [111] is the Current Level of the Hades Elemental's Soul [?] // [112] is the Current Level of the Hades Overlord's Soul [?] // Hellcore "LVL" Text [1] [2212] int ShowHellcoreLevel; ShowHellcoreLevel = 0; xpos = ScreenXOffset + 1309.0; ypos = ScreenYOffset + 1060.0; SetFont("DQHUDFONTSML"); If (StrIcmp(weapon, "ImpSoul") == 0) { HellcoreLevel = MiscellaneousVars[96]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "DarkImpSoul") == 0) { HellcoreLevel = MiscellaneousVars[97]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "CacodemonSoul") == 0) { HellcoreLevel = MiscellaneousVars[98]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "CacolanternSoul") == 0) { HellcoreLevel = MiscellaneousVars[99]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "AbaddonSoul") == 0) { HellcoreLevel = MiscellaneousVars[100]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "KnightSoul") == 0) { HellcoreLevel = MiscellaneousVars[101]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "BaronSoul") == 0) { HellcoreLevel = MiscellaneousVars[102]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "BelphegorSoul") == 0) { HellcoreLevel = MiscellaneousVars[103]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "BruiserSoul") == 0) { HellcoreLevel = MiscellaneousVars[104]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "ArchonSoul") == 0) { HellcoreLevel = MiscellaneousVars[105]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "PyroDemonSoul") == 0) { HellcoreLevel = MiscellaneousVars[106]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "IncarnateSoul") == 0) { HellcoreLevel = MiscellaneousVars[107]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "ArchvileSoul") == 0) { HellcoreLevel = MiscellaneousVars[108]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "DiabloistSoul") == 0) { HellcoreLevel = MiscellaneousVars[109]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "BalrogSoul") == 0) { HellcoreLevel = MiscellaneousVars[110]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "HElementalSoul") == 0) { HellcoreLevel = MiscellaneousVars[111]; ShowHellcoreLevel += 1; } If (StrIcmp(weapon, "HOverlordSoul") == 0) { HellcoreLevel = MiscellaneousVars[112]; ShowHellcoreLevel += 1; } msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); if (ShowHellcoreLevel > 0) { HudMessage(s:"LVL \cg",d:HellcoreLevel;HUDMSG_ALPHA,2212,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } // Ammo Amounts / Sceptre EXP [2213] int LevelMinEXPAmt, LevelMaxEXPAmt; int MaxExpForCurrentLevel, CurrentExpForCurrentLevel, TempSceptreLevel; xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1066.0; If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { CurrentExpForCurrentLevel = SceptreLevelEXP; if (SceptreActualLevel < 1) { LevelMinEXPAmt = 0; LevelMaxEXPAmt = MiscellaneousVars[301]; } if (SceptreActualLevel == 1) { LevelMinEXPAmt = MiscellaneousVars[301]; LevelMaxEXPAmt = MiscellaneousVars[302]; } if (SceptreActualLevel == 2) { LevelMinEXPAmt = MiscellaneousVars[302]; LevelMaxEXPAmt = MiscellaneousVars[303]; } if (SceptreActualLevel == 3) { LevelMinEXPAmt = MiscellaneousVars[303]; LevelMaxEXPAmt = MiscellaneousVars[304]; } if (SceptreActualLevel == 4) { LevelMinEXPAmt = MiscellaneousVars[304]; LevelMaxEXPAmt = MiscellaneousVars[305]; } if (SceptreActualLevel == 5) { LevelMinEXPAmt = MiscellaneousVars[305]; LevelMaxEXPAmt = MiscellaneousVars[306]; } if (SceptreActualLevel == 6) { LevelMinEXPAmt = MiscellaneousVars[306]; LevelMaxEXPAmt = MiscellaneousVars[307]; } if (SceptreActualLevel == 7) { LevelMinEXPAmt = MiscellaneousVars[307]; LevelMaxEXPAmt = MiscellaneousVars[308]; } if (SceptreActualLevel == 8) { LevelMinEXPAmt = MiscellaneousVars[308]; LevelMaxEXPAmt = MiscellaneousVars[309]; } if (SceptreActualLevel == 9) { LevelMinEXPAmt = MiscellaneousVars[309]; LevelMaxEXPAmt = MiscellaneousVars[310]; } if (SceptreActualLevel == 10) { LevelMinEXPAmt = MiscellaneousVars[310]; LevelMaxEXPAmt = MiscellaneousVars[311]; } if (SceptreActualLevel == 11) { LevelMinEXPAmt = MiscellaneousVars[311]; LevelMaxEXPAmt = MiscellaneousVars[312]; } if (SceptreActualLevel == 12) { LevelMinEXPAmt = MiscellaneousVars[312]; LevelMaxEXPAmt = MiscellaneousVars[313]; } if (SceptreActualLevel == 13) { LevelMinEXPAmt = MiscellaneousVars[313]; LevelMaxEXPAmt = MiscellaneousVars[314]; } if (SceptreActualLevel == 14) { LevelMinEXPAmt = MiscellaneousVars[314]; LevelMaxEXPAmt = MiscellaneousVars[315]; } if (SceptreActualLevel >= 15) { LevelMinEXPAmt = MiscellaneousVars[315]; LevelMaxEXPAmt = MiscellaneousVars[316]; } MaxExpForCurrentLevel = LevelMaxEXPAmt - LevelMinEXPAmt; CurrentExpForCurrentLevel -= LevelMinEXPAmt; TempSceptreLevel = SceptreLevelEXP; if (TempSceptreLevel > MiscellaneousVars[316]) TempSceptreLevel = MiscellaneousVars[316]; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); if (debughud2 > 0) HudMessage(d:SceptreLevelEXP,s:" [",d:MiscellaneousVars[203],s:"] (",d:MiscellaneousVars[198],s:")";HUDMSG_ALPHA,2213,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:SceptreLevelEXP;HUDMSG_ALPHA,2213,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { If (showmanabar == 1) { SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:CurrentMana,s:"/",d:MaxMana;HUDMSG_ALPHA,2213,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (maxammo > 0) { SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(d:ammo,s:"/",d:maxammo;HUDMSG_ALPHA,2213,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } if (HudPrimaryMeters == 1) { // Ammo Meter Empty "Glow" Border [2214] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; if (maxammo > 0) { int PerkCheckValue; int ShowGlow = 0; if (maxammo > 0) // if the weapon has any ammo maximum { If (StrIcmp(weapon, "BFG90002") == 0) { PerkCheckValue = 40; if (MiscellaneousVars[10029] == 1) PerkCheckValue = 32; if (MiscellaneousVars[10029] >= 2) PerkCheckValue = 24; if (ammo < PerkCheckValue) ShowGlow += 1; } else If (StrIcmp(weapon, "Karasawa2") == 0) { PerkCheckValue = 16; if (MiscellaneousVars[10027] == 1) PerkCheckValue = 12; if (MiscellaneousVars[10027] >= 2) PerkCheckValue = 8; if (ammo < PerkCheckValue) ShowGlow += 1; } else If (StrIcmp(weapon, "Repeater2") == 0 && ammo < 2) { ShowGlow += 1; } else if (ammo < 1) ShowGlow += 1; } if (ShowGlow > 0) { SetFont("AMMBEMPT"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Ammo Meter / Sceptre EXP Meter Border [2215] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { SetFont("SCBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2215,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { If (showmanabar == 1) { SetFont("MPBFRAME"); // SetFont("SCBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2215,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else If (showetherstock == 1) { //This needs to eventually be optimized for later and possibly use less code... SetFont("ACMFULL"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (MiscellaneousVars[25008] == 12) { HudMessage(s:"AAAAAA\nAAAAAA";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 11) { HudMessage(s:"AAAAAA\nAAAAAB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 10) { HudMessage(s:"AAAAAA\nAAAABB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 9) { HudMessage(s:"AAAAAA\nAAABBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 8) { HudMessage(s:"AAAAAA\nAABBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 7) { HudMessage(s:"AAAAAA\nABBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 6) { HudMessage(s:"AAAAAA\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 5) { HudMessage(s:"AAAAAB\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 4) { HudMessage(s:"AAAABB\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 3) { HudMessage(s:"AAABBB\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 2) { HudMessage(s:"AABBBB\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (MiscellaneousVars[25008] == 1) { HudMessage(s:"ABBBBB\nBBBBBB";HUDMSG_ALPHA,2214,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetFont("ACMEMPTY"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"AAAAAA\nAAAAAA";HUDMSG_ALPHA,2215,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (maxammo > 0) { SetFont("AMMBFRAM"); // SetFont("SCBFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2215,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // AMMO Meter Notches [2216] if (maxammo != 0) { If (StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "Sigil") == 0) { CurrentValue = MiscellaneousVars[25001]; MaxValue = MaxHealthTrue; // Normal fontname = "HPBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2216,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else If (showmanabar == 1) { CurrentValue = CurrentMana; MaxValue = MaxMana; // Normal fontname = "MPBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"MPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"MPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"MPBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2216,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } else { CurrentValue = ammo; MaxValue = maxammo; // Normal fontname = "AMMBF"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"AMMBF00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"AMMBF0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"AMMBF", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2216,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } else // Sceptre EXP Notches { If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { CurrentExpForCurrentLevel = SceptreLevelEXP; if (SceptreActualLevel < 1) { LevelMinEXPAmt = 0; LevelMaxEXPAmt = MiscellaneousVars[301]; } if (SceptreActualLevel == 1) { LevelMinEXPAmt = MiscellaneousVars[301]; LevelMaxEXPAmt = MiscellaneousVars[302]; } if (SceptreActualLevel == 2) { LevelMinEXPAmt = MiscellaneousVars[302]; LevelMaxEXPAmt = MiscellaneousVars[303]; } if (SceptreActualLevel == 3) { LevelMinEXPAmt = MiscellaneousVars[303]; LevelMaxEXPAmt = MiscellaneousVars[304]; } if (SceptreActualLevel == 4) { LevelMinEXPAmt = MiscellaneousVars[304]; LevelMaxEXPAmt = MiscellaneousVars[305]; } if (SceptreActualLevel == 5) { LevelMinEXPAmt = MiscellaneousVars[305]; LevelMaxEXPAmt = MiscellaneousVars[306]; } if (SceptreActualLevel == 6) { LevelMinEXPAmt = MiscellaneousVars[306]; LevelMaxEXPAmt = MiscellaneousVars[307]; } if (SceptreActualLevel == 7) { LevelMinEXPAmt = MiscellaneousVars[307]; LevelMaxEXPAmt = MiscellaneousVars[308]; } if (SceptreActualLevel == 8) { LevelMinEXPAmt = MiscellaneousVars[308]; LevelMaxEXPAmt = MiscellaneousVars[309]; } if (SceptreActualLevel == 9) { LevelMinEXPAmt = MiscellaneousVars[309]; LevelMaxEXPAmt = MiscellaneousVars[310]; } if (SceptreActualLevel == 10) { LevelMinEXPAmt = MiscellaneousVars[310]; LevelMaxEXPAmt = MiscellaneousVars[311]; } if (SceptreActualLevel == 11) { LevelMinEXPAmt = MiscellaneousVars[311]; LevelMaxEXPAmt = MiscellaneousVars[312]; } if (SceptreActualLevel == 12) { LevelMinEXPAmt = MiscellaneousVars[312]; LevelMaxEXPAmt = MiscellaneousVars[313]; } if (SceptreActualLevel == 13) { LevelMinEXPAmt = MiscellaneousVars[313]; LevelMaxEXPAmt = MiscellaneousVars[314]; } if (SceptreActualLevel == 14) { LevelMinEXPAmt = MiscellaneousVars[314]; LevelMaxEXPAmt = MiscellaneousVars[315]; } if (SceptreActualLevel >= 15) { LevelMinEXPAmt = MiscellaneousVars[315]; LevelMaxEXPAmt = MiscellaneousVars[316]; } MaxExpForCurrentLevel = LevelMaxEXPAmt - LevelMinEXPAmt; CurrentExpForCurrentLevel -= LevelMinEXPAmt; if (MaxExpForCurrentLevel > 0) { CurrentValue = CurrentExpForCurrentLevel; MaxValue = MaxExpForCurrentLevel; // Normal fontname = "SCBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"SCBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"SCBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"SCBFN", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2216,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } } // Ammo Meter / Sceptre EXP Meter Glass [2217] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1060.0; If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { SetFont("SCBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2217,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { If (showmanabar == 1) { SetFont("MPBGLASS"); // SetFont("SCBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2217,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (maxammo > 0) { SetFont("AMMBGLSS"); // SetFont("SCBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2217,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } //************************************************************* // Minigun HEAT/MP [for Heretic weapons using Tomed Alt-Fires] [2225+] //************************************************************* str ammoname2; int minigunheat = MiscellaneousVars[25009]; int minigunheatmax = 100; int railguncharge = MiscellaneousVars[25010]; int railgunchargemax = 100; if (showsecondmeter == 1) { xpos = ScreenXOffset + MiscFixedVars[0]; // 1289.0; ypos = ScreenYOffset + MiscFixedVars[1]; // 1060.0; // "Heat/MP" Text [2225] xpos = ScreenXOffset + 1149.0; ypos = ScreenYOffset + 1028.0; msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); SetFont("DQHUDFONTSML"); If (StrIcmp(weapon, "Minigun") == 0) { minigunheat = MiscellaneousVars[25009]; ammoname2 = "HEAT"; } else If (StrIcmp(weapon, "Railgun2") == 0) { railguncharge = MiscellaneousVars[25010]; ammoname2 = "CHRG"; } else { ammoname2 = "MP"; } HudMessage(s:ammoname2;HUDMSG_ALPHA,2225,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); // "Heat/MP" Amounts [2226] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1034.0; SetFont("DQHUDFONTSML"); msgalpha = 0.875; msgalpha = FixedMul(msgalpha,overallhudalpha); If (StrIcmp(weapon, "Minigun") == 0) { HudMessage(d:minigunheat,s:"%";HUDMSG_ALPHA,2226,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else If (StrIcmp(weapon, "Railgun2") == 0) { HudMessage(d:railguncharge,s:"%";HUDMSG_ALPHA,2226,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { HudMessage(d:CurrentMana,s:"/",d:MaxMana;HUDMSG_ALPHA,2226,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } if (HudPrimaryMeters == 1) { // Heat Meter Empty "Glow" Border [2227] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1028.0; msgalpha = 1.0; msgalpha = FixedMul(msgalpha,overallhudalpha); If (StrIcmp(weapon, "Minigun") == 0) { int miniheatalpha = 0.01 * MiscellaneousVars[25009]; msgalpha = FixedMul(msgalpha,miniheatalpha); SetFont("HCBOVHET"); HudMessage(s:"A";HUDMSG_ALPHA,2227,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } If (StrIcmp(weapon, "Railgun2") == 0) { int chargealpha = 0.01 * MiscellaneousVars[25010]; msgalpha = FixedMul(msgalpha,chargealpha); SetFont("AIBFOCUS"); HudMessage(s:"A";HUDMSG_ALPHA,2227,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Heat/MP Meter Border [2228] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1028.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); If (StrIcmp(weapon, "Minigun") == 0) { SetFont("HCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2228,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else If (StrIcmp(weapon, "Railgun2") == 0) { SetFont("AIBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2228,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { SetFont("MPBFRAME"); // SetFont("SCBFRAME"); HudMessage(s:"A";HUDMSG_ALPHA,2228,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // AMMO Meter Notches [2229] If (StrIcmp(weapon, "Minigun") == 0) { CurrentValue = minigunheat; MaxValue = minigunheatmax; } else If (StrIcmp(weapon, "Railgun2") == 0) { CurrentValue = railguncharge; MaxValue = railgunchargemax; } else { CurrentValue = CurrentMana; MaxValue = MaxMana; } fontname = "HCBFN"; fontnum = CurrentValue * 200 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 200) fontnum = 200; if (fontnum >= 1 && fontnum <= 200) { xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1028.0; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); If (StrIcmp(weapon, "Minigun") == 0) { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"HCBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"HCBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"HCBFN", d:fontnum); } else If (StrIcmp(weapon, "Railgun2") == 0) { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"AIBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"AIBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"AIBFN", d:fontnum); } else { if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"MPBFN00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"MPBFN0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"MPBFN", d:fontnum); } //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2229,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // "HEAT/MP" Meter Glass [2230] xpos = ScreenXOffset + 1289.0; ypos = ScreenYOffset + 1028.0; If (StrIcmp(weapon, "Minigun") == 0) { SetFont("HCBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2230,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else If (StrIcmp(weapon, "Railgun2") == 0) { SetFont("AIBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2230,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { SetFont("MPBGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2230,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } } //************************************************************* // FlameCount Meter [for Heretic's Phoenix Rod using Tomed Alt-Fires] [6701+] //************************************************************* // 2208 - FlameCount Meter Border // 2209 - FlameCount Meter Notches // 2210 - FlameCount Meter Glass If (StrIcmp(weapon, "PhoenixRodNew") == 0 || StrIcmp(weapon, "DualPhoenixRodNew") == 0) { CurrentValue = MiscellaneousVars[25011]; // FlameCount item If (StrIcmp(weapon, "DualPhoenixRodNew") == 0) CurrentValue = MiscellaneousVars[25012]; MaxValue = 350; // Max FlameCount // FlameCount Meter Border xpos = ScreenXOffset + 1396.0; // MiscFixedVars[1]; ypos = ScreenYOffset + 956.0; // MiscFixedVars[2]; SetFont("PFCFRAME"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2208,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); // FlameCount Meter Notches fontname = "PFCNO"; fontnum = CurrentValue * 100 / MaxValue; if (fontnum < 0) fontnum = 0; if (fontnum > 100) fontnum = 100; if (fontnum >= 1 && fontnum <= 100) { xpos = ScreenXOffset + 1396.0; // MiscFixedVars[1]; ypos = ScreenYOffset + 956.0; // MiscFixedVars[2]; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); if (fontnum >= 1 && fontnum <= 9) fontname = StrParam(s:"PFCNO00", d:fontnum); if (fontnum >= 10 && fontnum <= 99) fontname = StrParam(s:"PFCNO0", d:fontnum); if (fontnum >= 100 && fontnum <= 999) fontname = StrParam(s:"PFCNO", d:fontnum); //PrintBold(d:fontnum,s:" [",s:fontname,s:"]"); SetFont(fontname); HudMessage(s:"A";HUDMSG_ALPHA,2209,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // FlameCount Meter Glass ypos = ScreenYOffset + 956.0; // MiscFixedVars[2]; SetFont("PFCGLASS"); msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(s:"A";HUDMSG_ALPHA,2210,cr_untranslated,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // Key Legend [Weapon] if (ShowKeyLegend) { // 2140 & 2206 & 2207 - Mode Key / Descriptions SetHudSize(2160,1620,0); // Should be 2160x1620 xpos = ScreenXOffset + 1760.0 + 0.1; ypos = ScreenYOffset + 1320.0 + 0.1; // 1316 or 1352 // Kick Key if (ShowKeyLegend & 1) { xpos = ScreenXOffset + 1760.0 + 0.1; ypos = ScreenYOffset + 1320.0 + 0.1; // 1316 or 1352 ypos += 28.0; SetFont("DQHUDFONTSML"); Keyname = "+user1"; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname,s:" = \c[gold]",s:"QUICK-KICK";HUDMSG_ALPHA,2140,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // User4/Hold Key if (ShowKeyLegend & 2) { int holdweaptype = 0; str user4type = ""; If (StrIcmp(weapon, "FistAilish") == 0 || StrIcmp(weapon, "FistPetra") == 0 || StrIcmp(weapon, "FistFlora") == 0 || StrIcmp(weapon, "FistDeggaris") == 0 || StrIcmp(weapon, "FistIllucia") == 0 || StrIcmp(weapon, "PoisonNeedle") == 0) { holdweaptype = 1; // Guard user4type = "GUARD"; } If (StrIcmp(weapon, "DiarisLongbow") == 0 || StrIcmp(weapon, "ImpalerXBow") == 0 || StrIcmp(weapon, "DualImpalerXBow") == 0 || StrIcmp(weapon, "Railgun2") == 0) { holdweaptype = 2; // Zoom user4type = "ZOOM"; } If (StrIcmp(weapon, "RocketLauncher2") == 0 || StrIcmp(weapon, "NNSigil") == 0 || StrIcmp(weapon, "64Unmaker") == 0 || StrIcmp(weapon, "64UnmakerDual") == 0 || StrIcmp(weapon, "BruiserSoul") == 0 || StrIcmp(weapon, "ArchonSoul") == 0 || StrIcmp(weapon, "PyroDemonSoul") == 0 || StrIcmp(weapon, "ArchonSoul") == 0 || StrIcmp(weapon, "DiabloistSoul") == 0 || StrIcmp(weapon, "HElementalSoul") == 0 || StrIcmp(weapon, "HOverlordSoul") == 0) { holdweaptype = 3; // Attack Type/Mode user4type = "MODE"; } if ((MiscellaneousVars[10053] + MiscellaneousVars[10054]) > 0 && (StrIcmp(weapon, "PhoenixRodNew") == 0 || StrIcmp(weapon, "DualPhoenixRodNew") == 0)) { holdweaptype = 3; // Attack Type/Mode user4type = "MODE"; } if (holdweaptype > 0) { xpos = ScreenXOffset + 1760.0 + 0.1; ypos = ScreenYOffset + 1320.0 + 0.1; // 1316 or 1352 ypos += 56.0; SetFont("DQHUDFONTSML"); Keyname = "+user4"; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname,s:" = \c[sapphire]",s:user4type;HUDMSG_ALPHA,2206,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } // Alt-Fire if (ShowKeyLegend & 4) { int altfiretype = 0; str altfirename = ""; If (StrIcmp(weapon, "SceptreOfEmpyrea") == 0) { altfiretype++; if (MiscellaneousVars[25041]) altfirename = "UNPRIME ATTACK"; else altfirename = "SPIN-GUARD"; } If (StrIcmp(weapon, "DiarisLongbow") == 0) { if (MiscellaneousVars[25042]) { altfiretype++; altfirename = "DELEASE ARROW"; } } If (StrIcmp(weapon, "FistAilish") == 0 || StrIcmp(weapon, "FistPetra") == 0 || StrIcmp(weapon, "FistFlora") == 0 || StrIcmp(weapon, "FistDeggaris") == 0 || StrIcmp(weapon, "FistIllucia") == 0) { altfiretype++; altfirename = "UPPERCUT"; } If (StrIcmp(weapon, "SauronGauntletsAilish") == 0 || StrIcmp(weapon, "SauronGauntletsPetra") == 0 || StrIcmp(weapon, "SauronGauntletsFlora") == 0 || StrIcmp(weapon, "SauronGauntlets") == 0 || StrIcmp(weapon, "SauronGauntletsIllucia") == 0) { altfiretype++; altfirename = "STRONG PUNCH"; } If (StrIcmp(weapon, "PoisonNeedle") == 0) { if (MiscellaneousVars[25044]) { altfiretype++; altfirename = "THROW EXTRA"; } } If (StrIcmp(weapon, "SapphireWandNew") == 0 || StrIcmp(weapon, "DualSapphireWandsNew") == 0) { altfiretype++; altfirename = "TRI-BURST FIRE"; } If (StrIcmp(weapon, "RocketLauncher2") == 0 || StrIcmp(weapon, "GutFlingerNew") == 0 || StrIcmp(weapon, "GasRocketLauncherNew") == 0) { altfiretype++; altfirename = "FAST-BURST FIRE"; } If (StrIcmp(weapon, "PlasmaRifle2") == 0 || StrIcmp(weapon, "Karasawa2") == 0) { altfiretype++; altfirename = "SHOTBURST FIRE"; } If (StrIcmp(weapon, "Railgun2") == 0) { altfiretype++; altfirename = "CHARGE +5%"; } If (StrIcmp(weapon, "BFG90002") == 0) { altfiretype++; altfirename = "BFG 2704"; } If (StrIcmp(weapon, "GoldWandNew") == 0 || StrIcmp(weapon, "DualGoldWandNew") == 0 || StrIcmp(weapon, "CrossbowNew") == 0 || StrIcmp(weapon, "DualCrossbowNew") == 0 || StrIcmp(weapon, "SuperCrossbowNew") == 0 || StrIcmp(weapon, "DualSuperCrossbowNew") == 0 || StrIcmp(weapon, "DragonClawNew") == 0 || StrIcmp(weapon, "DualDragonClawNew") == 0 || StrIcmp(weapon, "PhoenixRodNew") == 0 || StrIcmp(weapon, "DualPhoenixRodNew") == 0 || StrIcmp(weapon, "HellStaffNew") == 0 || StrIcmp(weapon, "DualHellStaffNew") == 0 || StrIcmp(weapon, "FiremaceNew") == 0 || StrIcmp(weapon, "DualFiremaceNew") == 0 || StrIcmp(weapon, "DSparilStaff") == 0 || StrIcmp(weapon, "DualDSparilStaff") == 0) { altfiretype++; altfirename = "TOMED ATK"; } If (StrIcmp(weapon, "EvilWarriorShield") == 0) { altfiretype++; if (MiscellaneousVars[25043]) altfirename = "SHIELD UNBLOCK"; else altfirename = "SHIELD BLOCK"; } If (StrIcmp(weapon, "ImpalerXBow") == 0 || StrIcmp(weapon, "DualImpalerXBow") == 0) { altfiretype++; altfirename = "SPREADFIRE SHOT"; } If (StrIcmp(weapon, "ScepterOfSouls") == 0 || StrIcmp(weapon, "DualScepterOfSouls") == 0) { altfiretype++; altfirename = "SUPERSOUL FIRE"; } If (StrIcmp(weapon, "ArchvileSoul") == 0 || StrIcmp(weapon, "DiabloistSoul") == 0) { altfiretype++; altfirename = "RESURRECT OTHER"; } If (StrIcmp(weapon, "HElementalSoul") == 0 || StrIcmp(weapon, "HOverlordSoul") == 0) { altfiretype++; altfirename = "SUMMON SPHERE"; } if (altfiretype > 0) { xpos = ScreenXOffset + 1760.0 + 0.1; ypos = ScreenYOffset + 1320.0 + 0.1; // 1316 or 1352 ypos += 84.0; SetFont("DQHUDFONTSML"); Keyname = "+altattack"; msgalpha = 0.75; msgalpha = FixedMul(msgalpha,overallhudalpha); HudMessage(k:Keyname,s:" = \c[fire]",s:altfirename;HUDMSG_ALPHA,2207,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } } SetHudSize(NewHUDWidth,NewHUDHeight,0); // Since 1920x1080 isn't truly "supported" [ZDOOM(TM(TM(TM))), etc] :V } // Weapon Slot Numbers [2231-2241] if (HudWeaponSlots > 0) { SetFont("DQHUDFONTSML"); int emptyslotalpha = 0.375; int baseslotid = 2231; int slotidprint = 1; xpos = ScreenXOffset + 844.0; ypos = ScreenYOffset + 1040.0; //PrintBold(s:" X: ",f:xpos,s:" ScreenXOffset: ",f:ScreenXOffset,s:" Y: ",f:ypos,s:" ScreenYOffset: ",f:ScreenYOffset); // 1 xpos += 28.0; msgalpha = 0.75; emptyslotalpha = 0.375; if (MiscellaneousVars[411] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[411] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 2 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[412] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[412] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 3 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[413] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[413] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 4 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[414] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[414] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 5 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[415] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[415] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 6 xpos = ScreenXOffset + 844.0; ypos = ScreenYOffset + 1068.0; baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[416] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[416] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 7 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[417] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[417] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 8 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[418] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[418] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 9 baseslotid += 1; slotidprint += 1; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[419] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[419] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // 0 baseslotid += 1; slotidprint += 1; slotidprint -= 10; xpos += 28.0; msgalpha = 0.75; if (MiscellaneousVars[420] >= 2) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_white,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else if (MiscellaneousVars[420] == 1) { if (MiscellaneousVars[11] == slotidprint) HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); else HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,CR_CYAN,xpos,ypos,HUDMsgDelayFixed,msgalpha); } else { msgalpha = emptyslotalpha; HudMessage(d:slotidprint;HUDMSG_ALPHA,baseslotid,cr_black,xpos,ypos,HUDMsgDelayFixed,msgalpha); } // ? baseslotid += 1; xpos += 28.0; ypos -= 14.0; msgalpha = 0.75; if (MiscellaneousVars[11] <= -1) HudMessage(s:"?";HUDMSG_ALPHA,baseslotid,cr_gold,xpos,ypos,HUDMsgDelayFixed,msgalpha); } SetHudSize(0,0,0); } } SetHudSize(0,0,0); Delay(HUDMsgDelayBase); Restart; } // Old DoomSpellV2 Style Completion Bonues script "OldDoomSpellCompletion" ENTER { str SecretBonusText1; int SecretBonusText2; str SecretBonusText3; str ItemBonusText1; int ItemBonusText2; str ItemBonusText3; str KillBonusText1; int KillBonusText2; str KillBonusText3; str CompletionBonusText1; int CompletionBonusText2; str CompletionBonusText3; int ItemsForMultiplier = GetCVar("dvds_itemsfoundformulti"); int SecretsForMultiplier = GetCVar("dvds_secretsfoundformulti"); int KillsForMultiplier = GetCVar("dvds_monsterskilledformulti"); int ItemsFoundMulti = GetCVar("dvds_itemsfoundmulti"); int SecretsFoundMulti = GetCVar("dvds_secretsfoundmulti"); int MonstersKilledMulti = GetCVar("dvds_monsterskilledmulti"); int ItemsFoundBonus = GetCVar("dvds_itemsfoundbonus"); int SecretsFoundBonus = GetCVar("dvds_secretsfoundbonus"); int MonstersKilledBonus = GetCVar("dvds_monsterskilledbonus"); int CompletionistBonusAllowed = GetCVar("dvds_getcompletionbonus"); int CompletionistBonus = GetCVar("dvds_completionistbonus"); int XSize = 1024; int YSize = 768; int XPos = 0; int XPosF = 0.0; int YPos = 0; int YPosF = 0.0; int BaseEXPGain = 10; // Base % of EXP given for Completion Bonus int BaseAeonPoints = 1; int ExtraMultiplier = 1; if (GetLevelInfo(LEVELINFO_TOTAL_SECRETS) <= 0) SecretBonusApplied = 1; if (GetLevelInfo(LEVELINFO_TOTAL_ITEMS) <= 0) ItemBonusApplied = 1; if (GetLevelInfo(LEVELINFO_TOTAL_MONSTERS) <= 0) KillBonusApplied = 1; if (SecretBonusApplied != 0 && ItemBonusApplied != 0 && KillBonusApplied != 0 && CompletionistBonusAllowed != 0) CompletionBonusApplied = 1; if (GetCVar("dvds_oldcompletionbonuses") > 0) { // 100% Secrets Bonus if (SecretBonusApplied == 0) { if (GetLevelInfo(LEVELINFO_TOTAL_SECRETS) == GetLevelInfo(LEVELINFO_FOUND_SECRETS)) { ExtraMultiplier = (GetLevelInfo(LEVELINFO_TOTAL_SECRETS) / SecretsForMultiplier) + 1; SecretBonusApplied = 1; SecretBonusText1 = "100% secrets found bonus:\n"; if (SecretsFoundBonus == 0) { BaseEXPGain *= SecretsFoundMulti; BaseEXPGain *= ExtraMultiplier; BaseEXPGain = BaseEXPGain >> 16; if (PlayerLevel == 0) { Experience += (ExpTable[PlayerLevel] * BaseEXPGain) / 100; } else if (PlayerLevel >= 1) { Experience += ((ExpTable[PlayerLevel] - ExpTable[PlayerLevel - 1]) * BaseEXPGain) / 100; } SecretBonusText2 = BaseEXPGain; SecretBonusText3 = "% of the experience required to reach the next level."; } if (SecretsFoundBonus == 1) { BaseAeonPoints *= SecretsFoundMulti; BaseAeonPoints *= ExtraMultiplier; BaseAeonPoints = BaseAeonPoints >> 16; if (BaseAeonPoints < 1) BaseAeonPoints = 1; MiscellaneousVars[25] += BaseAeonPoints; MiscellaneousVars[224] += BaseAeonPoints; MiscellaneousVars[2033] = 105; SecretBonusText2 = BaseAeonPoints; if (BaseAeonPoints > 1) { SecretBonusText3 = " Aeon Points."; } else { SecretBonusText3 = " Aeon Point."; } } LocalAmbientSound("misc/completion1",127); SetFont("DVDSBIGFONT"); SetHudSize(XSize,YSize,0); XPos = XSize / 2; XPosF = XPos * 1.0 + 0.4; YPos = YSize * 26 / 40; YPosF = YPos * 1.0; HudMessage(s:SecretBonusText1,d:SecretBonusText2,s:SecretBonusText3; HUDMSG_TYPEON,106,CR_BLUE,XPosF,YPosF,2.5,0.025,0.125,0.75); SetHudSize(0,0,0); SetFont("SMALLFONT"); } } // 100% Items Bonus if (ItemBonusApplied == 0) { if (GetLevelInfo(LEVELINFO_TOTAL_ITEMS) == GetLevelInfo(LEVELINFO_FOUND_ITEMS)) { ExtraMultiplier = (GetLevelInfo(LEVELINFO_TOTAL_ITEMS) / ItemsForMultiplier) + 1; ItemBonusApplied = 1; ItemBonusText1 = "100% items found bonus:\n"; if (ItemsFoundBonus == 0) { BaseEXPGain *= ItemsFoundMulti; BaseEXPGain *= ExtraMultiplier; BaseEXPGain = BaseEXPGain >> 16; if (PlayerLevel == 0) { Experience += (ExpTable[PlayerLevel] * BaseEXPGain) / 100; } else if (PlayerLevel >= 1) { Experience += ((ExpTable[PlayerLevel] - ExpTable[PlayerLevel - 1]) * BaseEXPGain) / 100; } ItemBonusText2 = BaseEXPGain; ItemBonusText3 = "% of the experience required to reach the next level."; } if (ItemsFoundBonus == 1) { BaseAeonPoints *= ItemsFoundMulti; BaseAeonPoints *= ExtraMultiplier; BaseAeonPoints = BaseAeonPoints >> 16; if (BaseAeonPoints < 1) BaseAeonPoints = 1; MiscellaneousVars[25] += BaseAeonPoints; MiscellaneousVars[224] += BaseAeonPoints; MiscellaneousVars[2033] = 105; ItemBonusText2 = BaseAeonPoints; if (BaseAeonPoints > 1) { ItemBonusText3 = " Aeon Points."; } else { ItemBonusText3 = " Aeon Point."; } } LocalAmbientSound("misc/completion2",127); SetFont("DVDSBIGFONT"); SetHudSize(XSize,YSize,0); XPos = XSize / 2; XPosF = XPos * 1.0 + 0.4; YPos = YSize * 28 / 40; YPosF = YPos * 1.0; HudMessage(s:ItemBonusText1,d:ItemBonusText2,s:ItemBonusText3; HUDMSG_TYPEON,107,CR_GREEN,XPosF,YPosF,2.5,0.025,0.125,0.75); SetHudSize(0,0,0); SetFont("SMALLFONT"); } } // 100% Kills Bonus if (KillBonusApplied == 0) { if (GetLevelInfo(LEVELINFO_TOTAL_MONSTERS) == GetLevelInfo(LEVELINFO_KILLED_MONSTERS)) { ExtraMultiplier = (GetLevelInfo(LEVELINFO_TOTAL_MONSTERS) / KillsForMultiplier) + 1; KillBonusApplied = 1; KillBonusText1 = "100% monsters killed bonus:\n"; if (MonstersKilledBonus == 0) { BaseEXPGain *= MonstersKilledMulti; BaseEXPGain *= ExtraMultiplier; BaseEXPGain = BaseEXPGain >> 16; if (PlayerLevel == 0) { Experience += (ExpTable[PlayerLevel] * BaseEXPGain) / 100; } else if (PlayerLevel >= 1) { Experience += ((ExpTable[PlayerLevel] - ExpTable[PlayerLevel - 1]) * BaseEXPGain) / 100; } KillBonusText2 = BaseEXPGain; KillBonusText3 = "% of the experience required to reach the next level."; } if (MonstersKilledBonus == 1) { BaseAeonPoints *= MonstersKilledMulti; BaseAeonPoints *= ExtraMultiplier; BaseAeonPoints = BaseAeonPoints >> 16; if (BaseAeonPoints < 1) BaseAeonPoints = 1; MiscellaneousVars[25] += BaseAeonPoints; MiscellaneousVars[224] += BaseAeonPoints; MiscellaneousVars[2033] = 105; KillBonusText2 = BaseAeonPoints; if (BaseAeonPoints > 1) { KillBonusText3 = " Aeon Points."; } else { KillBonusText3 = " Aeon Point."; } } LocalAmbientSound("misc/completion3",127); SetFont("DVDSBIGFONT"); SetHudSize(XSize,YSize,0); XPos = XSize / 2; XPosF = XPos * 1.0 + 0.4; YPos = YSize * 30 / 40; YPosF = YPos * 1.0; HudMessage(s:KillBonusText1,d:KillBonusText2,s:KillBonusText3; HUDMSG_TYPEON,108,CR_RED,XPosF,YPosF,2.5,0.025,0.125,0.75); SetHudSize(0,0,0); SetFont("SMALLFONT"); } } // Full 100% Completion Bonus if (CompletionBonusApplied == 0 && SecretBonusApplied != 0 && ItemBonusApplied != 0 && KillBonusApplied != 0 && CompletionistBonusAllowed != 0) { ExtraMultiplier = ((GetLevelInfo(LEVELINFO_TOTAL_SECRETS) / SecretsForMultiplier) + 1); ExtraMultiplier += ((GetLevelInfo(LEVELINFO_TOTAL_ITEMS) / ItemsForMultiplier) + 1); ExtraMultiplier += ((GetLevelInfo(LEVELINFO_TOTAL_MONSTERS) / KillsForMultiplier) + 1); ExtraMultiplier /= 3; if (ExtraMultiplier < 1) ExtraMultiplier = 1; CompletionBonusApplied = 1; CompletionBonusText1 = "100% Level Completion Bonus:\n"; if (CompletionistBonus == 0) { BaseEXPGain *= ExtraMultiplier; BaseEXPGain *= 2; if (BaseEXPGain < 20) BaseEXPGain = 20; if (PlayerLevel == 0) { Experience += (ExpTable[PlayerLevel] * BaseEXPGain) / 100; } else if (PlayerLevel >= 1) { Experience += ((ExpTable[PlayerLevel] - ExpTable[PlayerLevel - 1]) * BaseEXPGain) / 100; } CompletionBonusText2 = BaseEXPGain; CompletionBonusText3 = "% of the experience required to reach the next level."; } if (CompletionistBonus == 1) { BaseAeonPoints *= ExtraMultiplier; BaseAeonPoints *= 2; if (BaseAeonPoints < 2) BaseAeonPoints = 2; MiscellaneousVars[25] += BaseAeonPoints; MiscellaneousVars[224] += BaseAeonPoints; MiscellaneousVars[2033] = 105; CompletionBonusText2 = BaseAeonPoints; if (BaseAeonPoints > 1) { CompletionBonusText3 = " Aeon Points."; } else { CompletionBonusText3 = " Aeon Point."; } } LocalAmbientSound("misc/completion4",127); SetFont("DVDSBIGFONT"); SetHudSize(XSize,YSize,0); XPos = XSize / 2; XPosF = XPos * 1.0 + 0.4; YPos = YSize * 32 / 40; YPosF = YPos * 1.0; HudMessage(s:CompletionBonusText1,d:CompletionBonusText2,s:CompletionBonusText3; HUDMSG_TYPEON,109,CR_ICE,XPosF,YPosF,2.5,0.025,0.125,0.75); SetHudSize(0,0,0); SetFont("SMALLFONT"); } } str FullBonusText1; int FullBonusText2; str FullBonusText3; if (SecretBonusApplied == 1 && ItemBonusApplied == 1 && KillBonusApplied == 1) { Terminate; } else { Delay(random(17,18)); Restart; } } //**************************** //**************************** //** DoomSpell Spell System ** //**************************** //**************************** // Spell Selection script "SpellSelection" (int Dir) { /* //********************************** //*** New Spell Selection System *** //********************************** // MiscellaneousVars[9] is for the category of spells you're using [for revised Spell Selecting] // MiscellaneousVars[10] is for the subspell within the current category of spells you're using [for revised Spell Selecting] // MiscellaneousVars[70] is storage for the Spell# under the "Offense" spell category [value storage] // MiscellaneousVars[71] is storage for the Spell# under the "Restorative" spell category [value storage] // MiscellaneousVars[72] is storage for the Spell# under the "Status" spell category [value storage] // MiscellaneousVars[73] is storage for the Spell# under the "Conjure" spell category [value storage] if (MiscellaneousVars[25001] > 0) // Fix Oversight { // Toggles the Current Spell Category if (Dir > 1 && Dir < 4) { if (Dir == 2) // Previous Spell Category { MiscellaneousVars[9] -= 1; if (MiscellaneousVars[9] < 0) MiscellaneousVars[9] = 3; } if (Dir == 3) // Next Spell Category { MiscellaneousVars[9] += 1; if (MiscellaneousVars[9] > 3) MiscellaneousVars[9] = 0; } if (MiscellaneousVars[9] == 0) MiscellaneousVars[10] = MiscellaneousVars[70]; // "Offense" [23] if (MiscellaneousVars[9] == 1) MiscellaneousVars[10] = MiscellaneousVars[71]; // "Restorative" [5] if (MiscellaneousVars[9] == 2) MiscellaneousVars[10] = MiscellaneousVars[72]; // "Status" [20] if (MiscellaneousVars[9] == 3) MiscellaneousVars[10] = MiscellaneousVars[73]; // "Conjure" [7] } // Allows Cycling Spells within a specific Category if (Dir > -1 && Dir < 2) { if (Dir == 0) // Previous Spell { MiscellaneousVars[10] -= 1; if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] < 0) MiscellaneousVars[10] = 22; if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] < 0) MiscellaneousVars[10] = 4; if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] < 0) MiscellaneousVars[10] = 19; if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] < 0) MiscellaneousVars[10] = 6; } if (Dir == 1) // Next Spell { MiscellaneousVars[10] += 1; if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] > 22) MiscellaneousVars[10] = 0; if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] > 4) MiscellaneousVars[10] = 0; if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] > 19) MiscellaneousVars[10] = 0; if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] > 6) MiscellaneousVars[10] = 0; } if (MiscellaneousVars[9] == 0) MiscellaneousVars[70] = MiscellaneousVars[10]; // "Offense" [23] if (MiscellaneousVars[9] == 1) MiscellaneousVars[71] = MiscellaneousVars[10]; // "Restorative" [5] if (MiscellaneousVars[9] == 2) MiscellaneousVars[72] = MiscellaneousVars[10]; // "Status" [20] if (MiscellaneousVars[9] == 3) MiscellaneousVars[73] = MiscellaneousVars[10]; // "Conjure" [7] } // Aftermath: Determine which Spell ID to select based on above options. // Offense if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 0) SelectedSpell = 0; // Minor Magic Missile if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 1) SelectedSpell = 3; // Chill Touch if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 2) SelectedSpell = 6; // Minor Poison Cloud if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 3) SelectedSpell = 7; // Minor Fireball if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 4) SelectedSpell = 9; // Minor Ice Blast if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 5) SelectedSpell = 11; // Magic Missile if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 6) SelectedSpell = 12; // Fireball if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 7) SelectedSpell = 13; // Explosive Glyph if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 8) SelectedSpell = 15; // Fireball Nova if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 9) SelectedSpell = 19; // Acid Rain if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 10) SelectedSpell = 20; // Minor Terrorization Aura if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 11) SelectedSpell = 23; // Major Magic Missile if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 12) SelectedSpell = 25; // Icy Nova if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 13) SelectedSpell = 26; // Poison Cloud if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 14) SelectedSpell = 27; // Minor Lightning if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 15) SelectedSpell = 31; // Ice Blast if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 16) SelectedSpell = 33; // Lightning Nova if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 17) SelectedSpell = 38; // Lightning if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 18) SelectedSpell = 41; // Major Fireball if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 19) SelectedSpell = 42; // Major Ice Blast if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 20) SelectedSpell = 43; // Major Poison Cloud if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 21) SelectedSpell = 44; // Major Lightning if (MiscellaneousVars[9] == 0 && MiscellaneousVars[10] == 22) SelectedSpell = 49; // Ultra Magic Missile // Restorative if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] == 0) SelectedSpell = 1; // Minor Healing if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] == 1) SelectedSpell = 14; // Healing if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] == 2) SelectedSpell = 28; // Stone Skin if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] == 3) SelectedSpell = 29; // Major Healing if (MiscellaneousVars[9] == 1 && MiscellaneousVars[10] == 4) SelectedSpell = 40; // Diamond Skin // Status if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 0) SelectedSpell = 2; // Minor Night-Vision if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 1) SelectedSpell = 4; // Minor Invisibility if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 2) SelectedSpell = 5; // Minor Flight if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 3) SelectedSpell = 8; // Enhanced Strength if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 4) SelectedSpell = 16; // Attack Booster if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 5) SelectedSpell = 17; // Minor Raging Spirits if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 6) SelectedSpell = 18; // Invisibility if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 7) SelectedSpell = 21; // Night Vision if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 8) SelectedSpell = 22; // Flight if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 9) SelectedSpell = 30; // Major Night Vision if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 10) SelectedSpell = 32; // Farsight if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 11) SelectedSpell = 34; // Minor Time Freezer if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 12) SelectedSpell = 35; // Defense Booster if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 13) SelectedSpell = 36; // Major Invisiblity if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 14) SelectedSpell = 37; // Major Flight if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 15) SelectedSpell = 45; // Major Invulnerability if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 16) SelectedSpell = 46; // Speed Booster if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 17) SelectedSpell = 50; // Time Freezer if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 18) SelectedSpell = 51; // Terrorization Aura if (MiscellaneousVars[9] == 2 && MiscellaneousVars[10] == 19) SelectedSpell = 53; // Divine Avatar // Conjure if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 0) SelectedSpell = 10; // Summon Weak Monster if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 1) SelectedSpell = 24; // Summon Monster if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 2) SelectedSpell = 39; // Summon Strong Monster if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 3) SelectedSpell = 47; // Raging Spirits if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 4) SelectedSpell = 48; // Summon Arch-Vile if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 5) SelectedSpell = 52; // Create Lotso Ammo if (MiscellaneousVars[9] == 3 && MiscellaneousVars[10] == 6) SelectedSpell = 54; // Summon Cyberdemon // PrintBold(s:"Category#: ",d:MiscellaneousVars[9],s:"\nSpell#: ",d:MiscellaneousVars[10],s:"\nCat1Spell#: ",d:MiscellaneousVars[70],s:"\nCat2Spell#: ",d:MiscellaneousVars[71],s:"\nCat3Spell#: ",d:MiscellaneousVars[72],s:"\nCat4Spell#: ",d:MiscellaneousVars[73]); } */ //********************************** //*** Old Spell Selection System *** //********************************** if (MiscellaneousVars[25001] > 0) // Fix Oversight { if (Dir == 1) // Next Spell { SelectedSpell += 1; //PrintBold(d:SpellsLearned[PlayerLevel]); if (PlayerLevel < 57) { if (SelectedSpell < 0) SelectedSpell = SpellsLearned[PlayerLevel]; } if (SelectedSpell < 0) SelectedSpell = SpellIDLimit; // 15, 20, 23, 29, 30, 33, 34, 36, 37, 41, 42, 44, 45, 46, 48, 49, 50, 54, 55 = Deggaris Cannot use these Spell IDs in final version if (CharacterClass == 0) // Deggaris { if (SelectedSpell == 15) SelectedSpell += 1; // Skip "Fireball Nova" if (SelectedSpell == 23) SelectedSpell += 1; if (SelectedSpell == 29) SelectedSpell += 1; if (SelectedSpell == 30) SelectedSpell += 1; if (SelectedSpell == 33) SelectedSpell += 1; if (SelectedSpell == 34) SelectedSpell += 1; // Skip "Minor Time Freezer" if (SelectedSpell == 36) SelectedSpell += 1; if (SelectedSpell == 37) SelectedSpell += 1; if (SelectedSpell == 41) SelectedSpell += 1; // Skip "Major Fireball" if (SelectedSpell == 42) SelectedSpell += 1; // Skip "Major Ice Blast" if (SelectedSpell == 44) SelectedSpell += 1; // Skip "Major Lightning" if (SelectedSpell == 48) SelectedSpell += 1; // Skip "Summon Arch-Vile" if (SelectedSpell == 49) SelectedSpell += 1; // Skip "Ultimate Magic Missile" if (SelectedSpell == 50) SelectedSpell += 1; // Skip "Time Freezer" if (SelectedSpell == 54) SelectedSpell += 1; // Skip "Summon Cyberdemon" if (SelectedSpell == 55) SelectedSpell += 1; // Skip "Spreader Aura Lv. 1" } // 6, 25, 26, 43, 49, 51, 55 = Illucia Cannot use these Spell IDs in final version if (CharacterClass == 1) // Illucia { if (SelectedSpell == 6) SelectedSpell += 1; // Skip "Minor Poison Cloud" if (SelectedSpell == 20) SelectedSpell += 1; // Skip "Minor Terrorization Aura" if (SelectedSpell == 26) SelectedSpell += 1; // Skip "Poison Cloud" if (SelectedSpell == 43) SelectedSpell += 1; // Skip "Major Poison Cloud" if (SelectedSpell == 49) SelectedSpell += 1; // Skip "Ultimate Magic Missile" if (SelectedSpell == 51) SelectedSpell += 1; // Skip "Terrorization Aura" if (SelectedSpell == 55) SelectedSpell += 1; // Skip "Spreader Aura Lv. 1" } // 28, 52 = Flora Cannot use these Spell IDs in final version if (CharacterClass == 2) // Flora { if (SelectedSpell == 28) SelectedSpell += 1; // Skip "Stone Skin" if (SelectedSpell == 52) SelectedSpell += 1; // Skip "Create Lotso Ammo" } // Ailish cannot use these spell IDs. To be filled out... // if (CharacterClass == 8) // Ailish // Petra cannot use these spell IDs. To be filled out... if (CharacterClass == 9) // Petra { if (SelectedSpell == 6) SelectedSpell += 1; // Skip "Minor Poison Cloud" if (SelectedSpell == 26) SelectedSpell += 1; // Skip "Poison Cloud" if (SelectedSpell == 28) SelectedSpell += 1; // Skip "Stone Skin" if (SelectedSpell == 43) SelectedSpell += 1; // Skip "Major Poison Cloud" if (SelectedSpell == 49) SelectedSpell += 1; // Skip "Ultimate Magic Missile" } if (PlayerLevel < 57) { if (SelectedSpell > SpellsLearned[PlayerLevel]) SelectedSpell = 0; } if (SelectedSpell > SpellIDLimit) SelectedSpell = 0; } if (Dir == 0) // Previous Spell { SelectedSpell -= 1; //PrintBold(d:SpellsLearned[PlayerLevel]); if (PlayerLevel < 57) { if (SelectedSpell < 0) SelectedSpell = SpellsLearned[PlayerLevel]; } if (SelectedSpell < 0) SelectedSpell = SpellIDLimit; // 15, 20, 23, 29, 30, 33, 34, 36, 37, 41, 42, 44, 45, 46, 48, 49, 50, 54, 55 = Deggaris Cannot use these Spell IDs in final version if (CharacterClass == 0) // Deggaris { if (SelectedSpell == 55) SelectedSpell -= 1; // Skip "Spreader Aura" if (SelectedSpell == 54) SelectedSpell -= 1; // Skip "Summon Cyberdemon" if (SelectedSpell == 50) SelectedSpell -= 1; // Skip "Time Freezer" if (SelectedSpell == 49) SelectedSpell -= 1; // Skip "Ultimate Magic Missile" if (SelectedSpell == 48) SelectedSpell -= 1; // Skip "Summon Arch-Vile" if (SelectedSpell == 44) SelectedSpell -= 1; // Skip "Major Lightning" if (SelectedSpell == 42) SelectedSpell -= 1; // Skip "Major Ice Blast" if (SelectedSpell == 41) SelectedSpell -= 1; // Skip "Major Fireball" if (SelectedSpell == 37) SelectedSpell -= 1; if (SelectedSpell == 36) SelectedSpell -= 1; if (SelectedSpell == 34) SelectedSpell -= 1; // Skip "Minor Time Freezer" if (SelectedSpell == 33) SelectedSpell -= 1; if (SelectedSpell == 30) SelectedSpell -= 1; if (SelectedSpell == 29) SelectedSpell -= 1; if (SelectedSpell == 23) SelectedSpell -= 1; if (SelectedSpell == 15) SelectedSpell -= 1; // Skip "Fireball Nova" } // 6, 25, 26, 43, 49, 51, 55 = Illucia Cannot use these Spell IDs in final version if (CharacterClass == 1) // Illucia { if (SelectedSpell == 55) SelectedSpell -= 1; // Skip "Spreader Aura" if (SelectedSpell == 51) SelectedSpell -= 1; // Skip "Terrorization Aura" if (SelectedSpell == 49) SelectedSpell -= 1; // Skip "Ultimate Magic Missile" if (SelectedSpell == 43) SelectedSpell -= 1; // Skip "Major Poison Cloud" if (SelectedSpell == 26) SelectedSpell -= 1; // Skip "Poison Cloud" if (SelectedSpell == 20) SelectedSpell -= 1; // Skip "Minor Terrorization Aura" if (SelectedSpell == 6) SelectedSpell -= 1; // Skip "Minor Poison Cloud" } // 28, 52 = Flora Cannot use these Spell IDs in final version if (CharacterClass == 2) // Flora { if (SelectedSpell == 52) SelectedSpell -= 1; // Skip "Create Lotso Ammo" if (SelectedSpell == 28) SelectedSpell -= 1; // Skip "Stone Skin" } // Ailish cannot use these spell IDs. To be filled out... // if (CharacterClass == 8) // Ailish // Petra cannot use these spell IDs. To be filled out... if (CharacterClass == 9) // Petra { if (SelectedSpell == 52) SelectedSpell -= 1; // Skip "Create Lotso Ammo" if (SelectedSpell == 49) SelectedSpell -= 1; // Skip "Ultimate Magic Missile" if (SelectedSpell == 43) SelectedSpell -= 1; // Skip "Major Poison Cloud" if (SelectedSpell == 28) SelectedSpell -= 1; // Skip "Stone Skin" if (SelectedSpell == 26) SelectedSpell -= 1; // Skip "Poison Cloud" if (SelectedSpell == 6) SelectedSpell -= 1; // Skip "Minor Poison Cloud" } //PrintBold(d:SpellsLearned[PlayerLevel]); if (PlayerLevel < 57) { if (SelectedSpell < 0) SelectedSpell = SpellsLearned[PlayerLevel]; } if (SelectedSpell < 0) SelectedSpell = SpellIDLimit; } } } function void MPRegenPenaltySet(int CostOfSpell) { int TempMPRegenPenalty = ((MiscellaneousVars[275] * CostOfSpell) / MaxMana); if (TempMPRegenPenalty < MiscellaneousVars[276]) TempMPRegenPenalty = MiscellaneousVars[276]; MiscellaneousVars[93] -= TempMPRegenPenalty; } // Spell Readying (For Ten-Slot system) script "SpellQuickAssign" (int Slot, int Type) { if (MenuSystemVars[0] != 0) terminate; // cannot change spells in the menu if (PowerupTimer[20] > 0 || PowerupTimer[21] > 0) // cannot cast spells while put to sleep/silenced/muted :V { MiscellaneousVars[25201]++; // Plays "inv_fail" terminate; } int MaxHealthLimit = MaxHealthTrue * 2; int CostOfSpell, SelectedSpellSlot; int TempMPRegenPenalty; int buttons = GetPlayerInput(0, INPUT_BUTTONS); if (buttons & BT_SPEED) Type = 0; // Assign Current Spell to Slot Reflecting the pressed key else if (buttons & BT_RELOAD) Type = 1; // Clear Slot Reflecting the pressed key else Type = 2; // Fire Spell if no specific buttons are held down if (Type == 0) // assign spell { if (MiscellaneousVars[25001] > 0) // Fix Oversight { for (SelectedSpellSlot = 0; SelectedSpellSlot < 10; SelectedSpellSlot++) { if (ReadiedSpells[SelectedSpellSlot] == 0) // Initialize unused slots { ReadiedSpells[SelectedSpellSlot] = 0; } } ReadiedSpells[Slot] = SelectedSpell + 1; } } if (Type == 1) // clear spell { if (MiscellaneousVars[25001] > 0) // Fix Oversight { ReadiedSpells[Slot] = 0; } } if (Type == 2) // cast spell { if (ReadiedSpells[Slot] != 0) { // Function Ran CostOfSpell = MiscellaneousVars[(2990+Slot)]; MiscellaneousVars[555] = CostOfSpell; // Saves spellcost into a global array [in case the spell fails, so it gives back the MP you lost] :P // Function Ran if (MiscellaneousVars[25001] > 0) // Fix Oversight { if (CurrentMana >= CostOfSpell) { //PrintBold(d:ReadiedSpells[Slot]); if (ReadiedSpells[Slot] == 2) // Minor Healing [Deggaris/Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-3,0); } else { if (MiscellaneousVars[25001] < MaxHealthTrue) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } else if (ReadiedSpells[Slot] == 15) // Healing [Deggaris/Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-2,0); } else { if (MiscellaneousVars[25001] < MaxHealthTrue) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } else if (ReadiedSpells[Slot] == 29) // Stone Skin [Deggaris/Illucia Only] { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 2000) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } else { if (CheckInventory("Armor") < 500) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } else if (ReadiedSpells[Slot] == 30) // Major Healing [Deggaris/Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-1,0); } else { if (MiscellaneousVars[25001] < MaxHealthLimit) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } else if (ReadiedSpells[Slot] == 41) // Diamond Skin [Deggaris/Illucia Only] or Spreader Aura Lv. 1 [Flora Only] { //PrintBold(d:CharacterClass); if (CharacterClass == 2) // Flora has "Spreader Aura Lv. 1" in this slot instead of "Diamond Skin" { if (PowerupTimer[9] > 0) // If Lv. 2 is intact, give it a random (6-8) seconds. :P { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,18,random(6,8),0); } else // If only Lv. 1 is intact, give it the full 30 seconds. :P { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,17,30,0); } } else // Deggaris & Illucia use "Diamond Skin" in this slot. { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 5000) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } else { if (CheckInventory("Armor") < 1250) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } } else if (ReadiedSpells[Slot] == 11 || ReadiedSpells[Slot] == 25 || ReadiedSpells[Slot] == 40 || ReadiedSpells[Slot] == 49 || ReadiedSpells[Slot] == 55) // Summon Spells { ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } else // All Other Spells [Deggaris/Illucia Only] { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[ReadiedSpells[Slot] - 1],SpellCastStrength[ReadiedSpells[Slot] - 1],0); } } } } } } // Spell Casting script "SpellCasting" (int enableRapidCasting) { if (MenuSystemVars[0] != 0) terminate; if (PowerupTimer[20] > 0 || PowerupTimer[21] > 0) // cannot cast spells while put to sleep :V { MiscellaneousVars[25201]++; // Plays "inv_fail" terminate; } int MaxHealthLimit = MaxHealthTrue * 2; int CurrentHealth, CostOfSpell; // Function Ran CostOfSpell = MiscellaneousVars[2989]; MiscellaneousVars[555] = CostOfSpell; // Saves spellcost into a global array [in case the spell fails, so it gives back the MP you lost] :P // Function Ran int buttons = GetPlayerInput(0, INPUT_BUTTONS); if (MiscellaneousVars[25001] > 0) { if (CurrentMana >= CostOfSpell) { if (SelectedSpell == 1) // Minor Healing [Deggaris and Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-3,0); } else { CurrentHealth = MiscellaneousVars[25001]; if (CurrentHealth < MaxHealthTrue) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } else if (SelectedSpell == 14) // Healing [Deggaris and Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-2,0); } else { CurrentHealth = MiscellaneousVars[25001]; if (CurrentHealth < MaxHealthTrue) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } else if (SelectedSpell == 28) { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 2000) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } else { if (CheckInventory("Armor") < 500) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } else if (SelectedSpell == 29) // Major Healing [Deggaris and Illucia Only] { if (buttons & BT_ZOOM) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,0,-1,0); } else { CurrentHealth = MiscellaneousVars[25001]; if (CurrentHealth < MaxHealthLimit) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } else if (SelectedSpell == 40) // Diamond Skin [Deggaris and Illucia Only] { if (CharacterClass == 2) // Flora has "Spreader Aura Lv. 1" in this slot instead of "Diamond Skin" { if (PowerupTimer[9] > 0) // If Lv. 2 is intact, give it a random (6-8) seconds. :P { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,18,random(6,8),0); } else // If only Lv. 1 is intact, give it the full 30 seconds. :P { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,17,30,0); } } else // Deggaris & Illucia use "Diamond Skin" in this slot. { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 5000) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } else { if (CheckInventory("Armor") < 1250) { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } } else if (SelectedSpell == 10 || SelectedSpell == 24 || SelectedSpell == 39 || SelectedSpell == 48 || SelectedSpell == 54) { ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } else // All other spells [Deggaris and Illucia only] { CurrentMana -= CostOfSpell; MPRegenPenaltySet(CostOfSpell); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; ACS_NamedExecuteAlways("MagicEffects",0,SpellCastTypes[SelectedSpell],SpellCastStrength[SelectedSpell],0); } } } int rapidcastdelay = 11; if (CharacterClass == 0 || CharacterClass == 9) rapidcastdelay = 12; if (CharacterClass == 1) rapidcastdelay = 11; if (CharacterClass == 2 || CharacterClass == 8) rapidcastdelay = 10; if (enableRapidCasting && GetCVar("dvds_rapidcast")) { Delay(MiscellaneousVars[48]); restart; } } script "StopSpellCasting" (void) net { ACS_NamedTerminate("SpellCasting", 0); } script "MagicEffects" (int Type, int Strength) { int PX, PY, PZ, PFZ, PA, PBA, PVA, FWX, FWY, I4; int speed, vspeed, angle, fireheight, healheight; int fireheight2, healheight2; int NovaRotations; int spreadangle, spreadpitch, baseangle, basepitch; int spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] int MaxHealthLimit = MaxHealthTrue * 2; int healingcap; int healamount; int stamhealamount; int oldhealthvalue; int finalhealvalue; // TERRAIN FLOOR CHECKS [Check the "floor" definitions in Terrain.txt if you want to add more] int inwater = 0; int waterfootclip = 10.0; if (CheckActorFloorTexture(0, "FLTWAWA1")) inwater++; if (CheckActorFloorTexture(0, "FLTFLWW1")) inwater++; if (CheckActorFloorTexture(0, "X_005")) inwater++; int insludge = 0; int sludgefootclip = 10.0; if (CheckActorFloorTexture(0, "FLTSLUD1")) insludge++; int inlava = 0; int lavafootclip = 10.0; if (CheckActorFloorTexture(0, "FLTLAVA1")) inlava++; if (CheckActorFloorTexture(0, "FLATHUH1")) inlava++; if (CheckActorFloorTexture(0, "X_001")) inlava++; int instrifeliquid = 0; int strifeliquidfootclip = 12.0; if (CheckActorFloorTexture(0, "F_WATR03")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_WATR02")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_WATR01")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_VWATR3")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_VWATR2")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_VWATR1")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_HWATR3")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_HWATR2")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_HWATR1")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_PWATR3")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_PWATR2")) instrifeliquid++; if (CheckActorFloorTexture(0, "F_PWATR1")) instrifeliquid++; PX = GetActorX(0); PY = GetActorY(0); PZ = GetActorZ(0); PFZ = GetActorFloorZ(0); PVA = -sin(GetActorPitch(0)) * 64 >> 16; PBA = FixedMul(GetActorAngle(0),255.0); fireheight = GetActorViewHeight(0) * 39 / 50; fireheight2 = fireheight / 65536; fireheight = FixedMul(fireheight,1.0); healheight = GetActorViewHeight(0) * 3 / 5; healheight2 = healheight / 65536; healheight = FixedMul(healheight,1.0); // PrintBold(s:"FireHeight: ",d:fireheight); PA = FixedMul(GetActorAngle(0),360.0); PVA = PVA * 3; int onfloor = 0; if (PZ <= PFZ) onfloor++; angle = GetActorAngle(0) >> 8; speed = cos(GetActorPitch(0)) * 64 >> 16; vspeed = -sin(GetActorPitch(0)) * 64 >> 16; if (GetCVar("dvdsdebug_showplayercoords") > 0) { PrintBold(s:"PlayerX: ",d:PX, s:"\nPlayerY: ",d:PY, s:"\nPlayerZ: ",d:PZ, s:"\nPlayerFloorZ: ",d:PFZ, s:"\nPlayerFireHeight: ",d:fireHeight, s:" [",d:fireheight2,s:"]", s:"\nPA: ",d:PA, s:"\nPBA: ",d:PBA, s:"\nPVA: ",d:PVA, s:"\nAngle: ",d:angle, s:"\nSpeed: ",d:speed, s:"\nVSpeed: ",d:vspeed, s:"\nOnFloor: ",d:onfloor, s:"\nInWater: ",d:inwater, s:"\nInSludge: ",d:insludge, s:"\nInLava: ",d:inlava, s:"\nInStrifeLiquid: ",d:instrifeliquid); } int buttons = GetPlayerInput(0, INPUT_BUTTONS); if ((PBA >= 0.0) && (PBA <= 64.0)) { FWX = 1.0 - FixedMul(0.015625,PBA); FWY = 0.0 + FixedMul(0.015625,PBA); } if ((PBA > 64.0) && (PBA <= 128.0)) { FWX = 0.0 - FixedMul(0.015625,PBA - 64.0); FWY = 1.0 - FixedMul(0.015625,PBA - 64.0); } if ((PBA > 128.0) && (PBA <= 192.0)) { FWX = -1.0 + FixedMul(0.015625,PBA - 128.0); FWY = 0.0 - FixedMul(0.015625,PBA - 128.0); } if ((PBA > 192.0) && (PBA <= 255.0)) { FWX = 0.0 + FixedMul(0.015625,PBA - 192.0); FWY = -1.0 + FixedMul(0.015625,PBA - 192.0); } FWX = FixedMul(FWX,32.0); FWY = FixedMul(FWY,32.0); int project_X = GetActorX(0); int project_Y = GetActorY(0); int project_Z = GetActorZ(0); int project_Pitch = GetActorPitch(0); int project_PitchSpread; int project_Angle = GetActorAngle(0); int project_AngleSpread; int project_XSpeed = FixedMul(cos(project_Angle), FixedMul(cos(project_Pitch), 16.0)); int project_YSpeed = FixedMul(sin(project_Angle), FixedMul(cos(project_Pitch), 16.0)); int project_ZSpeed = -FixedMul(sin(project_Pitch), 16.0); int project_XSpeedSpread; int project_YSpeedSpread; int project_ZSpeedSpread; int project_FireHeight = GetActorViewHeight(0) * 39 / 50; int project_Offset = 8.0; str spellname; str spellname2; str spellname3; str spellname4; /* if (onfloor > 0) { if (inwater > 0) project_Offset += waterfootclip; if (insludge > 0) project_Offset += sludgefootclip; if (inlava > 0) project_Offset += lavafootclip; if (instrifeliquid > 0) project_Offset += strifeliquidfootclip; } */ int project_RealZ = project_Z + project_FireHeight + project_Offset; if (GetCVar("dvdsdebug_showspellpos") > 0) { PrintBold(s:"Projectile X: ",d:project_X, s:"\nProjectile Y: ",d:project_Y, s:"\nProjectile Z: ",d:project_Z, s:"\nFireHeight: ",d:project_FireHeight, s:"\nOffset: ",d:project_Offset, s:"\nProjectile REAL Z: ",d:project_RealZ, s:"\nPitch: ",d:project_Pitch, s:"\nAngle: ",d:project_Angle, s:"\nXSpeed: ",d:project_XSpeed, s:"\nYSpeed: ",d:project_YSpeed, s:"\nZSpeed: ",d:project_ZSpeed); } int BuffTimeGive; int BuffTimeMulti = GetCVar("dvds_spellbufftimemultiplier"); if (Type == 0) // Straight Ahead Fireball Shooter { Switch(Strength) { Case -3: // Healing Shots { spellname = "Heal1Shot"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 32.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); } } Break; } Case -2: // Healing Shots { spellname = "Heal2Shot"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 32.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); } } Break; } Case -1: // Healing Shots { spellname = "Heal3Shot"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 32.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4443); } } Break; } Case 0: // Minor Magic Missile { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MinorMagicMissileSeek"; } else { spellname = "MinorMagicMissile"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 1: // Chill Touch { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "ChillTouch"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 2: // Minor Fireball { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MinorFireBallSeek"; } else { spellname = "MinorFireBall"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 3: // Minor Ice Blast { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MinorHexenIceShardSeek"; } else { spellname = "MinorHexenIceShard"; } // Low Row [1] baseangle = 0; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Middle Row [3] baseangle = 182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // High Row [1] baseangle = 0; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 4: // Magic Missile { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MagicMissileSeek"; } else { spellname = "MagicMissile"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 5: // Fireball { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "NormalFireBallSeek"; } else { spellname = "NormalFireBall"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 6: // Exploding Glyph { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); SpawnProjectile(0, "ExplodingGlyphBase", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeed, project_YSpeed, project_ZSpeed, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); Break; } Case 7: // Acid Rain { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "AcidRain"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 8: // Freezing Glyph { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); SpawnProjectile(0, "FreezingGlyphBase", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeed, project_YSpeed, project_ZSpeed, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); Break; } Case 9: // Major Magic Missile { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MajorMagicMissileSeek"; } else { spellname = "MajorMagicMissile"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 10: // Minor Lightning { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); baseangle = 0; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 11: // Ice Blast { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "HexenIceShardSeek"; } else { spellname = "HexenIceShard"; } // Lowest Row [1] baseangle = 0; // 0 degree angle basepitch = 364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Lower Row [3] baseangle = 182; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Middle Row [5] baseangle = 364; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -364; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle-364), FixedMul(cos(project_Pitch+0), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle-364), FixedMul(cos(project_Pitch+0), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+0), 16.0); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Higher Row [3] baseangle = 182; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Highest Row [1] baseangle = 0; // 0 degree angle basepitch = -364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 12: // Lightning { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); baseangle = 0; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 728; // 364 // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -728; // -364 // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 13: // Major Fireball { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MajorFireBallSeek"; } else { spellname = "MajorFireBall"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 14: // Major Ice Blast { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "MajorHexenIceShardSeek"; } else { spellname = "MajorHexenIceShard"; } // Lowest Row [1] baseangle = 0; // 0 degree angle basepitch = -546; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Lower Row [3] baseangle = 182; // 0 degree angle basepitch = -364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = -364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = -364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Low Row [5] baseangle = 364; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 182; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -364; // 0 degree angle basepitch = -182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Middle [7] baseangle = 546; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 364; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -364; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -546; // 0 degree angle basepitch = 0; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // High Row [5] baseangle = 364; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 182; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -364; // 0 degree angle basepitch = 182; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Higher Row [3] baseangle = 182; // 0 degree angle basepitch = 364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 0; // 0 degree angle basepitch = 364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -182; // 0 degree angle basepitch = 364; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } // Highest Row [1] baseangle = 0; // 0 degree angle basepitch = 546; // -15 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 15: // Major Lightning { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 728; // 364 // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = 1456; // 728 // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -1456; //-728 // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } baseangle = -728; //-364 // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, "HexenLightningC", 0, 0, 0, 0, 2001); SpawnProjectile(0, "HexenLightningF", 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 16: // Raging Spirits { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); SpawnProjectile(0,"RagingSpirit2Base", (PBA >> 16), 100, PVA, 0, 2002); SpawnProjectile(0,"RagingSpirit2Base", (PBA >> 16), 100, PVA, 0, 2003); SpawnProjectile(0,"RagingSpirit2Base", (PBA >> 16), 100, PVA, 0, 2004); SpawnProjectile(0,"RagingSpirit2Base", (PBA >> 16), 100, PVA, 0, 2005); SpawnProjectile(0,"RagingSpirit2Base", (PBA >> 16), 100, PVA, 0, 2006); SetActorPosition(2002,PX,PY,PZ+fireheight,0); SetActorPosition(2003,PX,PY,PZ+fireheight,0); SetActorPosition(2004,PX,PY,PZ+fireheight,0); SetActorPosition(2005,PX,PY,PZ+fireheight,0); SetActorPosition(2006,PX,PY,PZ+fireheight,0); Break; } Case 17: // Ultra Magic Missile { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (buttons & BT_ZOOM) { spellname = "UltraMagicMissileSeek"; } else { spellname = "UltraMagicMissile"; } baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } Break; } Case 18: // Minor Raging Spirits { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); SpawnProjectile(0,"RagingSpiritBase", (PBA >> 16), 100, PVA, 0, 2002); SpawnProjectile(0,"RagingSpiritBase", (PBA >> 16), 100, PVA, 0, 2003); SetActorPosition(2002,PX,PY,PZ+fireheight,0); SetActorPosition(2003,PX,PY,PZ+fireheight,0); Break; } } Thing_Remove(1002); } if (Type == 1) // Healing { int StamHealMin; int StamHealMax; int StamHealCap; int SpreadHealRollNum; int SpreadHealMaxRolls = 1; if (PowerupTimer[8] > 0) SpreadHealMaxRolls = 3; if (PowerupTimer[9] > 0) SpreadHealMaxRolls = 7; if (Strength < 10) // Not the Major Healing Spell [Deggaris and Illucia Only] { if (Strength < 3) // Minor Healing Spell [Deggaris and Illucia Only] { healingcap = MaxHealthTrue; StamHealCap = MiscellaneousVars[323]; for (SpreadHealRollNum = 0; SpreadHealRollNum < SpreadHealMaxRolls; SpreadHealRollNum++) { healamount += random(MiscellaneousVars[281],MiscellaneousVars[282]); stamhealamount += random(MiscellaneousVars[321],MiscellaneousVars[322]); } FadeRange(63,63,63,0.8,255,255,255,0.0,1.0); if (CharacterClass == 2) ActivatorSound("healing_dq",127); else ActivatorSound("HealSpell1",127); if (CharacterClass == 2 && random(1,16) == 1) MiscellaneousVars[25206]++; SpawnProjectile(0, "Heal1Spark", 0, 0, 0, 0, 2001); } else // Healing Spell [Deggaris and Illucia Only] { healingcap = MaxHealthTrue; StamHealCap = MiscellaneousVars[326]; for (SpreadHealRollNum = 0; SpreadHealRollNum < SpreadHealMaxRolls; SpreadHealRollNum++) { healamount = random(MiscellaneousVars[283],MiscellaneousVars[284]); stamhealamount = random(MiscellaneousVars[324],MiscellaneousVars[325]); } FadeRange(127,127,127,0.8,255,255,255,0.0,1.0); if (CharacterClass == 2) ActivatorSound("healing_dq",127); else ActivatorSound("HealSpell1",127); if (CharacterClass == 2 && random(1,16) == 1) MiscellaneousVars[25207]++; SpawnProjectile(0, "Heal2Spark", 0, 0, 0, 0, 2001); } } else // Major Healing Spell [Deggaris and Illucia Only] { healingcap = MaxHealthLimit; StamHealCap = MiscellaneousVars[329]; for (SpreadHealRollNum = 0; SpreadHealRollNum < SpreadHealMaxRolls; SpreadHealRollNum++) { healamount = random(MiscellaneousVars[285],MiscellaneousVars[286]); stamhealamount = random(MiscellaneousVars[327],MiscellaneousVars[328]); } FadeRange(193,193,193,0.8,255,255,255,0.0,1.0); if (CharacterClass == 2) ActivatorSound("healing_dq",127); else ActivatorSound("HealSpell1",127); if (CharacterClass == 2 && random(1,16) == 1) MiscellaneousVars[25208]++; SpawnProjectile(0, "Heal3Spark", 0, 0, 0, 0, 2001); } SetActorVelocity(2001, 0, 0, 0, 0, 0); SetActorAngle(2001, 0); SetActorPosition(2001,PX,PY,PZ+healheight,0); Thing_ChangeTID(2001,4444); oldhealthvalue = MiscellaneousVars[25001]; finalhealvalue = oldhealthvalue + healamount; // healamount[[]] if (oldhealthvalue < healingcap) { MiscellaneousVars[234] = healamount; // for heal messages and HPRegenBonPenTimer if (finalhealvalue >= healingcap) MiscellaneousVars[260] = (finalhealvalue - oldhealthvalue) - (finalhealvalue - healingcap); else MiscellaneousVars[260] = healamount; ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); if (finalhealvalue < 1) finalhealvalue = 1; // Prevents the gaming from killing you when trying to heal >__>; if (finalhealvalue > healingcap) finalhealvalue = healingcap; SetActorProperty(0,APROP_HEALTH,finalhealvalue); } if (MiscellaneousVars[21] < StamHealCap) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); MiscellaneousVars[21] += stamhealamount; if (MiscellaneousVars[21] < 0) MiscellaneousVars[21] = 0; if (MiscellaneousVars[21] > StamHealCap) MiscellaneousVars[21] = StamHealCap; } } if (Type == 2) // Light { ActivatorSound("CastLightRoom",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[0] += BuffTimeGive; } if (Type == 3) // Invisibility { ActivatorSound("CastInvisiblity",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[1] += BuffTimeGive; } if (Type == 4) // Flight { ActivatorSound("CastFlight",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[2] += BuffTimeGive; } if (Type == 5) // Berserk { ActivatorSound("CastBerserk",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[23] += BuffTimeGive; } int DoubleSummon; if (Type == 6) // Summon Monster { DoubleSummon = 0; if (random(1,100) < 25) DoubleSummon = 1; if (Strength == 0) // Weak Monster { SpawnForced(FriendIDDoom[random(0,17)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1002,PA >> 16); if (ThingCount(0,1002) > 0) { SetUserVariable(1002, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1002,1000); CurrentMana -= MiscellaneousVars[555]; MPRegenPenaltySet(MiscellaneousVars[555]); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; PrintBold(s:"Successful Summon!"); if (DoubleSummon == 1) { SpawnForced(FriendIDDoom[random(0,17)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1003,PA >> 16); if (ThingCount(0,1003) > 0) { SetUserVariable(1003, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1003,1000); terminate; } } } else { MiscellaneousVars[25201]++; // Plays "inv_fail" PrintBold(s:"Summon Failed!"); } } if (Strength == 1) // Moderate Monster { SpawnForced(FriendIDDoom[random(18,29)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1002,PA >> 16); if (ThingCount(0,1002) > 0) { SetUserVariable(1002, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1002,1000); CurrentMana -= MiscellaneousVars[555]; MPRegenPenaltySet(MiscellaneousVars[555]); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; PrintBold(s:"Successful Summon!"); if (DoubleSummon == 1) { SpawnForced(FriendIDDoom[random(18,29)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1003,PA >> 16); if (ThingCount(0,1003) > 0) { SetUserVariable(1003, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1003,1000); terminate; } } } else { MiscellaneousVars[25201]++; // Plays "inv_fail" PrintBold(s:"Summon Failed!"); } } if (Strength == 2) // Strong Monster { SpawnForced(FriendIDDoom[random(30,48)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1002,PA >> 16); if (ThingCount(0,1002) > 0) { SetUserVariable(1002, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1002,1000); CurrentMana -= MiscellaneousVars[555]; MPRegenPenaltySet(MiscellaneousVars[555]); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; PrintBold(s:"Successful Summon!"); if (DoubleSummon == 1) { SpawnForced(FriendIDDoom[random(30,48)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1003,PA >> 16); if (ThingCount(0,1003) > 0) { SetUserVariable(1003, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1003,1000); terminate; } } } else { MiscellaneousVars[25201]++; // Plays "inv_fail" PrintBold(s:"Summon Failed!"); } } if (Strength == 3) // ArchVile/Diabloist { SpawnForced(FriendIDDoom[random(49,50)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1002,PA >> 16); if (ThingCount(0,1002) > 0) { SetUserVariable(1002, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1002,1000); CurrentMana -= MiscellaneousVars[555]; MPRegenPenaltySet(MiscellaneousVars[555]); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; PrintBold(s:"Successful Summon!"); } else { MiscellaneousVars[25201]++; // Plays "inv_fail" PrintBold(s:"Summon Failed!"); } } if (Strength == 4) // Cyberdemon/Annihilator { SpawnForced(FriendIDDoom[random(51,52)],PX + (Random(-8,8) << 16),PY + (Random(-8,8) << 16),PZ + (Random(0,4) << 16),1002,PA >> 16); if (ThingCount(0,1002) > 0) { SetUserVariable(1002, "user_summoned", 1); ActivatorSound("monstersummon",127); if (CharacterClass == 2 && random(1,5) == 1) MiscellaneousVars[25209]++; Thing_ChangeTID(1002,1000); CurrentMana -= MiscellaneousVars[555]; MPRegenPenaltySet(MiscellaneousVars[555]); MiscellaneousVars[243] = CurrentMana; MiscellaneousVars[238] = CurrentMana; PrintBold(s:"Successful Summon!"); } else { MiscellaneousVars[25201]++; // Plays "inv_fail" PrintBold(s:"Summon Failed!"); } } } if (Type == 7) // Novas { if (Strength == 0) // Fireball Nova { for (NovaRotations = 0; NovaRotations < 32; NovaRotations++) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "NormalFireBall"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } } if (Strength == 1) // Ice Nova { for (NovaRotations = 0; NovaRotations < 32; NovaRotations++) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "HexenIceShard"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } } if (Strength == 2) // Lightning Nova { for (NovaRotations = 0; NovaRotations < 32; NovaRotations++) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "HexenLightningF"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } spellname = "HexenLightningC"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle - (2048 + (NovaRotations * 2048))), FixedMul(cos(project_Pitch+basepitch+spreadpitch), 16.0)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle - (2048 + (NovaRotations * 2048))); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } } } if (Type == 8) // Stealth { ActivatorSound("CastStealth",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[3] += BuffTimeGive; } if (Type == 9) // Invulnerability { ActivatorSound("CastInvuln",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[4] += BuffTimeGive; } if (Type == 10) // Poison Clouds { SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1002,PBA); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1004,PBA); SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1006,PBA); if (PowerupTimer[9] > 0) { SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1008,PBA); SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1010,PBA); SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1012,PBA); SpawnForced("MapSpot",PX+FWX,PY+FWY,PZ+32.0,1014,PBA); } } if (ThingCount(0,1002) < 1 && ThingCount(0,1004) < 1 && ThingCount(0,1006) < 1 && ThingCount(0,1008) < 1 && ThingCount(0,1010) < 1 && ThingCount(0,1012) < 1 && ThingCount(0,1014) < 1) // failed... try again { ACS_NamedExecuteAlways("MagicEffects",0,Type,Strength,0); } if (Strength == 0) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "MinorPoisonCloud"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } if (Strength == 1) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "NormalPoisonCloud"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } if (Strength == 2) { ACS_NamedExecuteAlways("StartTensionCountDown",0,0,0,0); spellname = "MajorPoisonCloud"; baseangle = 0; // 0 degree angle basepitch = 0; // 0 degree pitch spreadangle = 0; // 0 degree angle spreadpitch = 0; // 0 degree pitch spelllaunchspdmulti = 16.0; // Basically determines the final speed of the projectile [usually 16.0] project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0 || PowerupTimer[8] > 0) { spreadangle = 2730; // 15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -2730; // -15 degree angle spreadpitch = 0; // 0 degree pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); if (PowerupTimer[9] > 0) { spreadangle = 1365; // 7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = 1365; // 7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = -1365; // -7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); spreadangle = -1365; // -7.5d angle spreadpitch = 1365; // 7.5d pitch project_XSpeedSpread = FixedMul(cos(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_YSpeedSpread = FixedMul(sin(project_Angle+baseangle+spreadangle), FixedMul(cos(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti)); project_ZSpeedSpread = -FixedMul(sin(project_Pitch+basepitch+spreadpitch), spelllaunchspdmulti); SpawnProjectile(0, spellname, 0, 0, 0, 0, 2001); SetActorVelocity(2001, project_XSpeedSpread, project_YSpeedSpread, project_ZSpeedSpread, 0, 0); SetActorAngle(2001, project_Angle); SetActorPosition(2001, project_X, project_Y, project_RealZ, 0); Thing_ChangeTID(2001,4444); } } } } if (Type == 11) // Armor { if (Strength == 0) // Stone Skin [Deggaris/Illucia Only] { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 2000) { if (CharacterClass != 2 && CharacterClass != 8 && CharacterClass != 9) GiveInventory("StoneSkinGA",1); else GiveInventory("MaxHealthBonusREAL",4); } } else { if (CheckInventory("Armor") < 500) { if (CharacterClass != 2 && CharacterClass != 8 && CharacterClass != 9) GiveInventory("StoneSkin",1); else GiveInventory("MaxHealthBonusREAL",1); } } } else if (Strength == 1) // Diamond Skin [Deggaris/Illucia Only] { if (PowerupTimer[7] > 0) { if (CheckInventory("Armor") < 5000) { if (CharacterClass != 2 && CharacterClass != 8 && CharacterClass != 9) GiveInventory("DiamondSkinGA",1); else GiveInventory("MaxHealthBonusREAL",4); } } else { if (CheckInventory("Armor") < 1250) { if (CharacterClass != 2 && CharacterClass != 8 && CharacterClass != 9) GiveInventory("DiamondSkin",1); else GiveInventory("MaxHealthBonusREAL",1); } } } } if (Type == 12) // Computer Map { ActivatorSound("CastFarsight",127); MiscellaneousVars[25036]++; } if (Type == 13) // Freeze Time { BuffTimeGive = Strength * 35; ActivatorSound("CastTimeFreeze",127); BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[5] += BuffTimeGive; } if (Type == 14) // Terrorization Aura { ActivatorSound("CastTerrorAura",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[6] += BuffTimeGive; } if (Type == 15) // Ammo Spawner { SpawnForced("ClipBoxNew",PX+20,PY+20,PZ+10.0,0,0); SpawnForced("ShellBoxNew",PX-20,PY+20,PZ+10.0,0,0); SpawnForced("RocketBoxNew",PX+10,PY+10,PZ+10.0,0,0); SpawnForced("CellPackNew",PX-10,PY+10,PZ+10.0,0,0); if (random(0,800) < 100) { SpawnForced("ClipBoxNew",PX+20,PY-20,PZ+10.0,0,0); SpawnForced("ShellBoxNew",PX-20,PY-20,PZ+10.0,0,0); SpawnForced("RocketBoxNew",PX+10,PY-10,PZ+10.0,0,0); SpawnForced("CellPackNew",PX-10,PY-10,PZ+10.0,0,0); } if (random(0,800) < 25) { SpawnForced("ClipBoxNew",PX+20,PY+20,PZ+10.0,0,0); SpawnForced("ShellBoxNew",PX-20,PY+20,PZ+10.0,0,0); SpawnForced("RocketBoxNew",PX+10,PY+10,PZ+10.0,0,0); SpawnForced("CellPackNew",PX-10,PY+10,PZ+10.0,0,0); SpawnForced("ClipBoxNew",PX+20,PY-20,PZ+10.0,0,0); SpawnForced("ShellBoxNew",PX-20,PY-20,PZ+10.0,0,0); SpawnForced("RocketBoxNew",PX+10,PY-10,PZ+10.0,0,0); SpawnForced("CellPackNew",PX-10,PY-10,PZ+10.0,0,0); } } if (Type == 16) // Divine Avatar { ActivatorSound("CastDivineAvatar",127); if (CharacterClass == 2 && random(1,16) == 4) MiscellaneousVars[25210]++; BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[7] += BuffTimeGive; MiscellaneousVars[14] += 1; } if (Type == 17) // Spreader Aura Lv. 1 { ActivatorSound("CastSpreaderAura1",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[8] += BuffTimeGive; } if (Type == 18) // Spreader Aura Lv. 2 { ActivatorSound("CastSpreaderAura1",127); ActivatorSound("CastSpreaderAura2",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[9] += BuffTimeGive; } if (Type == 19) // Oomph { ActivatorSound("use_paxa",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[10] += BuffTimeGive; } if (Type == 20) // Buff { ActivatorSound("use_paxa",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[11] += BuffTimeGive; } if (Type == 21) // Accelerate { ActivatorSound("use_paxa",127); BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[12] += BuffTimeGive; } if (Type == 22) // Desperado Damsel { BuffTimeGive = Strength * 35; BuffTimeGive = (BuffTimeGive * BuffTimeMulti) / 100; PowerupTimer[26] += BuffTimeGive; } } script "CreateTranslationTables" OPEN { CreateTranslation(16, 64:79=88:103, 48:63=103:88, 144:151=88:103, 32:47=224:231, 168:191=224:231, 224:231=[255, 255, 255]:[128, 255, 128], 208:223=112:127); // Sauravatar CreateTranslation(17, 112:127=48:63); // No Armor CreateTranslation(18, 112:127=112:127); // Green Armor CreateTranslation(19, 112:127=240:246); // Blue Armor CreateTranslation(20, 112:127=96:111); // Stone Skin CreateTranslation(21, 112:127=88:103); // Diamond Skin CreateTranslation(22, 112:127=196:207); // Blue Armor (Armor Bonus) CreateTranslation(30, 80:111=112:127); // For Healing on the Damage Indicator CreateTranslation(31, 80:111=16:31); // For Damage on the Damage Indicator [normal] CreateTranslation(32, 80:111=32:47); // For Damage on the Damage Indicator [CRITICAL] // Doom/Doom2 [heal/damage] CreateTranslation(33, 80:111=112:127); // For Healing on the Damage Indicator [NEW DQH NUMBERS] CreateTranslation(34, 80:111=208:223); // For Damage on the Damage Indicator [normal] [NEW DQH NUMBERS] CreateTranslation(35, 80:111=216:223); // For Damage on the Damage Indicator [CRITICAL] [NEW DQH NUMBERS] // Heretic [heal/damage] CreateTranslation(36, 0:31=209:221); // For Healing on the Damage Indicator [NEW DQH NUMBERS] CreateTranslation(37, 0:31=137:144); // For Damage on the Damage Indicator [normal] [NEW DQH NUMBERS] CreateTranslation(38, 0:31=137:140); // For Damage on the Damage Indicator [CRITICAL] [NEW DQH NUMBERS] // Hexen [heal/damage] CreateTranslation(39, 33:50=112:127); // For Healing on the Damage Indicator [NEW DQH NUMBERS] CreateTranslation(40, 33:50=203:210); // For Damage on the Damage Indicator [normal] [NEW DQH NUMBERS] CreateTranslation(41, 33:50=203:206); // For Damage on the Damage Indicator [CRITICAL] [NEW DQH NUMBERS] // Strife [heal/damage] CreateTranslation(42, 1:31=112:127); // For Healing on the Damage Indicator [NEW DQH NUMBERS] CreateTranslation(43, 1:31=224:231); // For Damage on the Damage Indicator [normal] [NEW DQH NUMBERS] CreateTranslation(44, 1:31=228:231); // For Damage on the Damage Indicator [CRITICAL] [NEW DQH NUMBERS] } //************************* //** IN GAME MENU SYSTEM ** //************************* // [0] = Main Switch. Menus in general are on/off (0/1) // [1] = Menu Highlight/Selection [main] // [2] = Menu Highlight/Selection [secondary] // [3] = Menu Highlight/Selection [tritary] // [4] = Main Menu Type // [5] = Sub Menu Type // [6] = SubSub Menu Type // [10001] = Use Push Delay Timer // [10002] = Up Push Delay Timer // [10003] = Down Push Delay Timer // [10004] = Left Push Delay Timer // [10005] = Right Push Delay Timer // [10006] = Back Push Delay Timer script "MENUKEY" (void) { if (MiscellaneousVars[25001] > 0) { if (MenuSystemVars[0] == 0) { MiscellaneousVars[271] = GetActorVelX(0); MiscellaneousVars[272] = GetActorVelY(0); MiscellaneousVars[273] = GetActorVelZ(0); SetActorVelocity(0, 0, 0, 0, 0, 0); MenuSystemVars[0] = 1; // Turns On } else { MenuSystemVars[0] = 0; // Turns Off MenuSystemVars[1] = 0; // Resets Main Selection MenuSystemVars[2] = 0; // Resets Secondary Selection MenuSystemVars[3] = 0; // Resets Tritary Selection MenuSystemVars[4] = 0; // Resets Menu Type MenuSystemVars[5] = 0; // Resets SubMenu Type MenuSystemVars[6] = 0; // Resets SubSubMenu Type MenuSystemVars[10001] = 0; // Use Timer Off MenuSystemVars[10002] = 0; // Up Timer Off MenuSystemVars[10003] = 0; // Down Timer Off MenuSystemVars[10004] = 0; // Left Timer Off MenuSystemVars[10005] = 0; // Right Timer Off MenuSystemVars[10006] = 0; // Back Timer Off SetActorVelocity(0, MiscellaneousVars[271], MiscellaneousVars[272], MiscellaneousVars[273], 0, 0); MiscellaneousVars[271] = 0; MiscellaneousVars[272] = 0; MiscellaneousVars[273] = 0; } } } function void GetPerkSound (void) { MiscellaneousVars[25205]++; } // Mechanical Stuff script "INGAMEMENUS_MECHANICS" ENTER { int temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9, temp10, temp11, temp12, temp13, temp14, temp15, temp16, temp17, temp18, temp19, temp20; int temp21, temp22, temp23, temp24, temp25, temp26, temp27, temp28, temp29, temp30, temp31, temp32, temp33, temp34, temp35, temp36, temp37, temp38, temp39, temp40; int ticresetinterval = MiscellaneousVars[445]; int ticresetinterval2 = MiscellaneousVars[446]; int ticresetinterval3 = MiscellaneousVars[447]; int buttons = GetPlayerInput(0, INPUT_BUTTONS); int perksmincost = GetCVar("dvdsperks_minimumcost"); if (MenuSystemVars[0] == 1) // Menu is on... { // Use press button if (buttons & BT_USE) { if (MenuSystemVars[10001] <= 0) { MenuSystemVars[10001] = ticresetinterval; if (MenuSystemVars[4] == 0) // Main Menu { if (MenuSystemVars[1] == 1) { MenuSystemVars[4] = 1; MenuSystemVars[1] = 0; MenuSystemVars[2] = 0; MenuSystemVars[3] = 0; } // Go to Stats if (MenuSystemVars[1] == 2) { MenuSystemVars[4] = 2; MenuSystemVars[1] = 0; MenuSystemVars[2] = 0; MenuSystemVars[3] = 0; } // Go to Spells if (MiscellaneousVars[110001] == 1 && MenuSystemVars[1] == 3) { MenuSystemVars[4] = 3; MenuSystemVars[1] = 0; MenuSystemVars[2] = 0; MenuSystemVars[3] = 0; } // Go to Perks if (MenuSystemVars[1] == 4) { MenuSystemVars[4] = 4; MenuSystemVars[1] = 0; MenuSystemVars[2] = 0; MenuSystemVars[3] = 0; } // Go to Codex } else if (MenuSystemVars[4] == 1) // Stats Menu { MenuSystemVars[1] = 1; // Set Main selection MenuSystemVars[2] = 0; // Set Secondary selection to 0 MenuSystemVars[3] = 0; // Set Tritary selection to 0 MenuSystemVars[4] = 0; // Set Menu Page to main MenuSystemVars[5] = 0; // Reset Submenu } else if (MenuSystemVars[4] == 2) // Spells Menu { MenuSystemVars[1] = 2; // Set Main selection MenuSystemVars[2] = 0; // Set Secondary selection to 0 MenuSystemVars[3] = 0; // Set Tritary selection to 0 MenuSystemVars[4] = 0; // Set Menu Page to main MenuSystemVars[5] = 0; // Reset Submenu } else if (MenuSystemVars[4] == 3) // Perks Menu { MenuSystemVars[10001] = ticresetinterval2; // Input Delay Extension [Use key] if (MenuSystemVars[1] == 0) // No Selection - go back a menu { MenuSystemVars[1] = 3; // Set Main selection MenuSystemVars[2] = 0; // Set Secondary selection to 0 MenuSystemVars[3] = 0; // Set Tritary selection to 0 MenuSystemVars[4] = 0; // Set Menu Page to main MenuSystemVars[5] = 0; // Reset Submenu } else if (MenuSystemVars[5] == 0) // General Stat Perks { if (MenuSystemVars[1] == 1) // LifeUp [5] { temp6 = 10001; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // MagiUp [5] { temp6 = 10003; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // StamUp [5] { temp6 = 10005; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 4) // DodgeMore [5] { temp6 = 10007; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 5) // JumpMore [5] { temp6 = 10009; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 6) // PsycheFast [5] { temp6 = 10011; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 5 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 7 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 11 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 15 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 7) // RegenHPFast [5] { temp6 = 10013; // MiscellaneousVars[] input temp1 = 6 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 9 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 12 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 18 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 24 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 8) // RegenMPFast [5] { temp6 = 10015; // MiscellaneousVars[] input temp1 = 6 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 9 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 12 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 18 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 24 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 9) // RegenStamFast [5] { temp6 = 10017; // MiscellaneousVars[] input temp1 = 6 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 9 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 12 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 18 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 24 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 10) // OnTheMove [5] { temp6 = 10045; // MiscellaneousVars[] input temp1 = 6 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 7 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 10 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 13 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 17 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } } else if (MenuSystemVars[5] == 1) // Character-Specific Stat Perks { if (CharacterClass == 0) // Deggaris Only { if (MenuSystemVars[1] == 1) // MagiUp EX [2] { temp6 = 10004; // MiscellaneousVars[] input temp7 = 10003; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // DodgeMore EX [1] { temp6 = 10008; // MiscellaneousVars[] input temp7 = 10007; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // JumpMore EX [2] { temp6 = 10010; // MiscellaneousVars[] input temp7 = 10009; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } } else if (CharacterClass == 1) // Illucia Only { if (MenuSystemVars[1] == 1) // StamUp EX [2] { temp6 = 10006; // MiscellaneousVars[] input [main perk] temp7 = 10005; // MiscellaneousVars[] input [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // DodgeMore EX [2] { temp6 = 10008; // MiscellaneousVars[] input temp7 = 10007; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // JumpMore EX [1] { temp6 = 10010; // MiscellaneousVars[] input temp7 = 10009; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } } else if (CharacterClass == 2) // Flora { if (MenuSystemVars[1] == 1) // LifeUp EX [2] { temp6 = 10002; // MiscellaneousVars[] input temp7 = 10001; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // PsycheFast EX [2] { temp6 = 10012; // MiscellaneousVars[] input temp7 = 10011; // MiscellaneousVars[] input [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // StamUp EX [1] { temp6 = 10006; // MiscellaneousVars[] input [main perk] temp7 = 10005; // MiscellaneousVars[] input [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } } /*if (CharacterClass == 9) // Petra { if (MenuSystemVars[1] == 1) // DodgeMore EX [1] { temp6 = 10008; // MiscellaneousVars[] input temp7 = 10007; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp1 = 11 * MiscellaneousVars[280] / 100; // Level 1 Cost if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } }*/ } else if (MenuSystemVars[5] == 2) // Weapon Perks { if (CharacterClass == 0 | CharacterClass == 1) // Deggaris/Illucia Only { if (MenuSystemVars[1] == 1) // Berserker Fit [5] { temp6 = 10051; // MiscellaneousVars[] input temp1 = 10 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 15 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 20 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 25 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 35 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // Bullet Accuracy [5] { temp6 = 10019; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 6 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 10 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 14 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 19 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // Pellet Accuracy [5] { temp6 = 10021; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 6 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 10 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 14 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 19 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 4) // Plasma Accuracy [5] { temp6 = 10023; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 6 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 10 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 14 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 19 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 5) // Demolitions Expert [5] { temp6 = 10025; // MiscellaneousVars[] input temp1 = 3 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 6 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 10 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 14 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 19 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 6) // Bottomless Magazines [5] { temp6 = 10047; // MiscellaneousVars[] input temp1 = 5 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 9 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 14 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 20 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 28 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (CharacterClass == 0) // Deggaris Only { if (MenuSystemVars[1] == 7) // Bullet Accuracy EX [2] { temp6 = 10020; // MiscellaneousVars[] input temp7 = 10019; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 4 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 7 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 8) // Demolitions Expert EX [1] { temp6 = 10026; // MiscellaneousVars[] input [main perk] temp7 = 10025; // MiscellaneousVars[] input [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp1 = 4 * MiscellaneousVars[280] / 100; // Level 1 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } if (MenuSystemVars[1] == 9) // BFG Attunement [2] { temp6 = 10029; // MiscellaneousVars[] input temp1 = 24 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 43 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } } else if (CharacterClass == 1) // Illucia Only { if (MenuSystemVars[1] == 7) // Pellet Accuracy EX [2] { temp6 = 10022; // MiscellaneousVars[] input temp7 = 10021; // MiscellaneousVars[] [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] temp9 = 4; // MiscellaneousVars[] input [requirement level threshold 2] temp1 = 4 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 7 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[temp7] >= temp9 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } if (MenuSystemVars[1] == 8) // Plasma Accuracy EX [1] { temp6 = 10024; // MiscellaneousVars[] input [main perk] temp7 = 10023; // MiscellaneousVars[] input [requirement type] temp8 = 2; // MiscellaneousVars[] input [requirement level threshold 1] if (temp1 < perksmincost) temp1 = perksmincost; temp1 = 4 * MiscellaneousVars[280] / 100; // Level 1 Cost if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[temp7] >= temp8 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } if (MenuSystemVars[1] == 9) // Karasawa Attunement [2] { temp6 = 10027; // MiscellaneousVars[] input temp1 = 24 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 43 * MiscellaneousVars[280] / 100; // Level 2 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } } } } else if (CharacterClass == 2) // Flora Only { if (MenuSystemVars[1] == 1) // Archery Mastery [5] { temp6 = 10031; // MiscellaneousVars[] input temp1 = 5 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 10 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 16 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 23 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 31 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // Wand/Staff Mastery [5] { temp6 = 10053; // MiscellaneousVars[] input temp1 = 5 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 10 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 16 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 23 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 31 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // Soul Mastery [5] { temp6 = 10033; // MiscellaneousVars[] input temp1 = 5 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 10 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 16 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 23 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 31 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 4) // Martial Arts Mastery [5] { temp6 = 10035; // MiscellaneousVars[] input temp1 = 8 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 12 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 19 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 31 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 51 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } } } else if (MenuSystemVars[5] == 3) // Item Perks { if (MenuSystemVars[1] == 1) // Medicinal Prowess [5] { temp6 = 10049; // MiscellaneousVars[] input temp1 = 5 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 9 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 14 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 22 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 29 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // Powerup Powerhouse [4] { temp6 = 10050; // MiscellaneousVars[] input temp1 = 7 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 16 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 27 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 40 * MiscellaneousVars[280] / 100; // Level 4 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } } if (MenuSystemVars[1] == 3) // Pack Mule [5] { temp6 = 10059; // MiscellaneousVars[] input temp1 = 8 * MiscellaneousVars[280] / 100; // Level 1 Cost temp2 = 15 * MiscellaneousVars[280] / 100; // Level 2 Cost temp3 = 23 * MiscellaneousVars[280] / 100; // Level 3 Cost temp4 = 32 * MiscellaneousVars[280] / 100; // Level 4 Cost temp5 = 42 * MiscellaneousVars[280] / 100; // Level 5 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (temp2 < perksmincost) temp2 = perksmincost; if (temp3 < perksmincost) temp3 = perksmincost; if (temp4 < perksmincost) temp4 = perksmincost; if (temp5 < perksmincost) temp5 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 1 && MiscellaneousVars[25] >= temp2) { MiscellaneousVars[temp6] = 2; MiscellaneousVars[25] -= temp2; MiscellaneousVars[42] += temp2; PerkPtsPerPerk[temp6] += temp2; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 2 && MiscellaneousVars[25] >= temp3) { MiscellaneousVars[temp6] = 3; MiscellaneousVars[25] -= temp3; MiscellaneousVars[42] += temp3; PerkPtsPerPerk[temp6] += temp3; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 3 && MiscellaneousVars[25] >= temp4) { MiscellaneousVars[temp6] = 4; MiscellaneousVars[25] -= temp4; MiscellaneousVars[42] += temp4; PerkPtsPerPerk[temp6] += temp4; GetPerkSound(); } else if (MiscellaneousVars[temp6] == 4 && MiscellaneousVars[25] >= temp5) { MiscellaneousVars[temp6] = 5; MiscellaneousVars[25] -= temp5; MiscellaneousVars[42] += temp5; PerkPtsPerPerk[temp6] += temp5; GetPerkSound(); } } } else if (MenuSystemVars[5] == 4) // Misc Perks { if (CharacterClass == 0 | CharacterClass == 1) // Deggaris/Illucia Only { if (MenuSystemVars[1] == 1) // Mortal Hit Survivability Blast Wave [1] { temp6 = 10041; // MiscellaneousVars[] input temp1 = 15 * MiscellaneousVars[280] / 100; // Level 1 Cost if (temp1 < perksmincost) temp1 = perksmincost; if (MiscellaneousVars[temp6] == 0 && MiscellaneousVars[25] >= temp1) { MiscellaneousVars[temp6] = 1; MiscellaneousVars[25] -= temp1; MiscellaneousVars[42] += temp1; PerkPtsPerPerk[temp6] += temp1; GetPerkSound(); } } if (MenuSystemVars[1] == 2) // Mo