public static void DetonateTNT(Character character) { int posX = Math.Min(Math.Max(0, character.posX - 800), character.room.tilemap.InnerWidth - 1600); int posY = Math.Min(Math.Max(0, character.posY - 600), character.room.tilemap.InnerHeight - 900); TNT.DetonateTNT(character.room, posX, posY, 1600, 1200); }
public override void Collect(RoomScene room, Character character, short gridX, short gridY) { byte subType = room.tilemap.GetMainSubType(gridX, gridY); switch (subType) { // Inner Magi Shields case (byte)GoodieSubType.RingMagic: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 3, 60, 480); character.magiShield.SetIconTexture(this.Texture[subType]); break; case (byte)GoodieSubType.RingFire: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Fire, 3, 60); character.magiShield.SetIconTexture(this.Texture[subType]); break; case (byte)GoodieSubType.RingPoison: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Poison, 4, 60); character.magiShield.SetIconTexture(this.Texture[subType]); break; case (byte)GoodieSubType.RingElements: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Frost, 3, 55, 0); character.magiShield.SetIconTexture(this.Texture[subType]); break; //case (byte)GoodieSubType.RingHawk: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 7, 60); break; //case (byte)GoodieSubType.RingDruid: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 7, 60); break; //case (byte)GoodieSubType.RingEye: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 7, 60); break; // Outer Magi Shields case (byte)GoodieSubType.AmuletMagic: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 5, 70, 720); character.magiShield.SetIconTexture(this.Texture[subType]); break; case (byte)GoodieSubType.NeckElectric: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Electric, 8, 80); character.magiShield.SetIconTexture(this.Texture[subType]); break; case (byte)GoodieSubType.NeckFire: this.GetMagiShield(character, (byte)ProjectileMagiSubType.Fire, 6, 70); character.magiShield.SetIconTexture(this.Texture[subType]); break; //case (byte)GoodieSubType.NeckHeart: //this.GetMagiShield(character, (byte)ProjectileMagiSubType.Magi, 7, 60); //character.magiShield.SetIconTexture(this.Texture[subType]); //break; // Invincibility case (byte)GoodieSubType.Shiny: this.GetInvincible(character, 10000); break; case (byte)GoodieSubType.Stars: this.GetInvincible(character, 10000); break; case (byte)GoodieSubType.GodMode: this.GetInvincible(character, 99999999); break; // Timer case (byte)GoodieSubType.Plus5: this.SetTime(character, true, 5); break; case (byte)GoodieSubType.Plus10: this.SetTime(character, true, 10); break; case (byte)GoodieSubType.Plus20: this.SetTime(character, true, 20); break; case (byte)GoodieSubType.Set5: this.SetTime(character, false, 5); break; case (byte)GoodieSubType.Set10: this.SetTime(character, false, 10); break; case (byte)GoodieSubType.Set20: this.SetTime(character, false, 20); break; // Disrupt case (byte)GoodieSubType.Disrupt: this.RunDisrupt(character); break; // Explosive case (byte)GoodieSubType.Explosive: TNT.DetonateTNT(character); break; // Shoes case (byte)GoodieSubType.DashingShoe: this.CollectShoe(character, ShoeSubType.Dashing); break; case (byte)GoodieSubType.SpikeShoe: this.CollectShoe(character, ShoeSubType.Spike); break; case (byte)GoodieSubType.WingShoe: this.CollectShoe(character, ShoeSubType.Wing); break; } // SubTypes that can be maxed out, and therefore not collected at times. switch (subType) { // Key Collection case (byte)GoodieSubType.Key: if (character.trailKeys.HasMaxKeys) { return; } this.CollectKey(character); break; // Health case (byte)GoodieSubType.Apple: case (byte)GoodieSubType.Pear: if (character.wounds.HasMaxHealth) { return; } this.GetHealth(character, 1); break; case (byte)GoodieSubType.Melon: case (byte)GoodieSubType.Soup: if (character.wounds.HasMaxHealth) { return; } this.GetHealth(character, 2); break; case (byte)GoodieSubType.Pack1: case (byte)GoodieSubType.Pack2: if (character.wounds.HasMaxHealth) { return; } this.GetHealth(character, 99); break; // Armor case (byte)GoodieSubType.ShieldWood: if (character.wounds.HasMaxArmor) { return; } this.GetArmor(character, 1); break; case (byte)GoodieSubType.ShieldWhite: if (character.wounds.HasMaxArmor) { return; } this.GetArmor(character, 3); break; case (byte)GoodieSubType.ShieldBlue: if (character.wounds.HasMaxArmor) { return; } this.GetArmor(character, 3); break; } base.Collect(room, character, gridX, gridY); }
public override void ActivateItem(Character character) { this.Destroy(); character.heldItem.ResetHeldItem(); TNT.DetonateTNT(character); }