/* * Copyright © 2024 Nicole O'Connor * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ class PowerBlastJump : Powerup { bool blasting; ChexPlayerHGA ply; property blasting: blasting; override bool HandlePickup(Inventory item) { bool ok = Super.HandlePickup(item); if (ok) { blasting = false; } return ok; } override void InitEffect() { Super.InitEffect(); ply = ChexPlayerHGA(Owner); //ply.AddZ(72); // double std jump height blasting = true; ply.GiveInventoryType("InvBlastBoots"); } override void Tick() { Super.Tick(); if (blasting) { ply.AddZ(8); } } override void EndEffect() { blasting = false; Super.EndEffect(); } } class InvBlastBoots : PowerupGiver { Default { //$Category "Powerups" //$Title "Blast Boots" +COUNTITEM Tag "$TAG_BLASTBOOTS"; Powerup.Type "PowerBlastJump"; Powerup.Duration 10; // ten tics should be enough for the engine to go "oh yeah powerup" while still being an instant-effect Inventory.Icon "NULLA0"; Inventory.AltHUDIcon "NULLA0"; Inventory.PickupMessage "$TXT_BLASTBOOTS"; } States { Spawn: NULL A -1; Stop; } }