Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.Xna.Framework;
- using Terraria;
- using Terraria.ID;
- namespace ExampleMod.Projectiles.Minions
- {
- //ported from my tAPI mod because I'm lazy
- public class shrabshark : HoverShooter
- {
- public override void SetStaticDefaults() {
- Main.projFrames[projectile.type] = 3;
- Main.projPet[projectile.type] = true;
- ProjectileID.Sets.MinionSacrificable[projectile.type] = true;
- ProjectileID.Sets.Homing[projectile.type] = true;
- ProjectileID.Sets.MinionTargettingFeature[projectile.type] = true; //This is necessary for right-click targeting
- }
- public override void SetDefaults() {
- projectile.netImportant = true;
- projectile.width = 24;
- projectile.height = 32;
- projectile.friendly = true;
- projectile.minion = true;
- projectile.minionSlots = 1;
- projectile.penetrate = -1;
- projectile.timeLeft = 18000;
- projectile.tileCollide = false;
- projectile.ignoreWater = true;
- inertia = 20f;
- shoot = mod.ProjectileType("shrabcrab");
- shootSpeed = 20f;
- }
- public override void CheckActive() {
- Player player = Main.player[projectile.owner];
- ExamplePlayer modPlayer = player.GetModPlayer<ExamplePlayer>();
- if (player.dead) {
- modPlayer.purityMinion = false;
- }
- if (modPlayer.purityMinion) { // Make sure you are resetting this bool in ModPlayer.ResetEffects. See ExamplePlayer.ResetEffects
- projectile.timeLeft = 2;
- }
- }
- public override void CreateDust() {
- if (projectile.ai[0] == 0f) {
- if (Main.rand.NextBool(5)) {
- int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height / 2, mod.DustType("PuriumFlame"));
- Main.dust[dust].velocity.Y -= 1.2f;
- }
- }
- else {
- if (Main.rand.NextBool(3)) {
- Vector2 dustVel = projectile.velocity;
- if (dustVel != Vector2.Zero) {
- dustVel.Normalize();
- }
- int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height, mod.DustType("PuriumFlame"));
- Main.dust[dust].velocity -= 1.2f * dustVel;
- }
- }
- Lighting.AddLight((int)(projectile.Center.X / 16f), (int)(projectile.Center.Y / 16f), 0.6f, 0.9f, 0.3f);
- }
- public override void SelectFrame() {
- projectile.frameCounter++;
- if (projectile.frameCounter >= 8) {
- projectile.frameCounter = 0;
- projectile.frame = (projectile.frame + 1) % 3;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement