Esempio n. 1
0
        public override void UpdateArmorSet(Player p)
        {
            p.setBonus = "Hold the Sense move key and left/right while an enemy is moving towards you to dodge" + "\r\n"
                         + "20% increased ranged damage" + "\r\n"
                         + "Free movement in liquid" + "\r\n"
                         + "Default gravity in space" + "\r\n"
                         + "Immune to lava damage" + "\r\n"
                         + "Immune to Distorted and Amplified Gravity" + "\r\n"
                         + "Negates fall damage" + "\r\n"
                         + "Infinite breath" + "\r\n"
                         + "40% decreased overheat use";
            p.rangedDamage += 0.20f;
            p.ignoreWater   = true;
            p.gravity       = Player.defaultGravity;
            p.lavaImmune    = true;
            p.noFallDmg     = true;
            p.gills         = true;
            p.buffImmune[BuffID.VortexDebuff]           = true;
            p.buffImmune[mod.BuffType("GravityDebuff")] = true;
            MPlayer mp = p.GetModPlayer <MPlayer>();

            mp.overheatCost -= 0.40f;
            mp.SenseMove(p);
            mp.visorGlow = true;
        }
Esempio n. 2
0
    public MGame(MInGamePage page)
    {
        instance = this;
        this.page = page;
        this.container = page;

        _players.Add(new MPlayer(0, true,"YOU",MColor.Green));
        _players.Add(new MPlayer(1, false,"RED",MColor.Red));
        _players.Add(new MPlayer(2, false,"BLUE",MColor.Blue));

        _ais.Add (new MPlayerAI(_players[1], _players));
        _ais.Add (new MPlayerAI(_players[2], _players));

        _human = _players[0];

        _beasts = new MBeast[_players.Count * (_human.maxBeasts + 20)];

        CreateTowers();

        container.AddChild(_beastContainer = new FContainer());
        container.AddChild(_beastContainerSpecial = new FContainer());

        container.AddChild(effectLayer = new MEffectLayer());

        container.AddChild(hudLayer = new FContainer());

        CreateUI();

        Futile.instance.SignalUpdate += HandleUpdate;
        Futile.touchManager.AddMultiTouchTarget(this);

        ShowNote("CLICK TO MOVE THE GREEN GUYS!\nDESTROY THE ENEMY CELLS!\nEVOLVE BY USING DNA!",10.0f);
    }
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.spaceJumpBoots = true;
            mp.hiJumpBoost    = true;
        }
Esempio n. 4
0
        public override bool UseItem(Player player)
        {
            Projectile p = null;
            int        b = player.FindBuffIndex(mod.BuffType("BloodWell"));

            for (int i = 999; i >= 0; i--)
            {
                if (Main.projectile[i].owner == player.whoAmI && Main.projectile[i].type == mod.ProjectileType("BloodWell"))
                {
                    p = Main.projectile[i];
                    break;
                }
            }
            if (p == null || b == -1)
            {
                return(false);
            }
            if (player.buffTime[b] <= 241)
            {
                return(false);
            }
            player.buffTime[b] /= 2;
            player.AddBuff(mod.BuffType("BloodArmor"), 1200);
            MPlayer play = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            play.bloodArmor = player.buffTime[b] / 100;
            return(true);
        }
        public override bool OnTileCollide(Vector2 oldVelocity)
        {
            float   aiOut   = 1.57f * 3;
            Vector2 tilePos = (projectile.Center) / 16;

            //determines which way the turret should face depending on how it collided
            //aiOut is the angle from turret to stand
            if (Main.tile[(int)tilePos.X, (int)tilePos.Y + 1].active() && projectile.oldVelocity.Y > 0)
            {
                aiOut = 1.57f * 3;
            }
            if (Main.tile[(int)tilePos.X + 1, (int)tilePos.Y].active() && projectile.oldVelocity.X > 0)
            {
                aiOut = 3.14f;
            }
            if (Main.tile[(int)tilePos.X - 1, (int)tilePos.Y].active() && projectile.oldVelocity.X <= 0)
            {
                aiOut = 0f;
            }
            if (Main.tile[(int)tilePos.X, (int)tilePos.Y - 1].active() && projectile.oldVelocity.Y <= 0)
            {
                aiOut = 1.57f;
            }
            Player player = Main.player[projectile.owner];

            player.AddBuff(mod.BuffType("ShotgunTurret"), 18002);
            MPlayer mplayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            mplayer.shotgunTurret = true;
            int p = Projectile.NewProjectile(projectile.position.X, projectile.position.Y, 0, 0, mod.ProjectileType("ShotgunTurret"), projectile.damage, projectile.knockBack, projectile.owner, 0, aiOut);

            return(true);
        }
