Example #1
0
        public override bool OnTileCollide(Vector2 old)
        {
            // if (!freeze)
            if (projState == C4State.Airborne)
            {
                // freeze = true;
                projState             = C4State.Frozen;
                positionToFreeze      = new Vector2(projectile.position.X, projectile.position.Y);
                projectile.position.X = positionToFreeze.X;
                projectile.position.Y = positionToFreeze.Y;
                projectile.velocity.X = 0;
                projectile.velocity.Y = 0;
                //projectile.rotation = 0;
            }

            return(false);
        }
Example #2
0
        public override void PostAI()
        {
            switch (projState)
            {
            case C4State.Airborne:
                if (projectile.owner == Main.myPlayer && c4Owner == null)
                {
                    c4Owner = Main.player[projectile.owner].GetModPlayer <ExtraExplosivesPlayer>();
                }
                break;

            case C4State.Frozen:
                projectile.position = positionToFreeze;
                projectile.velocity = Vector2.Zero;
                if (indicatorSoundInstance == null)
                {
                    indicatorSoundInstance = Main.PlaySound(indicatorSound, (int)projectile.Center.X, (int)projectile.Center.Y);
                }
                else if (indicatorSoundInstance.State != SoundState.Playing)        // else if needed to avoid a NullReferenceException
                {
                    indicatorSoundInstance.Play();
                }
                if (c4Owner != null && c4Owner.detonate)
                {
                    projState        = C4State.Primed;
                    projectile.ai[1] = 55;
                    Main.PlaySound(primedSound, (int)projectile.position.X, (int)projectile.position.Y);
                }
                break;

            case C4State.Primed:
                projectile.ai[1]--;
                if (projectile.ai[1] < 1)
                {
                    projState = C4State.Exploding;
                }
                break;

            case C4State.Exploding:
                projectile.Kill();
                break;
            }
        }
Example #3
0
    private void StateTransition(C4State state)
    {
        switch (state)
        {
            case C4State.Wire:
                displayText.text = "cut wires";
                break;
            case C4State.Numpad:
                displayText.text = "? ? ? ?";
                break;
        }

        this.c4State = state;
    }