Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define init
- /// Initialize global variables
- global.time = 0;
- global.IDPDKills = 0;
- global.IDPD_old = 0;
- global.IDPDTimer = 1800/6;//1800 = 1 minute
- global.IDPDDifficulty = 1;
- global.CrownAngry = false;
- global.CrownSndTimer = 1800 / 12;//5 seconds
- global.SpawnType = "normal"
- global.Heat = 0;
- global.IDPDSpawns = 0;
- global.enemies_max = 0;
- global.freak = -1;
- global.elite = -1;
- /// Sprites. Wow.
- global.sprPopoCrownRage = sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAAJAAAAAQCAYAAAD59vZgAAACBUlEQVRoge2YPU/CQBzGHwyJixuTW8sHIDFhgoEyiMSFxESNo0wMmtC4iBObLnwEYpwIkJAQEwMy+JLIRDRBF5eWL+DG4nQOyNmWKz1e7DHck5Dyb/8vv3tybdIG4FBYiRLnOaeMQS/glSNKkt9fBa1BWImSL/UY68ouAMA8VG3JatXExsP+1IYiDZD8/vPTDTSGB0AhVZh0EWrVtEGyIEQaIPnF8AenJcZIGR+bBgDgNj/qe0nS6D+2mINXwQDJ7y+/6waKaGkAwFHmYOIcr/w2QPL7z8/cQMNkHSBlOqjSrNGFsIaz5LcBkl8Mv+sTqKBn0dU0xLbCAEaL6L4ZKOhZGxRLq2CA5PeHf42r2xwq6FmcFq9QadYAjBaR0DQaT9MwWQcAmwFj8RqwqCQ/Hz/zCfQ9uEMq/xvcfNquhYrnvnyHWOQOlPyLi5d/6lvYvFoFAxaR5OeXbQOFzGsYgx7iicxE4stTc5SjRJc121XzGiD5l6NZ+OkGspwkY1iGAsag5zpYpAGSXww/604gOb2E99dnnF2c4L7VRyodwd7Otlv+RP2M8wD8fQH1MiCsRL0ewZJfLD/I+JfTS8Qae5Fba+KJDGm0OzRutDtePWzznPWcPSS/eH66CNaRp47WWIY7r3nVsup5eljzWEeeOsnPrufpsRQ5B7L+89TyxP8hyc8f4wfyyJaTqbgmwwAAAABJRU5ErkJggg==", 9, 8, 8);
- global.sprPopoCrownIdle = sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAAMAAAAAQCAYAAABA4nAoAAACbklEQVRoge2aMWgTURjHf1cKBRuwUVukOOQSBKeI6CDpkLiFLpls6dhMjs1mtm5xEQdndZQqFEqXlA4mg8VBEYODIM05dSvt4P4cru95d70773I1Kbz3QeC+e+/3vf/B+9/duxcLoFh4QNoY/vqsjg2vN581Jql/2nNOpOCtkHOG15S/IANNRL/XABzb6wDMFJYjydyHx5FthteazzqBJ6J/OqIfAM6q7cvtLSeuu+E157NO4Kzjj8JPparoiVEee4bXi3dWbd/vMoXUH2sAr2MC7kn0uDO83nxcJDFQzPhZeaU/9BWoXT2kcq8IwHeGAOxuuMxB9RkvN5/GDmx4vXkZ9paj7vwhEzB0HRBWIyRi+TT6Qw3Q6ZfIbbrvauVanUGvq9rKtTp37j+0fnz5FCna8HrzF2nAYCThpf5yrQ6g9Mvcqz92ESwv/u3OO9YaKyq/On8zVoDh9eY7/RKV3qvI9iQGlLwcv/PitcqTao/ivfot8L1PiWN7nZnCMrsbgoOvQ58TZb7WWAGw5LdcwxtesuB+BaqIvwZot5pqAp6FNeh1CfLgfkkap/4pcDclTk6PAKzrzhvShuH15s/Cx7ZbTaq1Gu1W81w+6HXDFtEWwLj1BxcSAmCp2jjX8WN/B3DdZpeKlnM4jNzNM7x+fH5ukfzcIoD4/eh9qju45E9Oj8auP+2WsrUwXyQ3ey3uvyCG15Av3r7L8Oe3rBN4YvoV/KT1XABiqdoQ23v7Kt/e2xf/KG54vXnVN4z31pi9kr+M+t0CgLixcMtXTOZJBBheW97bN4xPW2MS16+KqOOAeMMbPikb5Eep8d/1/wFMTgKqjvoWfAAAAABJRU5ErkJggg==", 12, 8, 8);
- global.sprPopoCrownWalk = sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQCAYAAADpunr5AAAB7UlEQVRYheVYPU/CQBh+Skhc2PwDUHcSEyYZymIkLiQmahzdOhhDZVEnNl2Ig4ubI4EYEuICMgiDTp2Iqy1/wM39HMDm2l6vd1yNgb5Jk97d+z4fd71rQUNCoedLRDTXmdlaUryrzp9VBaDjq3AKANjI70fW5l4Pmf1p5c/SDRUDrHCPC752oeNy89PInw31SAL8ZaSBP5M4IhW0YPpeZruvOz93BxQ6rvcUBAF4L7Ir4xM72zoA4AMOAOC5Pud8N25x37wUNrDu/MwFUDVwM9lCrjk/K4uVKqbjgTdWrFRjv0LSxM9cAFUDdO50PEC738VJ7SiElYSBVefnvgNoAJYYOpyZrW26j1673e/CqFS8WrotegangT+jCsATIRNp5fcdQc7M1nSAfHO+g2OCODMbZaeOi/N5x9NCz9ukDwDQ86XILZxG/qAQAgBloxZCFjHwi2FaLTzcNaLGubVx/DIYjeszvAymnpbecISDvV1evYr/ON8i2kFMq0UWQliXSHj5ZaNGesMRMa0W6Q1HohiR/IIYngeOF2n9ArWscek5CCawRIiEz4CAeF+tabWizAstYMyEcScx4NOHJTCBTD5ZD6FVFHwCmFiSC+erUeGVzKfrQv6pvmW00HVL/wJXKf4PwSp/NYgcUYnh/gCJlW7pldez/AAAAABJRU5ErkJggg==", 6, 8, 8);
- global.sprNoPopo = sprite_add_base64("iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABWElEQVRIiWNgoCdQUjD5TzMzlBRM/q9hYPhPiSU4zYBJwDA5luAygxFZQdeDM3ANZQomJFmArvfegzOMKBbgsuSL42q8BvPsD8VpOFaAzatiiff/f93BgILFEu//JztosWlEt4BYw5lwWYIcB10PzjDoZiD4uhkmGMFCEoAFCzZX4gpCkn3AwMDAsHzjKgzXobt8+cZVeB2LNbaVFEz+5zZ0wPmTGyqwGo6uBlvqYcFlc8PCmwwf92fDLMQa5gcPHGBgYGBg2P9QkkEYhzk4LUDyDYbhMH7ZAQaGew/OMPA7TsWpH2ccsCt44XQ5DHQ9OMOgpGDCwK7gRcidGK7GmlpOXrz3/+TFezhTFzazMCIFphBfhDIwQCIVm+/QIxqrBcQmxUj/MILlEMHCLrehg8HKUInh2Pl7KIbDxLD5BNkSmhfXcMNpVeFgKKBJlYmsgFzDqWkGSQAAXTgqFGy6TFUAAAAASUVORK5CYII=", 0, 0, 0);
- /// Disables everyone but Rogue
- for(var i = 0;i<=15;i++){
- if (i != 12)
- {
- race_set_active(i, 0);
- }
- }
- /// MOTD
- /*
- repeat(16){trace("")}
- trace("Only One Gunfu For Every Runfu Challenge:")
- trace("- Rogue Only")
- trace("- IDPD spawn every 10 seconds")
- trace("- Starting Weapon is automatically cursed")
- trace("- <Empty> Secondary Weapon Slot is also cursed")
- trace("- Weapon Pickups will automatically destroy themselves periodically.")
- trace("- Weapon Drops destroy themselves. Only One Gunfu for Every Runfu")
- trace("Today's Mission is to Reach the Nuclear Throne. Good Luck!")
- trace("")
- */
- trace("Loaded Crown of Popo. Type /heathelp or /quickrundown for more info");
- #define chat_command
- switch(argument0){
- case "showheat":
- trace("HEAT: " + string(global.Heat));
- return true;
- break;
- case "setheat":
- global.Heat = real(argument1);
- trace("HEAT SET TO " + string(real(argument1)));
- return true;
- break;
- case "spawntype":
- if argument1 = "normal" || argument1 = "van"{
- global.SpawnType = argument1;
- trace("IDPD Spawns set to " + string(argument1));
- }else trace("Invalid Entry (type 'normal' or 'van')");
- return true;
- break;
- case "spawntimer":
- global.IDPDTimer = real(argument1) * 30;
- trace("Spawn Timer set to " + string(global.IDPDTimer / 30) + " seconds");
- return true;
- break;
- case "preset":
- if argument1 = "easy"{
- global.SpawnType = "normal";
- global.IDPDTimer = 30 * 30;
- global.IDPDDifficulty = 0;
- global.Heat = 0;
- trace("PRESET: Easy Mode");
- }
- if argument1 = "normal"{
- global.SpawnType = "normal";
- global.IDPDTimer = 15 * 30;
- global.IDPDDifficulty = 1;
- global.Heat = 1;
- trace("PRESET: Normal Mode");
- }
- if argument1 = "hard"{
- global.SpawnType = "van";
- global.IDPDTimer = 12 * 30;
- GameCont.popolevel = 5;
- global.IDPDDifficulty = 2;
- global.Heat = 3;
- trace("PRESET: Hard Mode");
- }
- if argument1 = "saniblues"{
- global.SpawnType = "van";
- global.IDPDTimer = 6 * 30;
- GameCont.popolevel = 10;
- global.IDPDDifficulty = 3;
- global.Heat = 6;
- trace("PRESET: Saniblues");
- }
- if argument1 = "reallydad"{
- global.SpawnType = "van";
- global.IDPDTimer = 3 * 30;
- GameCont.popolevel = 20;
- global.IDPDDifficulty = 4;
- global.Heat = 10;
- trace("PRESET: reallyjoel's dad");
- }
- return true;
- break;
- case "bock":
- sound_play(sndMutant9Hurt);
- return true;
- break;
- case "heathelp":
- trace("/heathelp: Displays this message!")
- trace("/quickrundown: Displays MoTD");
- trace("/showheat: Displays current Heat level")
- trace("/setheat <int:number>: Sets heat.")
- trace(" Setting heat over 10 can have dangerous results!");
- trace("/spawntype <str:type>: IDPD portal type. 'normal/van'");
- trace("/spawntimer <int:number>: Sets spawn intervals, in seconds. Default: 15");
- trace("/preset <str:type>: Assigns the above variables automatically.")
- trace(" Presets: easy, normal, hard, saniblues, reallydad");
- trace("/bock: bock");
- return true;
- break;
- case "quickrundown":
- repeat(16){trace("")}
- trace("Only One Gunfu For Every Runfu Challenge:");
- trace("- Rogue Only");
- trace("- IDPD spawn every 10 seconds");
- trace("- Starting Weapon is automatically cursed");
- trace("- <Empty> Secondary Weapon Slot is also cursed");
- trace("- Weapon Pickups will automatically destroy themselves periodically");
- trace("- Weapon Drops destroy themselves. Only One Gunfu for Every Runfu");
- trace("- Vans stop if they pass the player, and blow up after one second");
- trace("Good Luck!")
- trace("");
- return true;
- break;
- default:
- return false;
- break;
- }
- #define step
- if (!instance_exists(Portal) && (!instance_exists(Spiral)) && instance_exists(Player))
- global.time++;
- global.CrownSndTimer --;
- var enemies_current;
- var enemyratio;
- enemyratio = 0;
- enemies_current = instance_number(enemy) - instance_number(Grunt) - instance_number(Inspector) - instance_number(Shielder) - instance_number(EliteGrunt) - instance_number(EliteInspector) - instance_number(EliteShielder) - instance_number(PopoFreak);
- if !instance_exists(Spiral){
- if global.enemies_max = 0 global.enemies_max = enemies_current;
- }else{
- global.IDPDSpawns = 0;
- global.enemies_max = 0;
- }
- with(Player){
- wep = 81;
- bwep = 0;
- curse = 1;
- bcurse = 1;
- }
- if global.enemies_max > 0 && enemies_current > 0 && instance_exists(Player){
- for(i=1;i<=GameCont.loops + global.Heat - global.IDPDSpawns;i++){
- enemyratio = (((enemies_current * 100)/global.enemies_max)/100); // 0.00 to 1.00
- if (enemyratio <= (1 / (GameCont.loops + global.Heat + 1)) * (global.Heat - global.IDPDSpawns) || enemies_current = 0){
- do{
- global.IDPDSpawns++;
- repeat(2) instance_create(0,0,IDPDSpawn);
- wait 15;
- }until enemyratio >= (global.Heat - global.IDPDSpawns) * 0.10;
- }
- }
- }
- with(Van){
- if ("processed" not in self){
- walls = 6;
- yspd = 0;
- processed = 1;
- }
- if instance_exists(Player) && drivespeed > 0{
- if global.IDPDDifficulty >= 3 {
- if instance_nearest(x,y,Player).y > y yspd += 0.25
- else yspd -= 0.25;
- yspd = clamp(yspd,-1.5,1.5);
- y += yspd;
- }
- if right = 1{
- if instance_nearest(x,y,Player).x < x drivespeed *= 0.95;
- }else{
- if instance_nearest(x,y,Player).x > x drivespeed *= 0.95;
- }
- if drivespeed <= 0.20 drivespeed = 0;
- }
- if drivespeed < 1 meleedamage = 0;
- if drivespeed <= 0 && drawspr = 1155{
- my_health -= maxhealth/30;
- if my_health -1 <= 0{
- if random(3) < 1 instance_create(x,y,RoguePickup);
- }
- }
- }
- if !instance_exists(GenCont) && !instance_exists(Crown) && instance_exists(Player){
- instance_create(Player.x,Player.y,Crown);
- }
- /// FORCES THE PLAYER TO HAVE THE ROGUE RIFLE
- /// Crown stuff
- if instance_exists(Crown){
- with(Crown){
- /// Sets sprites when angry and when not.
- if global.CrownAngry = true{
- spr_idle = global.sprPopoCrownRage;
- spr_walk = global.sprPopoCrownRage;
- }else{
- spr_idle = global.sprPopoCrownIdle;
- spr_walk = global.sprPopoCrownWalk;
- }
- /// Collisions with fellow Crowns
- if collision_circle(x,y,6,Crown,0,1){
- with(collision_circle(x,y,6,Crown,0,1)){
- motion_add(point_direction(other.x,other.y,x,y),2)
- }
- }
- /// Needs the Player
- if instance_exists(Player){
- /// Depth correction
- if y > Player.y depth = Player.depth-1
- else depth = Player.depth+1;
- /// Teleports back to the player if stuck
- if (distance_to_object(Player) > 180){//Just slightly greater than the screen width
- repeat(10) instance_create(x+6-random(12),y+6-random(12),Dust);
- x = Player.x;
- y = Player.y;
- repeat(10) instance_create(x+6-random(12),y+6-random(12),Dust);
- sound_play_pitch(sndPickupDisappear,1);
- }
- }
- /// Flip the sprite
- if (((direction+270) mod 360)>180) image_xscale = 1
- else image_xscale = -1;
- /// Idle noises. Chance to increase the timer, rather than play it at set intervals.
- if random(6) < 1 && global.CrownSndTimer <= 0{
- sound_play_pitch(choose(sndCuzWep,sndCuzGreet,sndCuzGreet,sndCuzOutaway),1.20+random(0.2));
- global.CrownSndTimer = 1800 / (20+irandom(20));
- }else{
- if global.CrownSndTimer <= 0 global.CrownSndTimer += irandom(30);
- }
- }
- }
- /// Increased chance to turn Ammo Chests to IDPD Chests during generation
- if instance_exists(GenCont){
- with(AmmoChest){
- if random(10) < 1{
- instance_create(x,y,IDPDChest);
- instance_destroy();
- }
- }
- }
- /// Forces Present and Weapon chests to convert
- if !instance_exists(GenCont){
- with(AmmoChestMystery){
- instance_create(x,y,IDPDChest);
- instance_destroy();
- }
- with(WeaponChest){
- if random(2) < 1{
- var tempvar = choose(16,-16)
- instance_create(x+tempvar,y+tempvar,IDPDChest);
- }
- instance_create(x,y,IDPDChest);
- instance_destroy();
- }
- }
- /// IDPD Deaths. Handles drops and increments the global.IDPDKills
- /// IDPD Freaks are not IDPD, nor are they people.
- if instance_exists(LilHunter){
- with(LilHunter){
- if team != 3 team = 3;//Sets team to IDPD
- if my_health <= 0{
- repeat(3) instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- }
- with(Grunt){
- if my_health <= 0{
- if random(24) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(Inspector){
- if my_health <= 0{
- if random(16) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(Shielder){
- if my_health <= 0{
- if random(16) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(EliteGrunt){
- if my_health <= 0{
- if random(4) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(EliteInspector){
- if my_health <= 0{
- if random(4) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(EliteShielder){
- if my_health <= 0{
- if random(4) < 1 instance_create(x,y,RoguePickup);
- instance_destroy();
- }
- }
- with(IDPDSpawn){
- if ("processed" not in self){
- if global.IDPDDifficulty = 3 && random(12) <= 1 elite = 1;
- if global.IDPDDifficulty > 3 elite = 1;
- processed = 1;
- }
- }
- if ((GameCont.area = 1 && GameCont.subarea = 1 && GameCont.loops = 0) || (GameCont.area = 0)) && instance_exists(GenCont){
- global.IDPDKills = 0;
- global.IDPD_old = 0;
- }
- if (global.time mod 30 = 1){
- with(WepPickup) instance_destroy();
- }
- if (global.time > global.IDPDTimer) = 1{
- if global.SpawnType = "van" && global.IDPDDifficulty != 4{
- repeat(max(GameCont.loops,1)) instance_create(10010,10010,VanSpawn);
- }else{
- repeat(2) instance_create(10010,10010,IDPDSpawn);
- }
- if instance_exists(Crown){
- with(Crown){
- sound_play_pitch(sndMutant16Chst,1.25);
- global.CrownAngry = true;
- image_index = 0;
- }
- }
- global.time = 0;
- }
- if global.time mod 15 = 0{
- var IDPDCount = instance_number(Grunt) + instance_number(Inspector) + instance_number(Shielder) + instance_number(LilHunter) + instance_number(EliteGrunt) + instance_number(EliteInspector) + instance_number(EliteShielder);
- if IDPDCount < global.IDPD_old{
- var tempvar = global.IDPD_old - IDPDCount;
- if !(instance_exists(GenCont) || instance_exists(Spiral)){
- global.IDPDKills += tempvar;
- }
- }
- global.IDPD_old = IDPDCount;
- }
- #define draw
- var xoffset = view_xview;
- var yoffset = view_yview;
- var xstart = 0;
- var ystart = 50;
- if instance_exists(Crown){
- with(Crown){
- if global.CrownAngry = true{
- draw_sprite(sprEmoteIndicator, 5, x, y);
- if image_index + image_speed >= image_number
- global.CrownAngry = false;
- }
- }
- }
- draw_set_halign(fa_left);
- draw_set_font(fntSmall);
- draw_sprite(global.sprNoPopo, 0, xoffset + xstart, yoffset + ystart);
- draw_text_nt(xoffset + xstart + 24, yoffset + ystart, "DEAD POPO: " + string(global.IDPDKills));
- draw_text_nt(xoffset + xstart + 24, yoffset + ystart + 10, "LIVE POPO: " + string(instance_number(Grunt) + instance_number(Inspector) + instance_number(Shielder) + instance_number(EliteGrunt) + instance_number(EliteInspector) + instance_number(EliteShielder))); //Freaks aren't IDPD anymore, or People for that matter
- draw_text_nt(xoffset + xstart + 24, yoffset + ystart + 20, "TIME2POPO: " + string(global.IDPDTimer - global.time));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement