Downloads containing cosmicdust.mut

Downloads
Name Author Game Mode Rating
JJ2+ Only: Arcane WeaponsFeatured Download PurpleJazz Mutator 10 Download file

File preview

#pragma name "Cosmic Duster"
#pragma require "CosmicDust.j2a"
#pragma require "lowind.wav"

void onLevelLoad() {
	jjAnimSets[ANIM::CUSTOM[23]].load(0, "CosmicDust.j2a");
	jjAnimations[jjAnimSets[ANIM::AMMO] + 28] = jjAnimations[jjAnimSets[ANIM::CUSTOM[23]] + 1];
	jjAnimations[jjAnimSets[ANIM::AMMO] + 29] = jjAnimations[jjAnimSets[ANIM::CUSTOM[23]] + 2];
	
	jjObjectPresets[OBJECT::ICEBULLET].behavior = jjObjectPresets[OBJECT::ICEBULLETPU].behavior = CosmicDust();
	jjObjectPresets[OBJECT::ICEBULLET].counterEnd = jjObjectPresets[OBJECT::ICEBULLETPU].counterEnd = 180;
	jjObjectPresets[OBJECT::ICEBULLET].special = jjObjectPresets[OBJECT::ICEBULLET].determineCurAnim(ANIM::CUSTOM[23], 1);
	jjObjectPresets[OBJECT::ICEBULLETPU].special = jjObjectPresets[OBJECT::ICEBULLETPU].determineCurAnim(ANIM::CUSTOM[23], 0);
	jjObjectPresets[OBJECT::ICEBULLET].lightType = jjObjectPresets[OBJECT::ICEBULLETPU].lightType = LIGHT::BRIGHT;
	jjObjectPresets[OBJECT::ICEBULLET].light = 8;
	jjObjectPresets[OBJECT::ICEBULLETPU].light = 12;

	jjObjectPresets[OBJECT::ICEAMMO15].determineCurAnim(ANIM::CUSTOM[23], 3);
	jjObjectPresets[OBJECT::ICEAMMO15].determineCurFrame();
	
	jjObjectPresets[OBJECT::ICEPOWERUP].determineCurAnim(ANIM::CUSTOM[23], 4);
	jjObjectPresets[OBJECT::ICEPOWERUP].determineCurFrame();
	
	jjObjectPresets[OBJECT::DESTRUCTSCENERY].triggersTNT = false;
	
	jjWeapons[WEAPON::ICE].multiplier = 16;
	jjWeapons[WEAPON::ICE].style = WEAPON::POPCORN;
	jjWeapons[WEAPON::ICE].spread = SPREAD::NORMAL;
	jjWeapons[WEAPON::ICE].defaultSample = false;
	
	jjSampleLoad(SOUND::COMMON_FLAMER, "lowind.wav");
}

class CosmicDust : jjBEHAVIORINTERFACE {
	void onBehave(jjOBJ@ obj) {
		obj.behave(obj.state == STATE::EXPLODE? BEHAVIOR::BULLET : BEHAVIOR::TNT, false);
		jjPLAYER@ creator = jjPlayers[obj.creatorID];
		obj.var[0] = obj.var[0] + (5 * obj.direction);
		
		if (obj.state != STATE::EXPLODE) {
			if (obj.counter > 1) {
				jjDrawRotatedSprite(obj.xPos, obj.yPos, ANIM::CUSTOM[23], obj.eventID == OBJECT::ICEBULLETPU? 0:1, 0, -obj.var[0], 1, 1, SPRITE::ALPHAMAP, obj.eventID == OBJECT::ICEBULLETPU? 34:72);
				jjDrawRotatedSprite(obj.xPos, obj.yPos, ANIM::CUSTOM[23], obj.eventID == OBJECT::ICEBULLETPU? 0:1, 0, -obj.var[0], 1, 1, SPRITE::ALPHAMAP, obj.eventID == OBJECT::ICEBULLETPU? 34:72);
			}
			obj.xPos = creator.xPos + (obj.eventID == OBJECT::ICEBULLETPU? 160:120)*jjSin((obj.counter + 1)*12) * (obj.direction != 0? obj.direction : 1);
			obj.yPos = creator.yPos - (obj.eventID == OBJECT::ICEBULLETPU? 80:60)*jjCos((obj.counter + 1)*12);
		} else {
			obj.delete();
		}
	}
}