Esempio n. 6
0
    public static void RegisterPlayer(string netID, MPlayer player)
    {
        string _playerID = _PlayerIdPrefix + netID;

        players.Add(_playerID, player);
        player.transform.name = _playerID;
    }
Esempio n. 7
0
        public override void ModifyHitNPC(NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection)
        {
            Player  player  = Main.player[projectile.owner];
            MPlayer mplayer = (MPlayer)(player.GetModPlayer(mod, "MPlayer"));
            float   scalar  = 1f + (float)Math.Pow(mplayer.specialProgressionCount, 1.6) / 8;
            float   dam     = 21 * scalar * (1 + (float)player.FishingLevel() / 100.0f);

            if (projectile.ai[1] == 1)
            {
                dam /= 2;
            }
            dam   *= (Main.rand.Next(90, 111) / 100f);
            damage = (int)dam;
            if (target.knockBackResist != 0)
            {
                if (projectile.velocity.Y < 0)
                {
                    target.velocity.Y += projectile.velocity.Y - .5f;
                }
                else
                {
                    target.velocity.Y -= 3f;
                }
            }
        }
Esempio n. 8
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            player.AddBuff(mod.BuffType("CrossBlastBuff"), 2);
            modPlayer.pyro = true;
        }
Esempio n. 9
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            player.AddBuff(mod.BuffType("ReinforcedBurstBuff"), 2);
            modPlayer.nitro = true;
        }
Esempio n. 10
0
        public override void UpdateInventory(Player player)
        {
            MPlayer modPlayer = MPlayer.GetModPlayer(player);

            if (modPlayer.novaHelmet)
            {
                item.autoReuse = true;
            }
            if (!modPlayer.novaHelmet)
            {
                item.autoReuse = false;
            }

            if (player.FindBuffIndex(mod.BuffType("LongFuseBuff")) != -1)
            {
                item.shootSpeed = 11f;
            }
            if (player.FindBuffIndex(mod.BuffType("LongFuseBuff")) < 1)
            {
                item.shootSpeed = 8f;
            }
            if (modPlayer.core)
            {
                item.autoReuse = true;
            }
            if (!modPlayer.core)
            {
                item.autoReuse = false;
            }
        }
Esempio n. 11
0
        public override void Update(Player player, ref int buffIndex)
        {
            MPlayer mplayer = player.GetModPlayer <MPlayer>();
            float   scalar  = 1 + mplayer.specialProgressionCount / 7f;

            player.meleeDamage += .18f * scalar;
        }
Esempio n. 12
0
        public override void Kill(int timeLeft)
        {
            MPlayer mp = Main.player[projectile.owner].GetModPlayer <MPlayer>();

            if (!mp.ballstate && !mp.shineActive)
            {
                if (projectile.penetrate > 0)
                {
                    // Charged shot sounds played here for network purposes.
                    if (comboSound == 0 || mp.statCharge < MPlayer.maxCharge)
                    {
                        if (((mp.statCharge >= (MPlayer.maxCharge * 0.5) && !missile) || (mp.statCharge >= MPlayer.maxCharge && missile)) && ChargeShotSound != "none")
                        {
                            Main.PlaySound(SoundLoader.customSoundType, (int)projectile.position.X, (int)projectile.position.Y, mod.GetSoundSlot(SoundType.Custom, "Sounds/" + ChargeShotSound));
                        }
                        else if ((mp.statCharge >= 30 || missile) && ShotSound != "none")
                        {
                            Main.PlaySound(SoundLoader.customSoundType, (int)projectile.position.X, (int)projectile.position.Y, mod.GetSoundSlot(SoundType.Custom, "Sounds/" + ShotSound));
                        }
                    }
                }

                mp.statCharge = 0;
            }
            if (soundInstance != null)
            {
                soundInstance.Stop(true);
            }
            soundPlayed = false;
        }
Esempio n. 13
0
        public override void DrawArmorColor(EquipType type, int slot, Player P, float shadow, ref Color color, ref int glowMask, ref Color glowMaskColor)
        {
            MPlayer mp          = P.GetModPlayer <MPlayer>();
            bool    pseudoScrew = (mp.statCharge >= MPlayer.maxCharge && mp.somersault);

            if (mp.hyperColors > 0 || mp.speedBoosting || mp.shineActive || (pseudoScrew && mp.psuedoScrewFlash >= 3) || (mp.shineCharge > 0 && mp.shineChargeFlash >= 4))
            {
                if (mp.hyperColors > 0)
                {
                    color = P.GetImmuneAlphaPure(new Color(mp.r, mp.g, mp.b, 255), shadow);
                }
                else if (pseudoScrew && mp.psuedoScrewFlash >= 3)
                {
                    color = P.GetImmuneAlphaPure(mp.chargeColor, shadow);
                }
                else if (mp.shineActive || (mp.shineCharge > 0 && mp.shineChargeFlash >= 4))
                {
                    color = P.GetImmuneAlphaPure(new Color(255, 216, 0), shadow);
                }
                else if (mp.speedBoosting)
                {
                    color = P.GetImmuneAlphaPure(new Color(0, 200, 255), shadow);
                }
                mp.morphColor = color;

                int dustType = 212;
                if (P.head <= 0 || P.body <= 0 || P.legs <= 0)
                {
                    int dust = Dust.NewDust(new Vector2(P.position.X - P.velocity.X, P.position.Y - 2f - P.velocity.Y), P.width, P.height, dustType, -P.velocity.X * 0.25f, -P.velocity.Y * 0.25f, 100, color, 1.0f);
                    Main.dust[dust].noGravity = true;
                    Main.dust[dust].noLight   = true;
                }
            }
        }
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            player.AddBuff(mod.BuffType("AmplifiedEnchantmentSolution"), 2);
            modPlayer.enchanted = true;
        }
Esempio n. 15
0
        /// <inheritdoc />
        public override MPlayer GeneratePlayer(string id)
        {
            MPlayer player = new MPlayer(id);

            base.Players.Add(id, player);
            return(player);
        }
Esempio n. 16
0
 public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
 {
     if (player.altFunctionUse == 2)
     {
         MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");
         int     bonus     = modPlayer.increasedCounterLength ? 15 : 5;
         player.AddBuff(mod.BuffType("CounterStanceRapier"), item.useAnimation + bonus);
         player.AddBuff(mod.BuffType("CounterCooldown"), 360);
         return(false);
     }
     if (player.FindBuffIndex(mod.BuffType("Counter")) >= 0)
     {
         damage = (int)(damage * 3.5);
         MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");
         if (modPlayer.counterPlus)
         {
             damage = (int)(damage * 1.2);
         }
         player.DelBuff(player.FindBuffIndex(mod.BuffType("Counter")));
         for (int i = 0; i < 20; i++)
         {
             int d = Dust.NewDust(position, item.width, item.height, 259, speedX, speedY);
         }
         //lunge
         player.velocity.X = speedX * 3.4f;
         player.velocity.Y = speedY * 3.4f;
         player.immune     = true;
         player.immuneTime = 60;
     }
     return(true);
 }
Esempio n. 17
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer modPlayer = (MPlayer)player.GetModPlayer(mod, "MPlayer");

            player.AddBuff(mod.BuffType("AlchemistGloveBuff"), 2);
            modPlayer.glove = true;
        }
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.spaceJumpBoots = true;
            mp.screwAttack    = true;
            mp.screwAttackDmg = Math.Max(player.GetWeaponDamage(item), mp.screwAttackDmg);
        }
 /// <summary>
 /// Стандартный конструктор
 /// </summary>
 /// <param name="parButtonToCheck">Игровая кнопка-действие, которое нужно проверять</param>
 /// <param name="parPlayerToCheck">Игрок, которого нужно проверять</param>
 /// <param name="parPerformOnSuccess">Действия при нажатии на проверяемую игровую кнопку</param>
 /// <param name="parAutoRemove">Следует ли убрать действие после первого успешного выполнения</param>
 public KeyListenerData(EGameActionButton parButtonToCheck, MPlayer parPlayerToCheck, Action parPerformOnSuccess,
                        bool parAutoRemove)
 {
     ButtonToCheck    = parButtonToCheck;
     PlayerToCheck    = parPlayerToCheck;
     PerformOnSuccess = parPerformOnSuccess;
     AutoRemove       = parAutoRemove;
 }
Esempio n. 20
0
        private void SMButtonClick(UIMouseEvent evt, UIElement e)
        {
            MPlayer mp = Main.LocalPlayer.GetModPlayer <MPlayer>();

            mp.senseMoveEnabled = !mp.senseMoveEnabled;
            Main.PlaySound(12);
            clicked = true;
        }
        private void SAButtonClick(UIMouseEvent evt, UIElement e)
        {
            MPlayer mp = Main.LocalPlayer.GetModPlayer <MPlayer>();

            mp.psuedoScrewActive = !mp.psuedoScrewActive;
            Main.PlaySound(12);
            clicked = true;
        }
Esempio n. 22
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.speedBooster = true;
            mp.spaceJump    = true;
            mp.screwAttack  = 1;
        }
        public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Allows the ability to Sense Move" + "\r\n" +
                              "Double tap a direction (when enabled)";
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.senseMove = true;
        }
Esempio n. 24
0
        public override void ModifyHitNPC(NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection)
        {
            Player  player  = Main.player[projectile.owner];
            MPlayer mPlayer = player.GetModPlayer <MPlayer>();
            float   scalar  = 1f + (float)Math.Pow(mPlayer.specialProgressionCount, 1.75) / 6;

            damage = (int)(14 * scalar);
        }
        public override void UpdateVanitySet(Player P)
        {
            base.UpdateVanitySet(P);
            MPlayer mp = P.GetModPlayer <MPlayer>();

            mp.thrusters      = false;
            mp.visorGlowColor = new Color(0, 228, 255);
        }
Esempio n. 26
0
        public override void PostDrawInWorld(SpriteBatch sb, Color lightColor, Color alphaColor, float rotation, float scale, int whoAmI)
        {
            DrawLights(sb, Main.player[Main.myPlayer]);
            MPlayer mp = Main.player[Main.myPlayer].GetModPlayer <MPlayer>();

            lightColor = mp.morphColorLights;
            alphaColor = lightColor;
        }
Esempio n. 27
0
        public override void AI()
        {
            projectile.rotation = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.57f;
            MPlayer mp = Main.player[projectile.owner].GetModPlayer <MPlayer>();

            Lighting.AddLight(projectile.Center, (float)mp.r / 255f, (float)mp.g / 255f, (float)mp.b / 255f);
            mProjectile.WaveCollide(projectile, 18);
        }
Esempio n. 28
0
        public override void UpdateEquip(Player player)
        {
            player.rangedDamage += 0.05f;
            player.spikedBoots  += 1;
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.maxOverheat += 5;
        }
        public override void UpdateEquip(Player player)
        {
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.maxOverheat  += 30;
            mp.overheatCost -= 0.20f;
            mp.missileCost  -= 0.05f;
        }
Esempio n. 30
0
        public override void UpdateEquip(Player player)
        {
            player.rangedDamage += 0.05f;
            player.nightVision   = true;
            MPlayer mp = player.GetModPlayer <MPlayer>();

            mp.maxOverheat += 25;
        }
        public override void AI()
        {
            Player P = Main.player[projectile.owner];

            projectile.position.X = P.Center.X - projectile.width / 2;
            projectile.position.Y = P.Center.Y - projectile.height / 2;

            SpeedSound++;
            if (SpeedSound == 4)
            {
                soundInstance = Main.PlaySound(SoundLoader.customSoundType, (int)P.position.X, (int)P.position.Y, mod.GetSoundSlot(SoundType.Custom, "Sounds/SpeedBoosterStartup"));
            }
            if (soundInstance != null && SpeedSound == 82)
            {
                soundInstance = Main.PlaySound(SoundLoader.customSoundType, (int)P.position.X, (int)P.position.Y, mod.GetSoundSlot(SoundType.Custom, "Sounds/SpeedBoosterLoop"));

                SpeedSound = 68;
            }
            MPlayer mp = P.GetModPlayer <MPlayer>();

            if (mp.ballstate || !mp.speedBoosting || mp.SMoveEffect > 0)
            {
                if (soundInstance != null)
                {
                    soundInstance.Stop(true);
                }
                projectile.Kill();
            }
            foreach (Terraria.Projectile Pr in Main.projectile)
            {
                if (Pr != null)
                {
                    if (Pr.active && (Pr.type == mod.ProjectileType("ShineSpark") || Pr.type == mod.ProjectileType("SpeedBall")))
                    {
                        if (soundInstance != null)
                        {
                            soundInstance.Stop(true);
                        }
                        projectile.Kill();
                        return;
                    }
                }
            }
            Lighting.AddLight((int)((float)projectile.Center.X / 16f), (int)((float)(projectile.Center.Y) / 16f), 0, 0.75f, 1f);
            float   rotation  = (float)Math.Atan2(P.position.Y - P.shadowPos[0].Y, P.position.X - P.shadowPos[0].X);
            float   rotation1 = rotation + ((float)Math.PI / 2);
            float   rotation2 = rotation - ((float)Math.PI / 2);
            Vector2 vect      = P.Center - new Vector2(4, 4) + rotation.ToRotationVector2() * 24f;
            Vector2 vel       = P.position - mp.oldPosition;
            Vector2 vel1      = rotation1.ToRotationVector2() * Math.Abs(P.velocity.X);
            Vector2 vel2      = rotation2.ToRotationVector2() * Math.Abs(P.velocity.X);
            int     num20     = Dust.NewDust(vect - vel1, 1, 1, 67, vel1.X + vel.X, vel1.Y + vel.Y, 100, default(Color), 2f);

            Main.dust[num20].noGravity = true;
            int num21 = Dust.NewDust(vect - vel2, 1, 1, 67, vel2.X + vel.X, vel2.Y + vel.Y, 100, default(Color), 2f);

            Main.dust[num21].noGravity = true;
        }
Esempio n. 32
0
    public MTower(MPlayer player)
    {
        this.player = player;

        health = maxHealth;

        AddChild(_sprite = new FSprite(_towerElements[0].name));
        _sprite.color = player.color.color;

        UpdateHealthPercent();
    }
Esempio n. 33
0
    //TODO: use something other than GoTween to do this... seems really overkill for something that happens ALL the time
    public void ShowAttackMarkForPlayer(MPlayer player, Vector2 position)
    {
        if(RXRandom.Float() < 0.5f) FSoundManager.PlaySound("AttackHit",1.0f);
        FSprite attackMark = _attackMarks[_nextAttackMarkIndex];
        attackMark.color = player.color.addColor;

        attackMark.x = position.x;
        attackMark.y = position.y;

        attackMark.alpha = 1.0f;

        _nextAttackMarkIndex = (_nextAttackMarkIndex+1)%_attackMarkCount;
    }
Esempio n. 34
0
    public MPlayerAI(MPlayer player, List<MPlayer>players)
    {
        this.player = player;

        foreach(MPlayer otherPlayer in players)
        {
            if(otherPlayer != player)
            {
                otherPlayers.Add(otherPlayer);
            }
        }

        framesTillNextAction = RXRandom.Range(200,400);
    }
Esempio n. 35
0
    public void CreateDNA(MPlayer player, Vector2 position)
    {
        FSprite coin = new FSprite("Coin.png");

        coin.shader = FShader.Additive;
        coin.color = player.color.color;

        AddChild(coin);

        coin.x = position.x;
        coin.y = position.y;
        coin.data = player;

        coin.scale = 1.0f;
        coin.alpha = 0.1f;

        Go.to (coin,0.8f,new TweenConfig().floatProp("alpha", 1.0f).floatProp("x",player.tower.x).floatProp("y",player.tower.y).onComplete(HandleDNAComplete));
        Go.to (coin,0.3f,new TweenConfig().floatProp("scale",0.3f).setDelay(0.5f));
    }
Esempio n. 36
0
    public void ShowCrosshairForPlayer(MPlayer player, Vector2 position)
    {
        FSoundManager.PlaySound("SetTarget",0.4f);
        FSprite crosshair = new FSprite("Crosshair.png");
        crosshair.shader = FShader.Additive;
        crosshair.color = player.color.color;

        AddChild(crosshair);
        crosshair.x = position.x;
        crosshair.y = position.y;

        Go.to (crosshair,0.2f,new TweenConfig().setDelay(0.1f).floatProp("alpha", 0.0f).onComplete(HandleCrosshairComplete));
    }
Esempio n. 37
0
    public void RemoveDNA(MPlayer player, int amount)
    {
        player.dna -= amount;

        if(player.isHuman)
        {
            _dnaLabel.text = _human.dna + "&";
            for(int s = 0; s<player.stats.Length; s++)
            {
                _statViews[s].Update();
            }
        }
    }
Esempio n. 38
0
    public void SetAttackTarget(MPlayer player, Vector2 targetPosition)
    {
        float distance = Mathf.Sqrt(targetPosition.x*targetPosition.x + targetPosition.y*targetPosition.y);

        if(distance > MConfig.WALL_RADIUS + 50.0f) return; //no attacking too far outside the wall

        List<MBeast> beasts = player.beasts;
        int beastCount = beasts.Count;
        for(int b = 0; b<beastCount; b++)
        {
            MBeast beast = beasts[b];
            beast.hasTarget = true;
            beast.target = targetPosition;
        }

        if(player.isHuman) effectLayer.ShowCrosshairForPlayer(player, targetPosition);
    }
Esempio n. 39
0
 /// <summary>
 /// This method is only used by the MPlayer class instance.
 /// </summary>
 /// <param name="to">The new state of the MPlayer instance.</param>
 /// <param name="msg">A status message associated with the new state.</param>
 internal void StateChanged(MPlayer.State to, string msg)
 {
     Application.DoEvents();
     if (InvokeRequired)
         BeginInvoke(new StateChangedHandler(StateChanged), new object[] {to, msg});
     else
     {
         if (Log.IsInfoEnabled) Log.Info("Changing state to: " + to);
         switch (to)
         {
             case MPlayer.State.Initial:
             case MPlayer.State.Running:
             case MPlayer.State.Caching:
                 EnablePlayControls(false);
                 resetButton.Enabled = false;
                 break;
             case MPlayer.State.Playing:
                 progressTimer.Start();
                 EnablePlayControls(true);
                 resetButton.Enabled = false;
                 break;
             case MPlayer.State.Paused:
                 progressTimer.Stop();
                 EnablePlayControls(true);
                 resetButton.Enabled = false;
                 break;
             case MPlayer.State.Stopped:
                 progressTimer.Stop();
                 EnablePlayControls(false);
                 resetButton.Enabled = true;
                 playButton.Enabled = true;
                 if (_scrobber != null)
                     _scrobber.Stop();
                 msg = "Stopped.";
                 break;
             case MPlayer.State.Ended:
                 progressTimer.Stop();
                 EnablePlayControls(false);
                 resetButton.Enabled = true;
                 playButton.Enabled = true;
                 if (_scrobber != null)
                     _scrobber.Stop();
                 positionTrackbar.Value = 100;
                 msg = "Finished.";
                 break;
             case MPlayer.State.Error:
                 StopPlaying();
                 EnablePlayControls(false);
                 resetButton.Enabled = false;
                 break;
             default:
                 if (Log.IsWarnEnabled)
                     Log.Warn("Unexpected state " + Player.PlayerState);
                 break;
         }
         if (msg != null) SetStatus(msg);
     }
 }
Esempio n. 40
0
    private void KillPlayer(MPlayer player)
    {
        player.isDead = true;

        effectLayer.ShowTowerExplosionForTower(player.tower);
        player.tower.RemoveFromContainer();

        _towers.Remove(player.tower);

        for(int b = 0; b< player.beasts.Count; b++)
        {
            MBeast beast = player.beasts[b];
            if(beast.health > 0)
            {
                effectLayer.ShowBeastExplosionForBeast(beast);
                RemoveBeast(beast);
            }
        }

        int remainingPlayers = 0;
        MPlayer remainingPlayer = null;
        for(int p = 0; p<_players.Count; p++)
        {
            if(!_players[p].isDead)
            {
                remainingPlayers++;
                remainingPlayer = _players[p];
            }
        }

        if(remainingPlayers == 1)
        {
            _winningPlayer = remainingPlayer;

            FLabel winLabel;

            if(_winningPlayer.isHuman)
            {
                winLabel  = new FLabel("Cubano","YOU WIN!");
                FSoundManager.PlaySound("WinGame",1.0f);
            }
            else
            {
                winLabel  = new FLabel("Cubano","YOU LOSE!");
                FSoundManager.PlaySound("LoseGame",1.0f);
            }

            container.AddChild(winLabel);

            winLabel.scale = 0.8f;

            Go.to (winLabel,6.0f,new TweenConfig().floatProp("scale",1.0f).onComplete(HandleWinComplete));
            page.backButton.label.text = "AGAIN?";

        }
        else if(player.isHuman)
        {
            ShowNote("YOU LOSE!\nPRESS BACK TO TRY AGAIN", 5.0f);
            page.backButton.label.text = "AGAIN?";
            FSoundManager.PlaySound("LoseGame",1.0f);
        }
        else
        {
            ShowNote (player.name.ToUpper()+" WAS ELIMINATED!", 5.0f);
            FSoundManager.PlaySound("LoseGame",1.0f);
        }
    }
Esempio n. 41
0
    public void Start(MPlayer player)
    {
        this.player = player;

        hasTarget = false;
        target = new Vector2(0,0);
        velocity = new Vector2(0,0);
        attackTarget = null;
        attackTower = null;
        isAttacking = false;
        isAttackingTower = false;
        attackFrame = 0;
        blinkFrame = 0;

        if(player.leapLevel < 1)
        {
            beastType = MBeastType.A;
        }
        else if(player.leapLevel < 2)
        {
            beastType = MBeastType.B;
        }
        else
        {
            beastType = MBeastType.C;
        }

        UpdateStats();

        _advanceCount = 0;

        _elementSet = _elementSets[player.color.index*MBeastType.beastTypes.Length + beastType.index];
        sprite.element = _elementSet.walkElements[0];
        sprite.color = MGame.colorWhite;

        this.scale = 0.0f;

        this.isEnabled = true;
    }
Esempio n. 42
0
        void PlayItem(PlayItem item)
        {
            // Disable controls. Controls re-activated on mplayer state change.
            EnablePlayControls(false);
            resetButton.Enabled = false;

            // Build the request URL.
            StringBuilder url = new StringBuilder();
            url.Append(Plugin.Host.Paths.LocalPlaydarUrl).Append("sid/").Append(item.SId);
            if (Log.IsDebugEnabled) Log.Debug("Stream filename " + url);

            // Play the music!
            SetStatus("Requesting audio stream.");
            Player = new MPlayer(item, url.ToString(), this);
            Player.Volume = volumeTrackbar.Value;
            Player.RunAsync();
        }
Esempio n. 43
0
    public void CreateBeast(MPlayer player)
    {
        if(player.beasts.Count >= player.maxBeasts) return; //TODO: Show a "max beasts limit reached!" indicator on screen

        player.isDirty = true;

        MBeast beast = MBeast.New();
        if(beast.container != _beastContainer) _beastContainer.AddChild(beast);
        beast.Start(player);

        if(_beasts.Length <= _beastCount)
        {
            Array.Resize(ref _beasts,_beastCount+20);
        }

        _beasts[_beastCount++] = beast;
        player.beasts.Add(beast);

        float creationAngle = player.angle + player.nextBeastCreationAngle;

        beast.x = player.tower.x + Mathf.Sin (creationAngle*RXMath.DTOR) * (MConfig.TOWER_RADIUS+20.0f);
        beast.y = player.tower.y + Mathf.Cos (creationAngle*RXMath.DTOR) * (MConfig.TOWER_RADIUS+20.0f);

        player.nextBeastCreationAngle = (player.nextBeastCreationAngle + 30.0f)%360.0f;
    }
Esempio n. 44
0
    public void AddDNA(MPlayer player)
    {
        player.dna += MConfig.DNA_PER_KILL*(player.leapLevel+1);

        if(player.isHuman)
        {
            FSoundManager.PlaySound("GetMoney",1.0f);
            _dnaLabel.text = _human.dna + "&";
            for(int s = 0; s<player.stats.Length; s++)
            {
                _statViews[s].Update();
            }
        }
    }